Class CompileTimeFunction

All Implemented Interfaces:
Serializable, SourceLocator, LocationProvider, SaxonLocator, EvaluableItem, SequenceIterable, InstructionInfo, Locator
Direct Known Subclasses:
Data, DefaultCollation, StaticBaseURI, Unordered

public abstract class CompileTimeFunction extends SystemFunction
Abtract class representing a function call that is always rewritten at compile-time: it can never be executed
See Also:
  • Constructor Details

    • CompileTimeFunction

      public CompileTimeFunction()
  • Method Details

    • preEvaluate

      public Expression preEvaluate(ExpressionVisitor visitor) throws XPathException
      preEvaluate: this method suppresses compile-time evaluation by doing nothing. (this is because the default implementation of preEvaluate() calls evaluate() which is not available for these functions)
      Overrides:
      preEvaluate in class FunctionCall
      Parameters:
      visitor - an expression visitor
      Returns:
      the result of the early evaluation, or the original expression, or potentially a simplified expression
      Throws:
      XPathException
    • evaluateItem

      public final Item evaluateItem(XPathContext c) throws XPathException
      Evaluate as a single item
      Specified by:
      evaluateItem in interface EvaluableItem
      Overrides:
      evaluateItem in class Expression
      Parameters:
      c - The context in which the expression is to be evaluated
      Returns:
      the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
      Throws:
      XPathException - if any dynamic error occurs evaluating the expression
    • iterate

      public final SequenceIterator iterate(XPathContext c)
      Iterate over the results of the function
      Specified by:
      iterate in interface SequenceIterable
      Overrides:
      iterate in class Expression
      Parameters:
      c - supplies the context for evaluation
      Returns:
      a SequenceIterator that can be used to iterate over the result of the expression