Package net.sf.saxon.expr.elab
Class ItemElaborator
java.lang.Object
net.sf.saxon.expr.elab.Elaborator
net.sf.saxon.expr.elab.ItemElaborator
- Direct Known Subclasses:
Abs.AbsElaborator,AccessorFn.AccessorFnElaborator,ArithmeticExpression.ArithmeticElaborator,AttributeGetter.AttributeGetterElaborator,BaseUri_1.BaseUriFnElaborator,CastExpression.CastExprElaborator,Ceiling.CeilingElaborator,ContextItemExpression.ContextItemElaborator,Count.CountFnElaborator,DateTimeConstructor.DateTimeFnElaborator,FirstItemExpression.FirstItemExprElaborator,Floor.FloorElaborator,IdentityComparison.IdentityComparisonElaborator,LastItemExpression.LastItemExprElaborator,NamespaceUriFn_1.NamespaceUriFnElaborator,NegateExpression.NegateElaborator,NodeName_1.NodeNameFnElaborator,Number_1.NumberFnElaborator,ParseQNameFn.QNameFnElaborator,PositionAndLast.Last.LastFnElaborator,PositionAndLast.Position.PositionFnElaborator,QNameFn.QNameFnElaborator,Root_1.RootFnElaborator,RootExpression.RootExprElaborator,Round.RoundElaborator,RoundHalfToEven.RoundHalfToEvenElaborator,SingletonIntersectExpression.SingletonIntersectElaborator,StringLength_1.StringLengthFnElaborator,SubscriptExpression.SubscriptExprElaborator,Substring.SubstringFnElaborator,Sum.SumFnElaborator,Translate.TranslateFnElaborator,ValueComparison.ValueComparisonElaborator
An
ItemElaborator is an abstract superclass for use by expressions that deliver zero or one items
as their result. A concrete subclass must implement the elaborateForItem() method; other evaluation
methods are implemented (by default) by calling elaborateForItem().-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptioneagerly()Get a function that evaluates the underlying expression eagerlyGet a function that evaluates the underlying expression in the form of a boolean, this being the effective boolean value of the expression.abstract ItemEvaluatorGet a function that evaluates the underlying expression in the form of aItem.Get a function that evaluates the underlying expression in the form of aSequenceIteratorGet a function that evaluates the underlying expression in push mode, by writing events to anOutputterelaborateForUnicodeString(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
-
Constructor Details
-
ItemElaborator
public ItemElaborator()
-
-
Method Details
-
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.
-
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
-
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
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
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
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.
-