Package adql.query

Class ColumnReference

java.lang.Object
adql.query.ColumnReference
All Implemented Interfaces:
ADQLObject
Direct Known Subclasses:
ADQLOrder

public class ColumnReference extends Object implements ADQLObject
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 Details

    • ColumnReference

      public ColumnReference(int index) throws ArrayIndexOutOfBoundsException
      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

      public ColumnReference(String colName) throws NullPointerException
      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

      public ColumnReference(ColumnReference toCopy)
      Builds a column reference by copying the given one.
      Parameters:
      toCopy - The column reference to copy.
  • Method Details

    • getPosition

      public final TextPosition getPosition()
      Gets the position in the original ADQL query string.
      Specified by:
      getPosition in interface ADQLObject
      Returns:
      The position of this ColumnReference.
    • setPosition

      public void setPosition(TextPosition pos)
      Sets the position at which this ColumnReference has been found in the original ADQL query string.
      Parameters:
      pos - Position of this ColumnReference.
    • 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

      public final String 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

      public final boolean setColumnName(String name)
      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

      public final DBColumn getDBLink()
      Gets the corresponding DBColumn.
      Returns:
      The corresponding DBColumn if getColumnName() is a column name (not an alias), null otherwise.
    • setDBLink

      public final void setDBLink(DBColumn dbLink)

      Sets the DBColumn corresponding to this ADQLColumn.

      By default, this field is automatically filled by DBChecker.

      Parameters:
      dbLink - Its corresponding DBColumn if getColumnName() is a column name (not an alias), null otherwise.
    • getAdqlTable

      public final ADQLTable getAdqlTable()
      Gets the ADQLTable from which this column is supposed to come.
      Returns:
      Its source table if getColumnName() is a column name (not an alias), otherwise null.
    • 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 when DBChecker.check(adql.query.ADQLQuery) is called.

      Parameters:
      adqlTable - Its source table if getColumnName() is a column name (not an alias), null otherwise.
    • getCopy

      public ADQLObject getCopy() throws Exception
      Description copied from interface: ADQLObject
      Gets a (deep) copy of this ADQL object.
      Specified by:
      getCopy in interface ADQLObject
      Returns:
      The copy of this ADQL object.
      Throws:
      Exception - If there is any error during the copy.
    • getName

      public String getName()
      Description copied from interface: ADQLObject
      Gets the name of this object in ADQL.
      Specified by:
      getName in interface ADQLObject
      Returns:
      The name of this ADQL object.
    • adqlIterator

      public final 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 interface ADQLObject
      Returns:
      An ADQL objects iterator.
      See Also:
    • toADQL

      public String toADQL()
      Description copied from interface: ADQLObject
      Gets the ADQL expression of this object.
      Specified by:
      toADQL in interface ADQLObject
      Returns:
      The corresponding ADQL expression.