Package adql.query

## Class SelectItem

- java.lang.Object
- - adql.query.SelectItem

- All Implemented Interfaces:
    `ADQLObject`
  Direct Known Subclasses:
    `SelectAllColumns`

      public class SelectItem
      extends java.lang.Object
      implements ADQLObject

  Represents an item of a SELECT clause.

  It merely encapsulates an operand and allows to associate to it an alias (according to the following syntax: "SELECT operand AS alias").

  Version:
    1.4 (03/2016)
  Author:
    Grégory Mantelet (CDS;ARI)
  See Also:
    `ClauseSelect`

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `SelectItem​(ADQLOperand operand)` | Builds a SELECT item just with an operand.
    `SelectItem​(ADQLOperand operand, java.lang.String alias)` | Builds a SELECT item with an operand and its alias.
    `SelectItem​(SelectItem toCopy)` | Builds a SELECT item by copying the given one.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLIterator` | `adqlIterator()` | Gets an iterator on the intern ADQL objects.
    `java.lang.String` | `getAlias()` | Gets the alias of the corresponding operand.
    `ADQLObject` | `getCopy()` | Gets a (deep) copy of this ADQL object.
    `java.lang.String` | `getName()` | Gets the name of this object in ADQL.
    `ADQLOperand` | `getOperand()` | Gets the corresponding operand.
    `TextPosition` | `getPosition()` | Gets the position of this object/token in the ADQL query.
    `boolean` | `hasAlias()` | Indicates whether the corresponding operand has an alias.
    `boolean` | `isCaseSensitive()` | Tells whether the alias is case sensitive.
    `void` | `setAlias​(java.lang.String newAlias)` | Changes the alias of the corresponding operand.
    `void` | `setCaseSensitive​(boolean sensitive)` | Sets the case sensitivity on the alias.
    `void` | `setPosition​(TextPosition position)` | Set the position of this `SelectItem` in the given ADQL query string.
    `java.lang.String` | `toADQL()` | Gets the ADQL expression of this object.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### SelectItem

          public SelectItem​(ADQLOperand operand)

      Builds a SELECT item just with an operand.
      Parameters:
        `operand` - Corresponding operand.

    - #### SelectItem

          public SelectItem​(ADQLOperand operand,
                            java.lang.String alias)

      Builds a SELECT item with an operand and its alias.
      Parameters:
        `operand` - Corresponding operand.
        `alias` - Operand alias.

    - #### SelectItem

          public SelectItem​(SelectItem toCopy)
                     throws java.lang.Exception

      Builds a SELECT item by copying the given one.
      Parameters:
        `toCopy` - The SELECT item to copy.
      Throws:
        `java.lang.Exception` - If there is an error during the copy.

  - ### Method Detail

    - #### getOperand

          public final ADQLOperand getOperand()

      Gets the corresponding operand.
      Returns:
        The corresponding operand.

    - #### hasAlias

          public final boolean hasAlias()

      Indicates whether the corresponding operand has an alias.
      Returns:
        true if there is an alias, false otherwise.

    - #### getAlias

          public final java.lang.String getAlias()

      Gets the alias of the corresponding operand.
      Returns:
        Alias of the operand.

    - #### setAlias

          public final void setAlias​(java.lang.String newAlias)

      Changes the alias of the corresponding operand.
      Parameters:
        `newAlias` - The new alias of the operand.

    - #### isCaseSensitive

          public final boolean isCaseSensitive()

      Tells whether the alias is case sensitive.
      Returns:
        true if the alias is case sensitive, false otherwise.

    - #### setCaseSensitive

          public final void setCaseSensitive​(boolean sensitive)

      Sets the case sensitivity on the alias.
      Parameters:
        `sensitive` - true to make case sensitive the alias, false otherwise.

    - #### 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 interface `ADQLObject`
      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 final void setPosition​(TextPosition position)

      Set the position of this `SelectItem` in the given ADQL query string.
      Parameters:
        `position` - New position of this `SelectItem`.
      Since:
        1.4

    - #### 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 interface `ADQLObject`
      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 interface `ADQLObject`
      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 interface `ADQLObject`
      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 interface `ADQLObject`
      Returns:
        The corresponding ADQL expression.