public abstract class SimpleExpression extends Expression implements Callable
An implementation of this class must supply the Callable.call(XPathContext, net.sf.saxon.om.Sequence[])
method to evaluate the expression and return its result.
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 and Description |
---|
SimpleExpression()
Constructor
|
Modifier and Type | Method and Description |
---|---|
protected int |
computeCardinality()
Determine the static cardinality of the expression.
|
Expression |
copy(RebindingMap rebindings)
Copy an expression.
|
protected SimpleExpression |
copyOperandsFrom(SimpleExpression se1)
Helper method for subclasses to implement the copy() operation: this method can be applied
to the new expression to copy operands from the old expressions
|
Item |
evaluateItem(XPathContext context)
Evaluate an expression as a single item.
|
void |
export(ExpressionPresenter destination)
Diagnostic print of expression structure.
|
java.lang.String |
getExpressionType()
Return a distinguishing name for the expression, for use in diagnostics.
|
ItemType |
getItemType()
Determine the data type of the items returned by this expression.
|
protected OperandArray |
getOperanda()
Get the data structure holding the operands of this expression.
|
SequenceIterator |
iterate(XPathContext context)
Return an Iterator to iterate over the values of a sequence.
|
java.lang.Iterable<Operand> |
operands()
Get the immediate sub-expressions of this expression, with information about the relationship
of each expression to its parent expression.
|
void |
process(Outputter output,
XPathContext context)
Process the instruction, without returning any tail calls
|
void |
setArguments(Expression[] sub)
Set the immediate sub-expressions of this expression.
|
protected void |
setOperanda(OperandArray operanda)
Set the data structure for the operands of this expression.
|
SimpleExpression |
simpleCopy() |
addToPathMap, adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeHashCode, computeSpecialProperties, computeStaticProperties, dynamicError, effectiveBooleanValue, equals, evaluateAsString, evaluatePendingUpdates, explain, getCardinality, getConfiguration, getCost, getDependencies, getEvaluationMethod, getExpressionName, getExtraProperty, getImplementationMethod, getIntegerBounds, getInterpretedExpression, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getNetCost, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStaticUType, getStreamerName, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isInstruction, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, markTailFunctionCalls, operandList, operandSparseList, optimize, optimizeChildren, prepareForStreaming, resetLocalStaticProperties, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setFlattened, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, suppressValidation, toPattern, toShortString, toString, typeCheck, typeCheckChildren, typeError, unordered, verifyParentPointers
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
gatherProperties
protected void setOperanda(OperandArray operanda)
operanda
- the data structure for expression operandsprotected OperandArray getOperanda()
public java.lang.Iterable<Operand> operands()
Expression
If the expression is a Callable, then it is required that the order of the operands returned by this function is the same as the order of arguments supplied to the corresponding call() method.
operands
in class Expression
public void setArguments(Expression[] sub)
sub
- an array containing the sub-expressions of this expressionpublic Expression copy(RebindingMap rebindings)
copy
in class Expression
rebindings
- variables that need to be re-boundpublic SimpleExpression simpleCopy()
protected SimpleExpression copyOperandsFrom(SimpleExpression se1)
se1
- the expression being copiedpublic ItemType getItemType()
getItemType
in class Expression
protected int computeCardinality()
computeCardinality
in class Expression
StaticProperty.ALLOWS_ZERO_OR_ONE
,
StaticProperty.EXACTLY_ONE
, StaticProperty.ALLOWS_ONE_OR_MORE
,
StaticProperty.ALLOWS_ZERO_OR_MORE
. May also return StaticProperty.ALLOWS_ZERO
if
the result is known to be an empty sequence, or StaticProperty.ALLOWS_MANY
if
if is known to return a sequence of length two or more.public final Item evaluateItem(XPathContext context) throws XPathException
evaluateItem
in class Expression
context
- The context in which the expression is to be evaluatedXPathException
- if any dynamic error occurs evaluating the
expressionpublic final SequenceIterator iterate(XPathContext context) throws XPathException
iterate
in class Expression
context
- supplies the context for evaluationXPathException
- if any dynamic error occurs evaluating the
expressionpublic final void process(Outputter output, XPathContext context) throws XPathException
process
in class Expression
output
- the destination for the resultcontext
- The dynamic context, giving access to the current node,XPathException
- if a dynamic error occurspublic void export(ExpressionPresenter destination) throws XPathException
export
in interface ExportAgent
export
in class Expression
destination
- the expression presenter used to display the structureXPathException
- if the export fails, for example if an expression is found that won't work
in the target environment.public java.lang.String getExpressionType()
Copyright (c) 2004-2022 Saxonica Limited. All rights reserved.