blob: 29ed8009d3771c7362723388083c19126d7f080b [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.empire.data;
import org.apache.empire.commons.Options;
import org.apache.empire.commons.Unwrappable;
/**
* The column interface provides methods for accessing metadata that is relevant for managing
* and displaying data available through the RecordData interface.
*/
public interface ColumnExpr extends Unwrappable<ColumnExpr>
{
/**
* Returns the column's data type.
* @see DataType
* @return the column's data type
*/
DataType getDataType();
/**
* Returns the physical column name.
* @return the physical column name
*/
String getName();
/**
* Returns the column's display title.
* @return the column's display title
*/
String getTitle();
/**
* Returns the column's control type used for displaying and entering data.
* @return the column's control type used for displaying and entering data
*/
String getControlType();
/**
* Returns a metadata attribute.
* @param name the name of the attribute
* @return the metadata attribute
*/
Object getAttribute(String name);
/**
* Returns the enum type for this column
* <P>
* @return the enum type
*/
Class<Enum<?>> getEnumType();
/**
* Returns an option set with possible column values and their
* corresponding display text.
* @return option set with possible column values and their corresponding display text
*/
Options getOptions();
/**
* Returns the name of a Java bean property to which this column is mapped.
* @return the name of a Java bean property to which this column is mapped
*/
String getBeanPropertyName();
/**
* Returns the underlying source column (if any).
* If an expression is based not based on a particutlar column this function returns null.
* @return the column on which this expression is based or null if not applicable.
*/
Column getSourceColumn();
}