Class SQLFunction

java.lang.Object
adql.query.operand.function.ADQLFunction
adql.query.operand.function.SQLFunction
All Implemented Interfaces:
ADQLObject, ADQLOperand

public class SQLFunction extends ADQLFunction
It represents any SQL function (COUNT, MAX, MIN, AVG, SUM, etc...).
See Also:
  • Constructor Details

    • SQLFunction

      public SQLFunction(SQLFunctionType t, ADQLOperand operand) throws NullPointerException
      Creates a SQL function with one parameter.
      Parameters:
      t - Type of the function.
      operand - The only parameter of this function.
      Throws:
      NullPointerException - If the given is NULL or if the given operand is NULL EXCEPT when the given type is SQLFunctionType.COUNT_ALL.
    • SQLFunction

      public SQLFunction(SQLFunctionType t, ADQLOperand operand, boolean distinctValues) throws NullPointerException
      Creates a SQL function with one parameter.
      Parameters:
      t - Type of the function.
      operand - The only parameter of this function.
      distinctValues - true if the quantifier DISTINCT must be used, false otherwise (ALL).
      Throws:
      NullPointerException - If the given is NULL or if the given operand is NULL EXCEPT when the given type is SQLFunctionType.COUNT_ALL.
    • SQLFunction

      public SQLFunction(SQLFunction toCopy) throws Exception
      Builds a SQL function by copying the given one.
      Parameters:
      toCopy - The SQL function to copy.
      Throws:
      Exception - If there is an error during the copy.
  • Method Details

    • getFeatureDescription

      public final LanguageFeature getFeatureDescription()
      Description copied from interface: ADQLObject
      Get the description of this ADQL's Language Feature.

      Note: Getting this description is generally only useful when discovery optional features so that determining if they are allowed to be used in ADQL queries.

      Returns:
      Description of this ADQL object as an ADQL's feature.
    • isDistinct

      public final boolean isDistinct()
      Indicates whether values of the parameter must be distinct or not.
      Returns:
      true means distinct values, false else.
    • setDistinct

      public void setDistinct(boolean distinctValues)
      Tells if distinct values of the given parameter must be taken.
      Parameters:
      distinctValues - true means distinct values, false else.
    • getType

      public final SQLFunctionType getType()
      Gets the type (COUNT, SUM, AVG, ...) of this function.
      Returns:
      Its type.
    • getCopy

      public ADQLObject getCopy() throws Exception
      Description copied from interface: ADQLObject
      Gets a (deep) copy of this ADQL object.
      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.
      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 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:
      ArrayIndexOutOfBoundsException - If the index is incorrect (index < 0 || index >= getNbParameters()).
    • setParameter

      public ADQLOperand setParameter(int index, ADQLOperand replacer) throws ArrayIndexOutOfBoundsException, NullPointerException, 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:
      ArrayIndexOutOfBoundsException - If the index is incorrect (index < 0 || index >= getNbParameters()).
      NullPointerException - If a required parameter must be replaced by a NULL object.
      Exception - If another error occurs.
    • toADQL

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