Class Function2Args

All Implemented Interfaces:
SourceLocator, ExpressionNode, XPathVisitable
Direct Known Subclasses:
FuncContains, FuncStartsWith, FuncSubstringAfter, FuncSubstringBefore, Function3Args

public class Function2Args extends FunctionOneArg
Base class for functions that accept two arguments.
  • Constructor Details

    • Function2Args

      public Function2Args()
  • 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 FunctionOneArg
      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 FunctionOneArg
      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 FunctionOneArg
      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 FunctionOneArg
      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 FunctionOneArg
    • 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 FunctionOneArg
      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.