Package adql.query.operand
Class ADQLColumn
- java.lang.Object
-
- adql.query.operand.ADQLColumn
-
- All Implemented Interfaces:
ADQLObject,ADQLOperand,UnknownType
public class ADQLColumn extends java.lang.Object implements ADQLOperand, UnknownType
Represents the complete (literal) reference to a column ({schema(s)}.{table}.{column}).- Version:
- 1.4 (03/2016)
- Author:
- Grégory Mantelet (CDS;ARI)
-
-
Constructor Summary
Constructors Constructor Description ADQLColumn(ADQLColumn toCopy)Builds a Column by copying the given one.ADQLColumn(java.lang.String columnRef)Builds a Column with the complete reference to a column ({schema(s)}.{table}.{column}).ADQLColumn(java.lang.String tableName, java.lang.String columnName)Builds a column with the given column name and the given table name.ADQLColumn(java.lang.String schema, java.lang.String table, java.lang.String column)Builds a column with the given column name, table name and schema name.ADQLColumn(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)Builds a column with the given column name, table name, schema name and catalog name.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description ADQLIteratoradqlIterator()Gets an iterator on the intern ADQL objects.ADQLTablegetAdqlTable()Gets theADQLTablefrom which this column is supposed to come.bytegetCaseSensitive()Gets the whole case sensitivity of this ADQL column.java.lang.StringgetCatalogName()Gets the name of the catalog which contains this column.java.lang.StringgetColumnName()Gets the name of this column.ADQLObjectgetCopy()Gets a (deep) copy of this ADQL object.DBColumngetDBLink()Gets the correspondingDBColumn.chargetExpectedType()Get the type expected by the syntactic parser according to the context.java.lang.StringgetFullColumnName()Gets the full name of this column (catalogName .java.lang.StringBuffergetFullColumnPrefix()Gets the full column prefix (catalogName .java.lang.StringgetName()Gets the name of this object in ADQL.TextPositiongetPosition()Gets the position of this object/token in the ADQL query.java.lang.StringgetSchemaName()Gets the name of the schema which contains this column.java.lang.StringgetTableName()Gets the name of the table which contains this column.booleanisCaseSensitive()Indicates whether all fields (catalog, schema, table and column) are case sensitive.booleanisCaseSensitive(IdentifierField field)Indicates whether the specified field (catalog, schema, table or column) is case sensitive or not.booleanisGeometry()Tell whether this operand is a geometrical region or not.booleanisNumeric()Tell whether this operand is numeric or not.booleanisString()Tell whether this operand is a string or not.protected java.lang.StringnormalizeName(java.lang.String name, IdentifierField field)Lets normalizing any catalog/schema/table name or alias.voidsetAdqlTable(ADQLTable adqlTable)Sets theADQLTablefrom which this column is supposed to come.voidsetCaseSensitive(boolean sensitive)Sets the case sensitivity of all fields (catalog, schema, table and column).voidsetCaseSensitive(byte sensitivity)Sets the whole case sensitivity of this ADQL column.voidsetCaseSensitive(IdentifierField field, boolean sensitive)Sets the case sensitivity of the specified field (catalog, schema, table, column).voidsetCatalogName(java.lang.String catalog)Sets the name of the catalog which contains this column.voidsetColumn(java.lang.String columnRef)Updates the whole Column according to the given column reference ({catalog}.{schema}.{table}.{column}).voidsetColumnName(java.lang.String columnName)Changes the name of the column ({column} in {schema(s)}.{table}.{column}).voidsetDBLink(DBColumn dbLink)Sets theDBColumncorresponding to thisADQLColumn.voidsetExpectedType(char c)Set the type expected for this operand.voidsetPosition(TextPosition pos)Sets the position at which thisADQLColumnhas been found in the original ADQL query string.voidsetSchemaName(java.lang.String schema)Sets the name of the schema which contains this column.voidsetTableName(java.lang.String tableName)Sets the name of the table which contains this column.java.lang.StringtoADQL()Gets the ADQL expression of this object.java.lang.StringtoString()
-
-
-
Constructor Detail
-
ADQLColumn
public ADQLColumn(java.lang.String columnRef)
Builds a Column with the complete reference to a column ({schema(s)}.{table}.{column}).- Parameters:
columnRef- The complete reference to a column.- See Also:
setColumn(String)
-
ADQLColumn
public ADQLColumn(java.lang.String tableName, java.lang.String columnName)Builds a column with the given column name and the given table name.- Parameters:
tableName- Name of the table.columnName- Name of the column.- See Also:
setTableName(String),setColumnName(String)
-
ADQLColumn
public ADQLColumn(java.lang.String schema, java.lang.String table, java.lang.String column)Builds a column with the given column name, table name and schema name.- Parameters:
schema- Name of the schema.table- Name of the table.column- Name of the column.- See Also:
ADQLColumn(String, String),setSchemaName(String)
-
ADQLColumn
public ADQLColumn(java.lang.String catalog, java.lang.String schema, java.lang.String table, java.lang.String column)Builds a column with the given column name, table name, schema name and catalog name.- Parameters:
catalog- Name of the catalog.schema- Name of the schema.table- Name of the table.column- Name of the column.- See Also:
ADQLColumn(String, String),setSchemaName(String)
-
ADQLColumn
public ADQLColumn(ADQLColumn toCopy)
Builds a Column by copying the given one.- Parameters:
toCopy- The Column to copy.
-
-
Method Detail
-
normalizeName
protected java.lang.String normalizeName(java.lang.String name, IdentifierField field)Lets normalizing any catalog/schema/table name or alias. If the name is surrounded by double-quotes, they are removed and the corresponding field will be declared as case sensitive.- Parameters:
name- Name to normalize.- Returns:
- The normalized name.
-
getPosition
public final TextPosition getPosition()
Description copied from interface:ADQLObjectGets the position of this object/token in the ADQL query.
By default, no position should be set.
- Specified by:
getPositionin interfaceADQLObject- Returns:
- Position of this ADQL item in the ADQL query, or NULL if not written originally in the query (for example, if added afterwards.
-
setPosition
public void setPosition(TextPosition pos)
Sets the position at which thisADQLColumnhas been found in the original ADQL query string.- Parameters:
pos- Position of thisADQLColumn.
-
getCatalogName
public final java.lang.String getCatalogName()
Gets the name of the catalog which contains this column.- Returns:
- Catalog name.
-
setCatalogName
public final void setCatalogName(java.lang.String catalog)
Sets the name of the catalog which contains this column.- Parameters:
catalog- New name of the catalog.
-
getSchemaName
public final java.lang.String getSchemaName()
Gets the name of the schema which contains this column.- Returns:
- Schema name.
-
setSchemaName
public final void setSchemaName(java.lang.String schema)
Sets the name of the schema which contains this column.- Parameters:
schema- New name of the schema.
-
getTableName
public final java.lang.String getTableName()
Gets the name of the table which contains this column.- Returns:
- Table name.
-
setTableName
public final void setTableName(java.lang.String tableName)
Sets the name of the table which contains this column.- Parameters:
tableName- New name of the table.
-
getColumnName
public final java.lang.String getColumnName()
Gets the name of this column.- Returns:
- Its column name.
-
getFullColumnName
public final java.lang.String getFullColumnName()
Gets the full name of this column (catalogName . schemaName . tableName . columnName) by respecting the case sensitivity of each field (if case sensitive, double-quotes will surround the concerned fields name).- Returns:
- Its full name.
- See Also:
getFullColumnPrefix()
-
getFullColumnPrefix
public final java.lang.StringBuffer getFullColumnPrefix()
Gets the full column prefix (catalogName . schemaName . tableName) by respecting the case sensitivity of each field (if case sensitive, double-quotes will surround the concerned fields name).- Returns:
- Its full prefix.
-
setColumnName
public final void setColumnName(java.lang.String columnName)
Changes the name of the column ({column} in {schema(s)}.{table}.{column}).- Parameters:
columnName- The new column name.
-
setColumn
public final void setColumn(java.lang.String columnRef)
Updates the whole Column according to the given column reference ({catalog}.{schema}.{table}.{column}).- Parameters:
columnRef- The complete column reference ({catalog}.{schema}.{table}.{column}).
-
isCaseSensitive
public final boolean isCaseSensitive(IdentifierField field)
Indicates whether the specified field (catalog, schema, table or column) is case sensitive or not.- Parameters:
field- A field (catalog, schema, table or column).- Returns:
- true if the specified field is case sensitive, false otherwise.
- See Also:
IdentifierField,IdentifierField.isCaseSensitive(byte)
-
setCaseSensitive
public final void setCaseSensitive(IdentifierField field, boolean sensitive)
Sets the case sensitivity of the specified field (catalog, schema, table, column).- Parameters:
field- The field for which the case sensitivity must be updated.sensitive- true if the specified field must be case sensitive, false otherwise.- See Also:
IdentifierField,IdentifierField.setCaseSensitive(byte, boolean)
-
isCaseSensitive
public final boolean isCaseSensitive()
Indicates whether all fields (catalog, schema, table and column) are case sensitive.- Returns:
- true if all fields are case sensitive, false otherwise.
- See Also:
IdentifierField.isFullCaseSensitive(byte)
-
setCaseSensitive
public final void setCaseSensitive(boolean sensitive)
Sets the case sensitivity of all fields (catalog, schema, table and column).- Parameters:
sensitive- true if all fields must be case sensitive, false otherwise.- See Also:
IdentifierField.getFullCaseSensitive(boolean)
-
getCaseSensitive
public final byte getCaseSensitive()
Gets the whole case sensitivity of this ADQL column.- Returns:
- Its new case sensitivity (one bit per fields).
- See Also:
IdentifierField
-
setCaseSensitive
public final void setCaseSensitive(byte sensitivity)
Sets the whole case sensitivity of this ADQL column.- Parameters:
sensitivity- Its new case sensitivity (one bit per fields).- See Also:
IdentifierField
-
getDBLink
public final DBColumn getDBLink()
Gets the correspondingDBColumn.- Returns:
- The corresponding
DBColumn.
-
setDBLink
public final void setDBLink(DBColumn dbLink)
Sets the
DBColumncorresponding to thisADQLColumn.By default, this field is automatically filled by
DBChecker.- Parameters:
dbLink- Its correspondingDBColumn.
-
getAdqlTable
public final ADQLTable getAdqlTable()
Gets theADQLTablefrom which this column is supposed to come.- Returns:
- Its source table.
-
setAdqlTable
public final void setAdqlTable(ADQLTable adqlTable)
Sets the
ADQLTablefrom which this column is supposed to come.By default, this field is automatically filled by
DBCheckerwhenDBChecker.check(adql.query.ADQLQuery)is called.- Parameters:
adqlTable- Its source table.
-
getExpectedType
public char getExpectedType()
Description copied from interface:UnknownTypeGet the type expected by the syntactic parser according to the context.- Specified by:
getExpectedTypein interfaceUnknownType- Returns:
- Expected type: 'n' or 'N' for numeric, 's' or 'S' for string, 'g' or 'G' for geometry.
-
setExpectedType
public void setExpectedType(char c)
Description copied from interface:UnknownTypeSet the type expected for this operand.- Specified by:
setExpectedTypein interfaceUnknownType- Parameters:
c- Expected type: 'n' or 'N' for numeric, 's' or 'S' for string, 'g' or 'G' for geometry.
-
isNumeric
public boolean isNumeric()
Description copied from interface:ADQLOperandTell whether this operand is numeric or not.- Specified by:
isNumericin interfaceADQLOperand- Returns:
- true if this operand is numeric, false otherwise.
-
isString
public boolean isString()
Description copied from interface:ADQLOperandTell whether this operand is a string or not.- Specified by:
isStringin interfaceADQLOperand- Returns:
- true if this operand is a string, false otherwise.
-
isGeometry
public boolean isGeometry()
Description copied from interface:ADQLOperandTell whether this operand is a geometrical region or not.- Specified by:
isGeometryin interfaceADQLOperand- Returns:
- true if this operand is a geometry, false otherwise.
-
getCopy
public ADQLObject getCopy() throws java.lang.Exception
Description copied from interface:ADQLObjectGets a (deep) copy of this ADQL object.- Specified by:
getCopyin interfaceADQLObject- Returns:
- The copy of this ADQL object.
- Throws:
java.lang.Exception- If there is any error during the copy.
-
getName
public java.lang.String getName()
Description copied from interface:ADQLObjectGets the name of this object in ADQL.- Specified by:
getNamein interfaceADQLObject- Returns:
- The name of this ADQL object.
-
adqlIterator
public ADQLIterator adqlIterator()
Description copied from interface:ADQLObjectGets an iterator on the intern ADQL objects.
Note:The returned iterator is particularly used by a
ISearchHandlerextension to browse a whole ADQL tree.- Specified by:
adqlIteratorin interfaceADQLObject- Returns:
- An ADQL objects iterator.
- See Also:
ADQLIterator,ISearchHandler
-
toADQL
public java.lang.String toADQL()
Description copied from interface:ADQLObjectGets the ADQL expression of this object.- Specified by:
toADQLin interfaceADQLObject- Returns:
- The corresponding ADQL expression.
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-