Class BTFunctionClause

java.lang.Object
opendap.servers.AbstractClause
opendap.servers.BTFunctionClause
All Implemented Interfaces:
Clause, SubClause

public class BTFunctionClause extends AbstractClause implements SubClause
Represents a clause which invokes a function that returns a BaseType.
See Also:
  • Field Details

    • parent

      protected Clause parent
    • function

      protected BTFunction function
    • value

      protected opendap.dap.BaseType value
  • Constructor Details

    • BTFunctionClause

      protected BTFunctionClause(BTFunction function, List children) throws DAP2ServerSideException
      Creates a new BTFunctionClause.
      Parameters:
      function - The function invoked by the clause
      children - A list of SubClauses, to be given as arguments to the function. If all the arguments are constant, the function clause will be flagged as constant, and evaluated immediately.
      Throws:
      DAP2ServerSideException - Thrown if either 1) the function does not accept the arguments given, or 2) the clause is constant, and the attempt to evaluate it fails.
  • Method Details

    • getParent

      public Clause getParent()
      Description copied from interface: SubClause
      Returns the Clause which contains this subclause. The clause returned may be a TopLevelClause or another SubClause.
      Specified by:
      getParent in interface SubClause
    • getValue

      public opendap.dap.BaseType getValue()
      Description copied from interface: SubClause
      Returns a BaseType containing the current value of the sub-clause. Sub-clauses that are not constant have an undefined value until the evaluate() method has been called. However, in such circumstances this method is still useful, as it indicates which class of BaseType the sub-clause will evaluate to. Implementations of this method should never return null.
      Specified by:
      getValue in interface SubClause
    • evaluate

      public opendap.dap.BaseType evaluate() throws DAP2ServerSideException
      Description copied from interface: SubClause
      Evaluates the clause, first calling evaluate() on any sub-clauses it contains. Implementations of this method should flag the clause as "defined" if the evaluation is successful.
      Specified by:
      evaluate in interface SubClause
      Throws:
      DAP2ServerSideException - Thrown if the evaluation fails for any reason.
    • setParent

      public void setParent(Clause parent)
      Description copied from interface: SubClause
      Sets the parent of this subclause. Used during parsing.
      Specified by:
      setParent in interface SubClause
    • getFunction

      public BTFunction getFunction()
      Returns the server-side function invoked by this clause
    • printConstraint

      public void printConstraint(PrintWriter os)
      Prints the original string representation of this clause. For use in debugging.
      Specified by:
      printConstraint in interface Clause