Package net.sf.saxon.expr.elab
Class PushElaborator
- java.lang.Object
-
- net.sf.saxon.expr.elab.Elaborator
-
- net.sf.saxon.expr.elab.PushElaborator
-
- Direct Known Subclasses:
ApplyTemplates.ApplyTemplatesElaborator,BreakInstr.BreakElaborator,CallTemplate.CallTemplateElaborator,Copy.CopyElaborator,DocumentInstr.DocumentInstrElaborator,ForEachGroup.ForEachGroupElaborator,IterateInstr.IterateElaborator,LocalParam.LocalParamElaborator,LocalParamBlock.LocalParamBlockElaborator,NextIteration.NextIterationElaborator,SequenceInstr.SequenceInstrElaborator,SimpleExpression.SimpleExpressionElaborator,UseAttributeSet.UseAttributeSetElaborator
public abstract class PushElaborator extends Elaborator
Abstract superclass for elaborators whose primary evaluation method is in push mode. This class provides olternative modes of evaluation (such as pull and item evaluation), all implemented in terms of the push evaluator which must be supplied in a subclass.
-
-
Constructor Summary
Constructors Constructor Description PushElaborator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SequenceEvaluatoreagerly()Get a function that evaluates the underlying expression eagerlyBooleanEvaluatorelaborateForBoolean()Get a function that evaluates the underlying expression in the form of a boolean, this being the effective boolean value of the expression.ItemEvaluatorelaborateForItem()Get a function that evaluates the underlying expression in the form of aItem.PullEvaluatorelaborateForPull()Get a function that evaluates the underlying expression in the form of aSequenceIteratorPushEvaluatorelaborateForPush()Get a function that evaluates the underlying expression in push mode, by writing events to anOutputterUnicodeStringEvaluatorelaborateForUnicodeString(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 PullEvaluator elaborateForPull()
Description copied from class:ElaboratorGet a function that evaluates the underlying expression in the form of aSequenceIterator- Specified by:
elaborateForPullin classElaborator- Returns:
- an evaluator for the expression that returns a
SequenceIterator
-
eagerly
public SequenceEvaluator eagerly()
Description copied from class:ElaboratorGet a function that evaluates the underlying expression eagerly- Overrides:
eagerlyin classElaborator- Returns:
- an evaluator for the expression that returns a
GroundedValue. The classSequenceEvaluatoris declared to return aSequencenot 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:ElaboratorGet a function that evaluates the underlying expression in push mode, by writing events to anOutputter- Specified by:
elaborateForPushin classElaborator- Returns:
- an evaluator for the expression in push mode
-
elaborateForItem
public ItemEvaluator elaborateForItem()
Description copied from class:ElaboratorGet 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:
elaborateForItemin 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:ElaboratorGet a function that evaluates the underlying expression in the form of a boolean, this being the effective boolean value of the expression.- Specified by:
elaborateForBooleanin classElaborator- Returns:
- an evaluator for the expression that returns a boolean.
-
elaborateForUnicodeString
public UnicodeStringEvaluator elaborateForUnicodeString(boolean zeroLengthWhenAbsent)
Description copied from class:ElaboratorGet 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:
elaborateForUnicodeStringin 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.
-
-