Package adql.query.operand.function.geometry

## Class ExtractCoord

- java.lang.Object
- - adql.query.operand.function.ADQLFunction
  - - adql.query.operand.function.geometry.GeometryFunction
    - - adql.query.operand.function.geometry.ExtractCoord

- All Implemented Interfaces:
    `ADQLObject`, `ADQLOperand`

      public class ExtractCoord
      extends GeometryFunction

  It represents the COORD1 and the COORD2 functions of the ADQL language.

  This function extracts the first or the second coordinate value (in degrees) of a given POINT or column reference.

  Example:
  COORD1(POINT('ICRS GEOCENTER', 25.0, -19.5))
  In this example the function extracts the right ascension of a point with position (25, -19.5) in degrees according to the ICRS coordinate system with GEOCENTER reference position.

  Version:
    1.4 (06/2015)
  Author:
    Grégory Mantelet (CDS;ARI)

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class adql.query.operand.function.geometry.GeometryFunction

      `GeometryFunction.GeometryValue<F extends GeometryFunction>`

    - ### Nested classes/interfaces inherited from class adql.query.operand.function.ADQLFunction

      `ADQLFunction.ParameterIterator`

  - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `protected int` | `indCoord` | Number of the coordinate to extract (1 or 2).
    `protected GeometryFunction.GeometryValue<PointFunction>` | `point` | The point from which the coordinate must be extracted.

    - ### Fields inherited from class adql.query.operand.function.geometry.GeometryFunction

      `coordSys`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ExtractCoord​(int indiceCoord, GeometryFunction.GeometryValue<PointFunction> p)` | Builds a COORD1 or a COORD2 function with the given point (a POINT function or a column which contains a POINT function).
    `ExtractCoord​(ExtractCoord toCopy)` | Builds a COORD1 or a COORD2 function by copying the given one.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLObject` | `getCopy()` | Gets a (deep) copy of this ADQL object.
    `java.lang.String` | `getName()` | Gets the name of this object in ADQL.
    `int` | `getNbParameters()` | Gets the number of parameters this function has.
    `ADQLOperand` | `getParameter​(int index)` | Gets the index-th parameter.
    `ADQLOperand[]` | `getParameters()` | Gets the list of all parameters of this function.
    `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.
    `ADQLOperand` | `setParameter​(int index, ADQLOperand replacer)` | Replaces the index-th parameter by the given one.

    - ### Methods inherited from class adql.query.operand.function.geometry.GeometryFunction

      `getCoordinateSystem, setCoordinateSystem`

    - ### Methods inherited from class adql.query.operand.function.ADQLFunction

      `adqlIterator, getPosition, paramIterator, setPosition, toADQL`

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

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

- - ### Field Detail

    - #### indCoord

          protected final int indCoord

      Number of the coordinate to extract (1 or 2).

    - #### point

          protected GeometryFunction.GeometryValue<PointFunction> point

      The point from which the coordinate must be extracted.

  - ### Constructor Detail

    - #### ExtractCoord

          public ExtractCoord​(int indiceCoord,
                              GeometryFunction.GeometryValue<PointFunction> p)
                       throws java.lang.ArrayIndexOutOfBoundsException,
                              java.lang.NullPointerException

      Builds a COORD1 or a COORD2 function with the given point (a POINT function or a column which contains a POINT function).
      Parameters:
        `indiceCoord` - 1 or 2: the index of the coordinate to extract.
        `p` - The POINT function from which the indiceCoord-th coordinate must be extracted.
      Throws:
        `java.lang.ArrayIndexOutOfBoundsException` - If the given index is different from 1 and 2.
        `java.lang.NullPointerException` - If the given geometry is null.

    - #### ExtractCoord

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

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

  - ### Method Detail

    - #### getName

          public java.lang.String getName()

      Description copied from interface: `ADQLObject`
      Gets the name of this object in ADQL.
      Returns:
        The name of this ADQL object.

    - #### getCopy

          public ADQLObject getCopy()
                             throws java.lang.Exception

      Description copied from interface: `ADQLObject`
      Gets a (deep) copy of this ADQL object.
      Returns:
        The copy of this ADQL object.
      Throws:
        `java.lang.Exception` - If there is any error during the copy.

    - #### isNumeric

          public boolean isNumeric()

      Description copied from interface: `ADQLOperand`
      Tell whether this operand is numeric or not.
      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.
      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.
      Returns:
        true if this operand is a geometry, false otherwise.

    - #### getParameters

          public ADQLOperand[] getParameters()

      Description copied from class: `ADQLFunction`
      Gets the list of all parameters of this function.
      Specified by:
        `getParameters` in class `ADQLFunction`
      Returns:
        Its parameters list.

    - #### getNbParameters

          public int getNbParameters()

      Description copied from class: `ADQLFunction`
      Gets the number of parameters this function has.
      Specified by:
        `getNbParameters` in class `ADQLFunction`
      Returns:
        Number of parameters.

    - #### getParameter

          public ADQLOperand getParameter​(int index)
                                   throws java.lang.ArrayIndexOutOfBoundsException

      Description copied from class: `ADQLFunction`
      Gets the index-th parameter.
      Specified by:
        `getParameter` in class `ADQLFunction`
      Parameters:
        `index` - Parameter number.
      Returns:
        The corresponding parameter.
      Throws:
        `java.lang.ArrayIndexOutOfBoundsException` - If the index is incorrect (index < 0 || index >= getNbParameters()).

    - #### setParameter

          public ADQLOperand setParameter​(int index,
                                          ADQLOperand replacer)
                                   throws java.lang.ArrayIndexOutOfBoundsException,
                                          java.lang.NullPointerException,
                                          java.lang.Exception

      Description copied from class: `ADQLFunction`
      Replaces the index-th parameter by the given one.
      Specified by:
        `setParameter` in class `ADQLFunction`
      Parameters:
        `index` - Index of the parameter to replace.
        `replacer` - The replacer.
      Returns:
        The replaced parameter.
      Throws:
        `java.lang.ArrayIndexOutOfBoundsException` - If the index is incorrect (index < 0 || index >= getNbParameters()).
        `java.lang.NullPointerException` - If a required parameter must be replaced by a NULL object.
        `java.lang.Exception` - If another error occurs.