Class SQLFunction

  • All Implemented Interfaces:
    ADQLObject, ADQLOperand

    public class SQLFunction
    extends ADQLFunction
    It represents any SQL function (COUNT, MAX, MIN, AVG, SUM, etc...).
    Version:
    1.4 (06/2015)
    Author:
    Grégory Mantelet (CDS;ARI)
    See Also:
    SQLFunctionType
    • Constructor Detail

      • SQLFunction

        public SQLFunction​(SQLFunctionType t,
                           ADQLOperand operand)
                    throws java.lang.NullPointerException
        Creates a SQL function with one parameter.
        Parameters:
        t - Type of the function.
        operand - The only parameter of this function.
        Throws:
        java.lang.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 java.lang.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:
        java.lang.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 java.lang.Exception
        Builds a SQL function by copying the given one.
        Parameters:
        toCopy - The SQL function to copy.
        Throws:
        java.lang.Exception - If there is an error during the copy.
    • Method Detail

      • 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 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.
      • 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.
      • toADQL

        public java.lang.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.