public class GroupVariableReference extends LocalVariableReference
binding, constantValue, staticType
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, EVENT_FEED_METHOD, INHERITED_CONTEXT, INSPECTION_CONTEXT, ITEM_FEED_METHOD, ITERATE_METHOD, locationId, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, NAVIGATION_CONTEXT, NODE_VALUE_CONTEXT, PROCESS_METHOD, PUSH_SELECTION, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, W3C_CONSUMING, W3C_FREE_RANGING, W3C_GROUP_CONSUMING, W3C_MOTIONLESS, WATCH_METHOD
Constructor and Description |
---|
GroupVariableReference() |
GroupVariableReference(Binding binding) |
Modifier and Type | Method and Description |
---|---|
int |
computeCardinality()
Get the static cardinality
|
int |
computeSpecialProperties()
Determine the special properties of this expression.
|
Expression |
copy()
Create a clone copy of this VariableReference
|
ForEachGroup |
getControllingExpression() |
int |
getStreamability(int syntacticContext,
boolean allowExtensions,
List<String> reasons)
Get the "sweep" of this expression as defined in the W3C streamability specifications.
|
GroupVariableReferenceAdjunct |
getStreamingAdjunct()
Get a class that supports streamed evaluation of this expression
|
Expression |
optimize(ExpressionVisitor visitor,
ExpressionVisitor.ContextItemType contextItemType)
Type-check the expression.
|
void |
setControllingExpression(ForEachGroup feg) |
Pattern |
toStreamingPattern(Configuration config,
List<String> reasonForFailure)
Convert this expression to a streaming pattern (a pattern used internally to match nodes during
push processing of an event stream)
|
evaluateVariable, getExpressionCompiler, getSlotNumber, setSlotNumber
addToPathMap, equals, evaluateItem, explain, fixup, getBinding, getDisplayName, getEQName, getImplementationMethod, getIntegerBounds, getIntrinsicDependencies, getItemType, hashCode, isFiltered, isFlattened, isInLoop, iterate, process, promote, refineVariableType, setFiltered, setFlattened, setStaticType, toString, typeCheck
adoptChildExpression, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getColumnNumber, getColumnNumber, getConstructType, getContainer, getDependencies, getEvaluationMethod, getExecutable, getExpressionName, getHostLanguage, getLineNumber, getLineNumber, getLocationId, getLocationProvider, getObjectName, getProperties, getProperty, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, getSystemId, hasVariableBinding, implementsStaticTypeCheck, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterateEvents, iterateSubExpressionInfo, iterateSubExpressions, markTailFunctionCalls, replaceSubExpression, resetLocalStaticProperties, setContainer, setEvaluationMethod, setLocationId, simplify, staticTypeCheck, suppressValidation, toPattern, typeError
public GroupVariableReference()
public GroupVariableReference(Binding binding)
public Expression optimize(ExpressionVisitor visitor, ExpressionVisitor.ContextItemType contextItemType) throws XPathException
VariableReference
optimize
in class VariableReference
visitor
- an expression visitorcontextItemType
- the static type of "." at the point where this expression is invoked.
The parameter is set to null if it is known statically that the context item will be undefined.
If the type of the context item is not known statically, the argument is set to
Type.ITEM_TYPE
XPathException
- if an error is discovered during this phase
(typically a type error)public Expression copy()
copy
in class LocalVariableReference
public void setControllingExpression(ForEachGroup feg)
public ForEachGroup getControllingExpression()
public int computeSpecialProperties()
computeSpecialProperties
in class VariableReference
StaticProperty.NON_CREATIVE
(unless the variable is assignable using saxon:assign)public int computeCardinality()
computeCardinality
in class VariableReference
StaticProperty.ALLOWS_ZERO_OR_ONE
,
StaticProperty.EXACTLY_ONE
, StaticProperty.ALLOWS_ONE_OR_MORE
,
StaticProperty.ALLOWS_ZERO_OR_MORE
public int getStreamability(int syntacticContext, boolean allowExtensions, List<String> reasons)
Expression
getStreamability
in class VariableReference
syntacticContext
- one of the values Expression.NAVIGATION_CONTEXT
,
Expression.NODE_VALUE_CONTEXT
, Expression.INHERITED_CONTEXT
, Expression.INSPECTION_CONTEXT
allowExtensions
- if false, the definition of "guaranteed streamability" in the
W3C specification is used. If true, Saxon extensions are permitted, which make somereasons
- the caller may supply a list, in which case the implementation may add to this
list a message explaining why the construct is not streamable, suitable for inclusion in an
error message.Expression.W3C_MOTIONLESS
, Expression.W3C_CONSUMING
,
Expression.W3C_GROUP_CONSUMING
, Expression.W3C_FREE_RANGING
public GroupVariableReferenceAdjunct getStreamingAdjunct()
getStreamingAdjunct
in class Expression
public Pattern toStreamingPattern(Configuration config, List<String> reasonForFailure)
toStreamingPattern
in class Expression
config
- the Saxon configurationreasonForFailure
- a list which will be populated with messages giving reasons why the
expression cannot be convertedCopyright (c) 2004-2013 Saxonica Limited. All rights reserved.