Package net.sf.saxon.expr.elab
Class PullElaborator
- java.lang.Object
-
- net.sf.saxon.expr.elab.Elaborator
-
- net.sf.saxon.expr.elab.PullElaborator
-
- Direct Known Subclasses:
AdjacentTextNodeMerger.AdjacentTextNodeMergerElaborator
,AnalyzeString.AnalyzeStringElaborator
,AtomicSequenceConverter.AtomicSequenceConverterElaborator
,Atomizer.AtomizerElaborator
,AxisExpression.AxisExpressionElaborator
,Block.BlockElaborator
,CardinalityChecker.CardinalityCheckerElaborator
,Choose.ChooseExprElaborator
,ConditionalSorter.ConditionalSorterElaborator
,DocumentSorter.DocumentSorterElaborator
,EmptyTextNodeRemover.EmptyTextNodeRemoverElaborator
,FilterExpression.FilterExprElaborator
,ForEach.ForEachElaborator
,ForExpression.ForExprElaborator
,FunctionCall.FunctionCallElaborator
,GlobalVariableReference.GlobalVariableReferenceElaborator
,HomogeneityChecker.HomogeneityCheckerElaborator
,ItemChecker.ItemCheckerElaborator
,JAXPVariableReference.CallableElaborator
,LetExpression.LetExprElaborator
,Literal.LiteralElaborator
,LocalVariableReference.LocalVariableReferenceElaborator
,LookupAllExpression.LookupAllElaborator
,LookupExpression.LookupElaborator
,MultithreadedForEach.MultithreadedForEachElaborator
,ObjectLookupExpression.ObjectLookupElaborator
,OuterForExpression.OuterForExprElaborator
,RangeExpression.RangeElaborator
,SimpleStepExpression.SimpleStepExprElaborator
,SlashExpression.SlashExprElaborator
,SortExpression.SortExprElaborator
,SuppliedParameterReference.SuppliedParameterReferenceElaborator
,SwitchExpression.SwitchExprElaborator
,TailExpression.TailExprElaborator
,UntypedSequenceConverter.UntypedSequenceConverterElaborator
,VennExpression.VennElaborator
public abstract class PullElaborator extends Elaborator
Abstract implementation ofElaborator
for expressions that primarily evaluate in pull mode, that is, by returning aSequenceIterator
over the result. The methodelaborateForPull()
must be implemented in subclasses; other evaluation methods such aselaborateForPush()
are by default implemented by callingelaborateForPull()
, though they may have optimized implementations in subclasses.
-
-
Constructor Summary
Constructors Constructor Description PullElaborator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description SequenceEvaluator
eagerly()
Get a function that evaluates the underlying expression eagerlyBooleanEvaluator
elaborateForBoolean()
Get a function that evaluates the underlying expression in the form of a boolean, this being the effective boolean value of the expression.ItemEvaluator
elaborateForItem()
Get a function that evaluates the underlying expression in the form of aItem
.abstract PullEvaluator
elaborateForPull()
Get a function that evaluates the underlying expression in the form of aSequenceIterator
PushEvaluator
elaborateForPush()
Get a function that evaluates the underlying expression in push mode, by writing events to anOutputter
UnicodeStringEvaluator
elaborateForUnicodeString(boolean zeroLengthWhenAbsent)
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.-
Methods inherited from class net.sf.saxon.expr.elab.Elaborator
elaborateForString, elaborateForUpdate, getConfiguration, getExpression, handleNullString, handleNullUnicodeString, handlePossiblyNullString, handlePossiblyNullUnicodeString, lazily, setExpression
-
-
-
-
Method Detail
-
elaborateForPull
public abstract PullEvaluator elaborateForPull()
Description copied from class:Elaborator
Get a function that evaluates the underlying expression in the form of aSequenceIterator
- Specified by:
elaborateForPull
in classElaborator
- Returns:
- an evaluator for the expression that returns a
SequenceIterator
-
eagerly
public SequenceEvaluator eagerly()
Description copied from class:Elaborator
Get a function that evaluates the underlying expression eagerly- Overrides:
eagerly
in classElaborator
- Returns:
- an evaluator for the expression that returns a
GroundedValue
. The classSequenceEvaluator
is declared to return aSequence
not aGroundedValue
; we can't specialize it because it's a limitation of C# delegates, but the result can safely be cast toGroundedValue
.
-
elaborateForPush
public PushEvaluator elaborateForPush()
Description copied from class:Elaborator
Get a function that evaluates the underlying expression in push mode, by writing events to anOutputter
- Specified by:
elaborateForPush
in classElaborator
- 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 aItem
. This must only be called for expressions whose result has cardinality zero or one.- Specified by:
elaborateForItem
in classElaborator
- 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 classElaborator
- 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 classElaborator
- 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.
-
-