Class LazyExpression

  • All Implemented Interfaces:
    java.io.Serializable, javax.xml.transform.SourceLocator, Container, Expression, InstructionInfoProvider

    public class LazyExpression
    extends UnaryExpression
    A LazyExpression is an expression that forces lazy evaluation: it must not be evaluated eagerly, because a failure must not be reported unless the value is actually referenced. This is used for an expression that has been moved out of a loop. If the loop iterates zero times, the expression will not be evaluated, and in particular, it will not cause a dynamic error.
    See Also:
    Serialized Form
    • Method Detail

      • evaluateItem

        public Item evaluateItem​(XPathContext context)
                          throws XPathException
        Evaluate an expression as a single item. This always returns either a single Item or null (denoting the empty sequence). No conversion is done. This method should not be used unless the static type of the expression is a subtype of "item" or "item?": that is, it should not be called if the expression may return a sequence. There is no guarantee that this condition will be detected.
        Specified by:
        evaluateItem in interface Expression
        Overrides:
        evaluateItem in class ComputedExpression
        Parameters:
        context - 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 SequenceIterator iterate​(XPathContext context)
                                 throws XPathException
        Return an Iterator to iterate over the values of a sequence. The value of every expression can be regarded as a sequence, so this method is supported for all expressions. This default implementation handles iteration for expressions that return singleton values: for non-singleton expressions, the subclass must provide its own implementation.
        Specified by:
        iterate in interface Expression
        Overrides:
        iterate in class ComputedExpression
        Parameters:
        context - supplies the context for evaluation
        Returns:
        a SequenceIterator that can be used to iterate over the result of the expression
        Throws:
        XPathException - if any dynamic error occurs evaluating the expression
      • displayOperator

        protected java.lang.String displayOperator​(Configuration config)
        Description copied from class: UnaryExpression
        Give a string representation of the operator for use in diagnostics
        Specified by:
        displayOperator in class UnaryExpression
        Returns:
        the operator, as a string