Class FunctionDef1Arg

All Implemented Interfaces:
SourceLocator, ExpressionNode, XPathVisitable
Direct Known Subclasses:
FuncLocalPart, FuncNamespace, FuncNormalizeSpace, FuncNumber, FuncQname, FuncString, FuncStringLength

public class FunctionDef1Arg extends FunctionOneArg
Base class for functions that accept one argument that can be defaulted if not specified.
  • Constructor Details

    • FunctionDef1Arg

      public FunctionDef1Arg()
  • Method Details

    • getArg0AsNode

      protected int getArg0AsNode(XPathContext xctxt) throws TransformerException
      Execute the first argument expression that is expected to return a nodeset. If the argument is null, then return the current context node.
      Parameters:
      xctxt - Runtime XPath context.
      Returns:
      The first node of the executed nodeset, or the current context node if the first argument is null.
      Throws:
      TransformerException - if an error occurs while executing the argument expression.
    • getArg0AsString

      protected XString getArg0AsString(XPathContext xctxt) throws TransformerException
      Execute the first argument expression that is expected to return a string. If the argument is null, then get the string value from the current context node.
      Parameters:
      xctxt - Runtime XPath context.
      Returns:
      The string value of the first argument, or the string value of the current context node if the first argument is null.
      Throws:
      TransformerException - if an error occurs while executing the argument expression.
    • getArg0AsNumber

      protected double getArg0AsNumber(XPathContext xctxt) throws TransformerException
      Execute the first argument expression that is expected to return a number. If the argument is null, then get the number value from the current context node.
      Parameters:
      xctxt - Runtime XPath context.
      Returns:
      The number value of the first argument, or the number value of the current context node if the first argument is null.
      Throws:
      TransformerException - if an error occurs while executing the argument expression.
    • 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.