Class LocalVariableReference.LocalVariableReferenceElaborator

  • Enclosing class:
    LocalVariableReference

    public static class LocalVariableReference.LocalVariableReferenceElaborator
    extends PullElaborator
    Elaborator for a local variable reference, for example $var.
    • Constructor Detail

      • LocalVariableReferenceElaborator

        public LocalVariableReferenceElaborator()
    • Method Detail

      • setExpression

        public void setExpression​(Expression expr)
        Description copied from class: Elaborator
        Set the expression being elaborated
        Overrides:
        setExpression in class Elaborator
        Parameters:
        expr - the expression
      • eagerly

        public SequenceEvaluator eagerly()
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression eagerly
        Overrides:
        eagerly in class PullElaborator
        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.
      • lazily

        public SequenceEvaluator lazily​(boolean repeatable,
                                        boolean lazyEvaluationRequired)
        Description copied from class: Elaborator
        Get a function that evaluates the underlying expression lazily
        Overrides:
        lazily in class Elaborator
        Parameters:
        repeatable - true if the resulting Sequence must be usable repeatedly; false if it only needs to be used once
        lazyEvaluationRequired - true if the expression MUST be evaluated lazily, for example to prevent spurious errors or side-effects if it has been lifted out of a loop
        Returns:
        an evaluator for the expression that returns a Sequence (which may be a lazy sequence)
      • 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
        Overrides:
        elaborateForPush in class PullElaborator
        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.
        Overrides:
        elaborateForItem in class PullElaborator
        Returns:
        an evaluator for the expression that returns an Item, or null to represent an empty sequence.