Class Function3Args

All Implemented Interfaces:
SourceLocator, ExpressionNode, XPathVisitable
Direct Known Subclasses:
FuncSubstring, FunctionMultiArgs, FuncTranslate

public class Function3Args extends Function2Args
Base class for functions that accept three arguments.
  • Constructor Details

    • Function3Args

      public Function3Args()
  • Method Details

    • setArg

      public void setArg(Expression arg, int argNum) throws WrongNumberArgsException
      Set an argument expression for a function. This method is called by the XPath compiler.
      Overrides:
      setArg in class Function2Args
      Parameters:
      arg - non-null expression that represents the argument.
      argNum - The argument number index.
      Throws:
      WrongNumberArgsException - If the argNum parameter is beyond what is specified for this function.
    • checkNumberArgs

      public void checkNumberArgs(int argNum) throws WrongNumberArgsException
      Check that the number of arguments passed to this function is correct. This method is meant to be overloaded by derived classes, to check for the number of arguments for a specific function type. This method is called by the compiler for static number of arguments checking.
      Overrides:
      checkNumberArgs in class Function2Args
      Parameters:
      argNum - The number of arguments that is being passed to the function.
      Throws:
      WrongNumberArgsException - if any
    • reportWrongNumberArgs

      protected void reportWrongNumberArgs() throws WrongNumberArgsException
      Constructs and throws a WrongNumberArgException with the appropriate message for this function object. This method is meant to be overloaded by derived classes so that the message will be as specific as possible.
      Overrides:
      reportWrongNumberArgs in class Function2Args
      Throws:
      WrongNumberArgsException - if any
    • canTraverseOutsideSubtree

      public boolean canTraverseOutsideSubtree()
      Tell if this expression or it's subexpressions can traverse outside the current subtree.
      Overrides:
      canTraverseOutsideSubtree in class Function2Args
      Returns:
      true if traversal outside the context node's subtree can occur.
    • callArgVisitors

      public void callArgVisitors(XPathVisitor visitor)
      Call the visitors for the function arguments.
      Overrides:
      callArgVisitors in class Function2Args
    • deepEquals

      public boolean deepEquals(Expression expr)
      Compare this object with another object and see if they are equal, include the sub heararchy.
      Overrides:
      deepEquals in class Function2Args
      Parameters:
      expr - Another expression object.
      Returns:
      true if this objects class and the expr object's class are the same, and the data contained within both objects are considered equal.