Package adql.query
Class ColumnReference
java.lang.Object
adql.query.ColumnReference
- All Implemented Interfaces:
ADQLObject
- Direct Known Subclasses:
ADQLOrder
Represents a reference to a selected column either by an index or by a non-qualified column name/alias.
- Version:
- 01/2012
- Author:
- Grégory Mantelet (CDS)
- See Also:
-
Constructor Summary
ConstructorsConstructorDescriptionColumnReference(int index) Builds a column reference with an index of a selected column.ColumnReference(ColumnReference toCopy) Builds a column reference by copying the given one.ColumnReference(String colName) Builds a column reference with a name/alias of a selected column. -
Method Summary
Modifier and TypeMethodDescriptionfinal ADQLIteratorGets an iterator on the intern ADQL objects.final ADQLTableGets theADQLTablefrom which this column is supposed to come.final intGets the index of the referenced column.final StringGets the name/alias of the referenced column.getCopy()Gets a (deep) copy of this ADQL object.final DBColumnGets the correspondingDBColumn.getName()Gets the name of this object in ADQL.final TextPositionGets the position in the original ADQL query string.final booleanTells whether the column reference on a column name/alias is case sensitive.final booleanisIndex()Tells whether the column is referenced by its index or by its name/alias.final voidsetAdqlTable(ADQLTable adqlTable) Sets theADQLTablefrom which this column is supposed to come.final voidsetCaseSensitive(boolean sensitive) Sets the case sensitivity on the column name/alias.final booleansetColumnIndex(int index) Sets the index of the referenced column.final booleansetColumnName(String name) Sets the name/alias of the referenced column.final voidSets theDBColumncorresponding to thisADQLColumn.voidsetPosition(TextPosition pos) Sets the position at which thisColumnReferencehas been found in the original ADQL query string.toADQL()Gets the ADQL expression of this object.
-
Constructor Details
-
ColumnReference
Builds a column reference with an index of a selected column.- Parameters:
index- Index of a selected column (from 1).- Throws:
ArrayIndexOutOfBoundsException- If the given index is less or equal 0.
-
ColumnReference
Builds a column reference with a name/alias of a selected column.- Parameters:
colName- A column name/alias.- Throws:
NullPointerException- If the given name is null or is an empty string.
-
ColumnReference
Builds a column reference by copying the given one.- Parameters:
toCopy- The column reference to copy.
-
-
Method Details
-
getPosition
Gets the position in the original ADQL query string.- Specified by:
getPositionin interfaceADQLObject- Returns:
- The position of this
ColumnReference.
-
setPosition
Sets the position at which thisColumnReferencehas been found in the original ADQL query string.- Parameters:
pos- Position of thisColumnReference.
-
getColumnIndex
public final int getColumnIndex()Gets the index of the referenced column.- Returns:
- The index of the referenced column or -1 if this column reference has been made with a column name/alias.
-
setColumnIndex
public final boolean setColumnIndex(int index) Sets the index of the referenced column.- Parameters:
index- The index of the referenced column (must be > 0).- Returns:
- true if the column referenced has been updated, false otherwise (if index <= 0).
-
isIndex
public final boolean isIndex()Tells whether the column is referenced by its index or by its name/alias.- Returns:
- true if by index, false if by name/alias.
-
getColumnName
Gets the name/alias of the referenced column.- Returns:
- The referenced column's name/alias or null if this column reference has been made with a column index.
-
setColumnName
Sets the name/alias of the referenced column.- Parameters:
name- The referenced column's name/alias (must be different from null and from an empty string).- Returns:
- true if the column reference has been updated, false otherwise (if name is null or is an empty string).
-
isCaseSensitive
public final boolean isCaseSensitive()Tells whether the column reference on a column name/alias is case sensitive.- Returns:
- true if the column name/alias is case sensitive, false otherwise.
-
setCaseSensitive
public final void setCaseSensitive(boolean sensitive) Sets the case sensitivity on the column name/alias.- Parameters:
sensitive- true to make case sensitive the column name/alias, false otherwise.
-
getDBLink
Gets the correspondingDBColumn.- Returns:
- The corresponding
DBColumnifgetColumnName()is a column name (not an alias), null otherwise.
-
setDBLink
Sets the
DBColumncorresponding to thisADQLColumn.By default, this field is automatically filled by
DBChecker.- Parameters:
dbLink- Its correspondingDBColumnifgetColumnName()is a column name (not an alias), null otherwise.
-
getAdqlTable
Gets theADQLTablefrom which this column is supposed to come.- Returns:
- Its source table if
getColumnName()is a column name (not an alias), otherwise null.
-
setAdqlTable
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 ifgetColumnName()is a column name (not an alias), null otherwise.
-
getCopy
Description copied from interface:ADQLObjectGets a (deep) copy of this ADQL object.- Specified by:
getCopyin interfaceADQLObject- Returns:
- The copy of this ADQL object.
- Throws:
Exception- If there is any error during the copy.
-
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
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:
-
toADQL
Description copied from interface:ADQLObjectGets the ADQL expression of this object.- Specified by:
toADQLin interfaceADQLObject- Returns:
- The corresponding ADQL expression.
-