Package adql.query.operand

## Class NegativeOperand

- java.lang.Object
- - adql.query.operand.NegativeOperand

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

      public final class NegativeOperand
      extends java.lang.Object
      implements ADQLOperand

  Lets putting a minus sign in front of any numeric operand.
  Version:
    1.4 (09/2017)
  Author:
    Grégory Mantelet (CDS;ARI)

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `NegativeOperand​(ADQLOperand operand)` | Builds an operand which will negativate the given operand.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `ADQLIterator` | `adqlIterator()` | Gets an iterator on the intern ADQL objects.
    `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 operand on which the minus sign is applied.
    `TextPosition` | `getPosition()` | Gets the position of this object/token in the ADQL query.
    `boolean` | `isGeometry()` | Always returns false.
    `boolean` | `isNumeric()` | Always returns true.
    `boolean` | `isString()` | Always returns false.
    `void` | `setPosition​(TextPosition position)` | Sets the position at which this `NegativeOperand` has been found in the original 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

    - #### NegativeOperand

          public NegativeOperand​(ADQLOperand operand)
                          throws java.lang.NullPointerException,
                                 java.lang.UnsupportedOperationException

      Builds an operand which will negativate the given operand.

      Important: The given operand must be numeric (`ADQLOperand.isNumeric()` must return true) !

      Parameters:
        `operand` - The operand to negativate.
      Throws:
        `java.lang.NullPointerException` - If the given operand is null.
        `java.lang.UnsupportedOperationException` - If the given operand is not numeric (if `ADQLOperand.isNumeric()` does not return true).

  - ### Method Detail

    - #### getOperand

          public final ADQLOperand getOperand()

      Gets the operand on which the minus sign is applied.
      Returns:
        The negativated operand.

    - #### isNumeric

          public final boolean isNumeric()

      Always returns true.
      Specified by:
        `isNumeric` in interface `ADQLOperand`
      Returns:
        true if this operand is numeric, false otherwise.
      See Also:
        `ADQLOperand.isNumeric()`

    - #### isString

          public final boolean isString()

      Always returns false.
      Specified by:
        `isString` in interface `ADQLOperand`
      Returns:
        true if this operand is a string, false otherwise.
      See Also:
        `ADQLOperand.isString()`

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

      Sets the position at which this `NegativeOperand` has been found in the original ADQL query string.
      Parameters:
        `position` - Position of this `NegativeOperand`.
      Since:
        1.4

    - #### isGeometry

          public final boolean isGeometry()

      Always returns false.
      Specified by:
        `isGeometry` in interface `ADQLOperand`
      Returns:
        true if this operand is a geometry, false otherwise.
      See Also:
        `ADQLOperand.isGeometry()`

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