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 ADQLIterator
adqlIterator()
Gets an iterator on the intern ADQL objects.ADQLTable
getAdqlTable()
Gets theADQLTable
from which this column is supposed to come.byte
getCaseSensitive()
Gets the whole case sensitivity of this ADQL column.java.lang.String
getCatalogName()
Gets the name of the catalog which contains this column.java.lang.String
getColumnName()
Gets the name of this column.ADQLObject
getCopy()
Gets a (deep) copy of this ADQL object.DBColumn
getDBLink()
Gets the correspondingDBColumn
.char
getExpectedType()
Get the type expected by the syntactic parser according to the context.java.lang.String
getFullColumnName()
Gets the full name of this column (catalogName .java.lang.StringBuffer
getFullColumnPrefix()
Gets the full column prefix (catalogName .java.lang.String
getName()
Gets the name of this object in ADQL.TextPosition
getPosition()
Gets the position of this object/token in the ADQL query.java.lang.String
getSchemaName()
Gets the name of the schema which contains this column.java.lang.String
getTableName()
Gets the name of the table which contains this column.boolean
isCaseSensitive()
Indicates whether all fields (catalog, schema, table and column) are case sensitive.boolean
isCaseSensitive(IdentifierField field)
Indicates whether the specified field (catalog, schema, table or column) is case sensitive or not.boolean
isGeometry()
Tell whether this operand is a geometrical region or not.boolean
isNumeric()
Tell whether this operand is numeric or not.boolean
isString()
Tell whether this operand is a string or not.protected java.lang.String
normalizeName(java.lang.String name, IdentifierField field)
Lets normalizing any catalog/schema/table name or alias.void
setAdqlTable(ADQLTable adqlTable)
Sets theADQLTable
from which this column is supposed to come.void
setCaseSensitive(boolean sensitive)
Sets the case sensitivity of all fields (catalog, schema, table and column).void
setCaseSensitive(byte sensitivity)
Sets the whole case sensitivity of this ADQL column.void
setCaseSensitive(IdentifierField field, boolean sensitive)
Sets the case sensitivity of the specified field (catalog, schema, table, column).void
setCatalogName(java.lang.String catalog)
Sets the name of the catalog which contains this column.void
setColumn(java.lang.String columnRef)
Updates the whole Column according to the given column reference ({catalog}.{schema}.{table}.{column}).void
setColumnName(java.lang.String columnName)
Changes the name of the column ({column} in {schema(s)}.{table}.{column}).void
setDBLink(DBColumn dbLink)
Sets theDBColumn
corresponding to thisADQLColumn
.void
setExpectedType(char c)
Set the type expected for this operand.void
setPosition(TextPosition pos)
Sets the position at which thisADQLColumn
has been found in the original ADQL query string.void
setSchemaName(java.lang.String schema)
Sets the name of the schema which contains this column.void
setTableName(java.lang.String tableName)
Sets the name of the table which contains this column.java.lang.String
toADQL()
Gets the ADQL expression of this object.java.lang.String
toString()
-
-
-
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:ADQLObject
Gets the position of this object/token in the ADQL query.
By default, no position should be set.
- Specified by:
getPosition
in 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 thisADQLColumn
has 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
DBColumn
corresponding to thisADQLColumn
.By default, this field is automatically filled by
DBChecker
.- Parameters:
dbLink
- Its correspondingDBColumn
.
-
getAdqlTable
public final ADQLTable getAdqlTable()
Gets theADQLTable
from which this column is supposed to come.- Returns:
- Its source table.
-
setAdqlTable
public final void setAdqlTable(ADQLTable adqlTable)
Sets the
ADQLTable
from which this column is supposed to come.By default, this field is automatically filled by
DBChecker
whenDBChecker.check(adql.query.ADQLQuery)
is called.- Parameters:
adqlTable
- Its source table.
-
getExpectedType
public char getExpectedType()
Description copied from interface:UnknownType
Get the type expected by the syntactic parser according to the context.- Specified by:
getExpectedType
in 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:UnknownType
Set the type expected for this operand.- Specified by:
setExpectedType
in 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:ADQLOperand
Tell whether this operand is numeric or not.- Specified by:
isNumeric
in interfaceADQLOperand
- Returns:
- true if this operand is numeric, false otherwise.
-
isString
public boolean isString()
Description copied from interface:ADQLOperand
Tell whether this operand is a string or not.- Specified by:
isString
in interfaceADQLOperand
- Returns:
- true if this operand is a string, false otherwise.
-
isGeometry
public boolean isGeometry()
Description copied from interface:ADQLOperand
Tell whether this operand is a geometrical region or not.- Specified by:
isGeometry
in interfaceADQLOperand
- Returns:
- true if this operand is a geometry, false otherwise.
-
getCopy
public ADQLObject getCopy() throws java.lang.Exception
Description copied from interface:ADQLObject
Gets a (deep) copy of this ADQL object.- Specified by:
getCopy
in 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:ADQLObject
Gets the name of this object in ADQL.- Specified by:
getName
in interfaceADQLObject
- Returns:
- The name of this ADQL object.
-
adqlIterator
public ADQLIterator adqlIterator()
Description copied from interface:ADQLObject
Gets an iterator on the intern ADQL objects.
Note:The returned iterator is particularly used by a
ISearchHandler
extension to browse a whole ADQL tree.- Specified by:
adqlIterator
in interfaceADQLObject
- Returns:
- An ADQL objects iterator.
- See Also:
ADQLIterator
,ISearchHandler
-
toADQL
public java.lang.String toADQL()
Description copied from interface:ADQLObject
Gets the ADQL expression of this object.- Specified by:
toADQL
in interfaceADQLObject
- Returns:
- The corresponding ADQL expression.
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-