Package net.sf.saxon.expr.instruct
Class Choose.ChooseExprElaborator
- java.lang.Object
-
- net.sf.saxon.expr.elab.Elaborator
-
- net.sf.saxon.expr.elab.PullElaborator
-
- net.sf.saxon.expr.instruct.Choose.ChooseExprElaborator
-
- Enclosing class:
- Choose
public static class Choose.ChooseExprElaborator extends PullElaborator
Elaborator for a "Choose" expression (which may be xsl:if, xsl:choose, or an XPath conditional expression).Provides "push" and "pull" implementations, as well as a singleton implementation.
-
-
Constructor Summary
Constructors Constructor Description ChooseExprElaborator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SequenceEvaluator
eagerly()
Get a function that evaluates the underlying expression eagerlyItemEvaluator
elaborateForItem()
Get a function that evaluates the underlying expression in the form of aItem
.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
UpdateEvaluator
elaborateForUpdate()
BooleanEvaluator[]
getConditionEvaluators()
BooleanEvaluator[]
makeConditionEvaluators(Choose expr)
-
Methods inherited from class net.sf.saxon.expr.elab.PullElaborator
elaborateForBoolean, elaborateForUnicodeString
-
Methods inherited from class net.sf.saxon.expr.elab.Elaborator
elaborateForString, getConfiguration, getExpression, handleNullString, handleNullUnicodeString, handlePossiblyNullString, handlePossiblyNullUnicodeString, lazily, setExpression
-
-
-
-
Method Detail
-
getConditionEvaluators
public BooleanEvaluator[] getConditionEvaluators()
-
makeConditionEvaluators
public BooleanEvaluator[] makeConditionEvaluators(Choose expr)
-
eagerly
public SequenceEvaluator eagerly()
Description copied from class:Elaborator
Get a function that evaluates the underlying expression eagerly- Overrides:
eagerly
in classPullElaborator
- 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
.
-
elaborateForPull
public PullEvaluator elaborateForPull()
Description copied from class:Elaborator
Get a function that evaluates the underlying expression in the form of aSequenceIterator
- Specified by:
elaborateForPull
in classPullElaborator
- Returns:
- an evaluator for the expression that returns a
SequenceIterator
-
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.- Overrides:
elaborateForItem
in classPullElaborator
- Returns:
- an evaluator for the expression that returns an
Item
, or null to represent an empty 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 anOutputter
- Overrides:
elaborateForPush
in classPullElaborator
- Returns:
- an evaluator for the expression in push mode
-
elaborateForUpdate
public UpdateEvaluator elaborateForUpdate()
- Overrides:
elaborateForUpdate
in classElaborator
-
-