Package net.sf.saxon.expr.elab
Class StringElaborator
- java.lang.Object
-
- net.sf.saxon.expr.elab.Elaborator
-
- net.sf.saxon.expr.elab.StringElaborator
-
- Direct Known Subclasses:
GenerateId_1.GenerateIdElaborator
,LocalName_1.LocalNameElaborator
,LowerCase.LowerCaseFnElaborator
,Name_1.NameElaborator
,NormalizeSpace_1.NormalizeSpaceFnElaborator
,String_1.StringFnElaborator
,SubstringAfter.SubstringAfterFnElaborator
,SubstringBefore.SubstringBeforeFnElaborator
,UpperCase.UpperCaseFnElaborator
public abstract class StringElaborator extends Elaborator
An abstract Elaborator for expressions that evaluate their result as a single string (that is, as an instance ofUnicodeString
); they may also return null to indicate that the result is an empty sequence. The methodelaborateForUnicodeString(boolean)
must be implemented in a concrete subclass; other evaluation methods are implemented (by default) by callingelaborateForUnicodeString(boolean)
.
-
-
Constructor Summary
Constructors Constructor Description StringElaborator()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description BooleanEvaluator
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
.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
abstract 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.boolean
returnZeroLengthWhenAbsent()
-
Methods inherited from class net.sf.saxon.expr.elab.Elaborator
eagerly, elaborateForString, elaborateForUpdate, getConfiguration, getExpression, handleNullString, handleNullUnicodeString, handlePossiblyNullString, handlePossiblyNullUnicodeString, lazily, setExpression
-
-
-
-
Method Detail
-
returnZeroLengthWhenAbsent
public boolean returnZeroLengthWhenAbsent()
-
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 classElaborator
- Returns:
- an evaluator for the expression that returns a
SequenceIterator
-
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 abstract 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.
-
-