Class SimpleNodePushElaborator


  • public abstract class SimpleNodePushElaborator
    extends Elaborator
    Abstract elaborator for expressions that evaluate simple nodes (text nodes, comments, attributes, etc) in push mode. The concrete subclass must supply an elaborateForPush() method.
    • Constructor Detail

      • SimpleNodePushElaborator

        public SimpleNodePushElaborator()
    • Method Detail

      • eagerly

        public SequenceEvaluator eagerly()
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression eagerly
        Overrides:
        eagerly in class Elaborator
        Returns:
        an evaluator for the expression that returns a GroundedValue. The class SequenceEvaluator is declared to return a Sequence not a GroundedValue; we can't specialize it because it's a limitation of C# delegates, but the result can safely be cast to GroundedValue.
      • elaborateForPush

        public PushEvaluator elaborateForPush()
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression in push mode, by writing events to an Outputter
        Specified by:
        elaborateForPush in class Elaborator
        Returns:
        an evaluator for the expression in push mode
      • elaborateForItem

        public ItemEvaluator elaborateForItem()
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression in the form of a Item. This must only be called for expressions whose result has cardinality zero or one.
        Specified by:
        elaborateForItem in class Elaborator
        Returns:
        an evaluator for the expression that returns an Item, or null to represent an empty sequence.
      • elaborateForBoolean

        public BooleanEvaluator elaborateForBoolean()
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression in the form of a boolean, this being the effective boolean value of the expression.
        Specified by:
        elaborateForBoolean in class Elaborator
        Returns:
        an evaluator for the expression that returns a boolean.
      • elaborateForUnicodeString

        public UnicodeStringEvaluator elaborateForUnicodeString​(boolean zeroLengthWhenAbsent)
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression in the form of a unicode string, this being the result of applying fn:string() to the result of the expression.
        Specified by:
        elaborateForUnicodeString in class Elaborator
        Parameters:
        zeroLengthWhenAbsent - if true, then when the result of the expression is an empty sequence, the result of the StringEvaluator should be a zero-length string. If false, the return value should be null. For an expression or function that never returns an empty sequence (for example, a call on string() or normalize-space()), the argument has no effect.
        Returns:
        an evaluator for the expression that returns a string.