Package adql.query.operand.function

## Class MathFunction

- java.lang.Object
- - adql.query.operand.function.ADQLFunction
  - - adql.query.operand.function.MathFunction

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

      public class MathFunction
      extends ADQLFunction

  It represents any basic mathematical function.
  Version:
    1.4 (06/2015)
  Author:
    Grégory Mantelet (CDS;ARI)
  See Also:
    `MathFunctionType`

- - ### Nested Class Summary

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

      `ADQLFunction.ParameterIterator`

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `MathFunction​(MathFunction toCopy)` | Builds a mathematical function by copying the given one.
    `MathFunction​(MathFunctionType t)` | Creates a mathematical function without parameter.
    `MathFunction​(MathFunctionType t, ADQLOperand parameter)` | Creates a mathematical function with only one parameter.
    `MathFunction​(MathFunctionType t, ADQLOperand parameter1, ADQLOperand parameter2)` | Creates a mathematical function with two parameters.

  - ### 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.
    `MathFunctionType` | `getType()` | Gets the type of the function (ABS, COS, SIN, ...).
    `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.ADQLFunction

      `adqlIterator, getPosition, paramIterator, setPosition, toADQL`

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

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

- - ### Constructor Detail

    - #### MathFunction

          public MathFunction​(MathFunctionType t)
                       throws java.lang.Exception

      Creates a mathematical function without parameter.
      Parameters:
        `t` - The type of the function.
      Throws:
        `java.lang.Exception` - If the given function parameters are incorrect.
      See Also:
        `MathFunction(MathFunctionType, ADQLOperand, ADQLOperand)`

    - #### MathFunction

          public MathFunction​(MathFunctionType t,
                              ADQLOperand parameter)
                       throws java.lang.Exception

      Creates a mathematical function with only one parameter.
      Parameters:
        `t` - The type of the function.
        `parameter` - Its only parameter.
      Throws:
        `java.lang.Exception` - If the given function parameters are incorrect.
      See Also:
        `MathFunction(MathFunctionType, ADQLOperand, ADQLOperand)`

    - #### MathFunction

          public MathFunction​(MathFunctionType t,
                              ADQLOperand parameter1,
                              ADQLOperand parameter2)
                       throws java.lang.Exception

      Creates a mathematical function with two parameters.
      Parameters:
        `t` - The type of the function.
        `parameter1` - Its first parameter.
        `parameter2` - Its second parameter.
      Throws:
        `java.lang.Exception` - If the given function parameters are incorrect.

    - #### MathFunction

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

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

  - ### Method Detail

    - #### getType

          public final MathFunctionType getType()

      Gets the type of the function (ABS, COS, SIN, ...).
      Returns:
        Its type.
      See Also:
        `MathFunctionType`

    - #### 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.

    - #### 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.

    - #### isNumeric

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