Package net.sf.saxon.expr.instruct
Class WherePopulated
- java.lang.Object
-
- net.sf.saxon.expr.Expression
-
- net.sf.saxon.expr.UnaryExpression
-
- net.sf.saxon.expr.instruct.WherePopulated
-
- All Implemented Interfaces:
ExportAgent,ItemMappingFunction,Locatable,IdentityComparable,Traceable
public class WherePopulated extends UnaryExpression implements ItemMappingFunction
A compiled xsl:where-populated instruction (formerly xsl:conditional-content).
-
-
Field Summary
-
Fields inherited from class net.sf.saxon.expr.Expression
EFFECTIVE_BOOLEAN_VALUE, EVALUATE_METHOD, ITEM_FEED_METHOD, ITERATE_METHOD, MAX_COST, MAX_SEQUENCE_LENGTH, MAX_STRING_LENGTH, PROCESS_METHOD, staticProperties, UNBOUNDED_LOWER, UNBOUNDED_UPPER, UPDATE_METHOD, WATCH_METHOD
-
-
Constructor Summary
Constructors Constructor Description WherePopulated(Expression base)Create the instruction
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description intcomputeCardinality()Determine the static cardinality.Expressioncopy(RebindingMap rebindings)Copy an expression.voidexport(ExpressionPresenter out)Diagnostic print of expression structure.java.lang.StringgetExpressionName()Get a name identifying the kind of expression, in terms meaningful to a user.intgetImplementationMethod()An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process().protected OperandRolegetOperandRole()Get the usage (in terms of streamability analysis) of the single operandjava.lang.StringgetStreamerName()Get the (partial) name of a class that supports streaming of this kind of expressionstatic booleanisDeemedEmpty(Item item)Test whether an item is empty according to the definition in the spec for xsl:conditional-contentbooleanisInstruction()Ask whether this expression is an instruction.SequenceIteratoriterate(XPathContext context)Return an Iterator to iterate over the values of a sequence.ItemmapItem(Item item)Map one item to another item.voidprocess(Outputter output, XPathContext context)Process the instruction, without returning any tail calls-
Methods inherited from class net.sf.saxon.expr.UnaryExpression
computeHashCode, computeSpecialProperties, displayOperator, emitExtraAttributes, equals, getBaseExpression, getItemType, getOperand, operands, optimize, setBaseExpression, toShortString, toString, typeCheck
-
Methods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, evaluatePendingUpdates, explain, getCardinality, getConfiguration, getCost, getDependencies, getEvaluationMethod, getExtraProperty, getIntegerBounds, getInterpretedExpression, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getNetCost, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStaticUType, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, markTailFunctionCalls, operandList, operandSparseList, optimizeChildren, prepareForStreaming, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, suppressValidation, toPattern, typeCheckChildren, typeError, unordered, verifyParentPointers
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
-
-
-
Constructor Detail
-
WherePopulated
public WherePopulated(Expression base)
Create the instruction
-
-
Method Detail
-
isInstruction
public boolean isInstruction()
Ask whether this expression is an instruction. In XSLT streamability analysis this is used to distinguish constructs corresponding to XSLT instructions from other constructs.- Overrides:
isInstructionin classExpression- Returns:
- true if this construct originates as an XSLT instruction
-
getOperandRole
protected OperandRole getOperandRole()
Get the usage (in terms of streamability analysis) of the single operand- Specified by:
getOperandRolein classUnaryExpression- Returns:
- the operand usage
-
copy
public Expression copy(RebindingMap rebindings)
Description copied from class:ExpressionCopy an expression. This makes a deep copy.- Specified by:
copyin classExpression- Parameters:
rebindings- a mutable list of (old binding, new binding) pairs that is used to update the bindings held in any local variable references that are copied.- Returns:
- the copy of the original expression
-
getImplementationMethod
public int getImplementationMethod()
An implementation of Expression must provide at least one of the methods evaluateItem(), iterate(), or process(). This method indicates which of these methods is provided directly. The other methods will always be available indirectly, using an implementation that relies on one of the other methods.- Specified by:
getImplementationMethodin classExpression- Returns:
- the implementation method, for example
Expression.ITERATE_METHODorExpression.EVALUATE_METHODorExpression.PROCESS_METHOD
-
computeCardinality
public int computeCardinality()
Description copied from class:UnaryExpressionDetermine the static cardinality. Default implementation returns the cardinality of the operand- Overrides:
computeCardinalityin classUnaryExpression- Returns:
- the computed cardinality, as one of the values
StaticProperty.ALLOWS_ZERO_OR_ONE,StaticProperty.EXACTLY_ONE,StaticProperty.ALLOWS_ONE_OR_MORE,StaticProperty.ALLOWS_ZERO_OR_MORE. May also returnStaticProperty.ALLOWS_ZEROif the result is known to be an empty sequence, orStaticProperty.ALLOWS_MANYif if is known to return a sequence of length two or more.
-
iterate
public SequenceIterator iterate(XPathContext context) throws XPathException
Return an Iterator to iterate over the values of a sequence. The value of every expression can be regarded as a sequence, so this method is supported for all expressions.- Overrides:
iteratein classExpression- Parameters:
context- supplies the context for evaluation- Returns:
- a SequenceIterator that can be used to iterate over the result of the expression
- Throws:
XPathException- if any dynamic error occurs evaluating the expression
-
process
public void process(Outputter output, XPathContext context) throws XPathException
Process the instruction, without returning any tail calls- Overrides:
processin classExpression- Parameters:
output- the destination for the resultcontext- The dynamic context, giving access to the current node, the current variables, etc.- Throws:
XPathException- if a dynamic error occurs
-
mapItem
public Item mapItem(Item item) throws XPathException
Map one item to another item.- Specified by:
mapItemin interfaceItemMappingFunction- Parameters:
item- The input item to be mapped.- Returns:
- either the output item, or null.
- Throws:
XPathException- if a dynamic error occurs
-
isDeemedEmpty
public static boolean isDeemedEmpty(Item item)
Test whether an item is empty according to the definition in the spec for xsl:conditional-content- Parameters:
item- the item to be tested- Returns:
- true if it is "empty", for example, an element without children
-
getExpressionName
public java.lang.String getExpressionName()
Get a name identifying the kind of expression, in terms meaningful to a user.- Overrides:
getExpressionNamein classExpression- Returns:
- a name identifying the kind of expression, in terms meaningful to a user. The name will always be in the form of a lexical XML QName, and should usually match the name used in export() output displaying the expression, unless compatibility constraints intervene.
-
export
public void export(ExpressionPresenter out) throws XPathException
Description copied from class:UnaryExpressionDiagnostic print of expression structure. The abstract expression tree is written to the supplied output destination.- Specified by:
exportin interfaceExportAgent- Overrides:
exportin classUnaryExpression- Parameters:
out- the expression presenter used to display the structure- Throws:
XPathException- if the export fails, for example if an expression is found that won't work in the target environment.
-
getStreamerName
public java.lang.String getStreamerName()
Get the (partial) name of a class that supports streaming of this kind of expression- Overrides:
getStreamerNamein classExpression- Returns:
- the partial name of a class that can be instantiated to provide streaming support in Saxon-EE, or null if there is no such class
-
-