Package net.sf.saxon.expr.compat
Class ArithmeticExpression10
java.lang.Object
net.sf.saxon.expr.Expression
net.sf.saxon.expr.BinaryExpression
net.sf.saxon.expr.ArithmeticExpression
net.sf.saxon.expr.compat.ArithmeticExpression10
- All Implemented Interfaces:
Callable,ExportAgent,Locatable,IdentityComparable,Traceable
Arithmetic Expression: an expression using one of the operators
plus, minus, multiply, div, idiv, mod, in backwards
compatibility mode: see
ArithmeticExpression for the non-backwards
compatible case.-
Nested Class Summary
Nested classes/interfaces inherited from class net.sf.saxon.expr.ArithmeticExpression
ArithmeticExpression.ArithmeticElaborator -
Field Summary
Fields inherited from class net.sf.saxon.expr.ArithmeticExpression
calculatorFields inherited from class net.sf.saxon.expr.BinaryExpression
operatorFields 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
ConstructorsConstructorDescriptionArithmeticExpression10(Expression p0, int operator, Expression p1) Create an arithmetic expression to be evaluated in XPath 1.0 mode -
Method Summary
Modifier and TypeMethodDescriptioncall(XPathContext context, Sequence[] arguments) Evaluate the expressioncopy(RebindingMap rebindings) Copy an expression.evaluateItem(XPathContext context) Evaluate the expression.protected voidAdd subclass-specific attributes to the expression tree explanation.Determine the data type of the expression, if this is known staticallyvoidsetCalculator(Calculator calc) Set the calculator externally (used when reconstructing the expression tree)protected Stringtag()Get the element name used to identify this expression in exported expression formattypeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) Type-check the expression statically.Methods inherited from class net.sf.saxon.expr.ArithmeticExpression
compute, computeSpecialProperties, getCalculator, getElaborator, getExpressionName, getIntegerBounds, getStaticUType, mapOpCode, resetLocalStaticPropertiesMethods inherited from class net.sf.saxon.expr.BinaryExpression
computeCardinality, computeHashCode, displayOperator, equals, export, getImplementationMethod, getLhs, getLhsExpression, getOperandRole, getOperator, getRhs, getRhsExpression, isAssociative, isCommutative, isInverse, operands, optimize, setFlattened, setLhsExpression, setRhsExpression, toShortString, toStringMethods inherited from class net.sf.saxon.expr.Expression
addToPathMap, adoptChildExpression, allowExtractingCommonSubexpressions, checkedOperands, checkForUpdatingSubexpressions, checkPermittedContents, computeDependencies, computeStaticProperties, dispatchTailCall, dynamicError, effectiveBooleanValue, evaluateAsString, explain, getCardinality, getConfiguration, getCost, getDependencies, getEvaluationMethod, getExtraProperty, getIntrinsicDependencies, getLocalRetainedStaticContext, getLocation, getNetCost, getObjectName, getPackageData, getParentExpression, getProperties, getProperty, getRetainedStaticContext, getScopingExpression, getSlotsUsed, getSpecialProperties, getStaticBaseURI, getStaticBaseURIString, getStaticType, getStreamerName, getTracingTag, hasCompatibleStaticContext, hashCode, hasSpecialProperty, hasVariableBinding, identityHashCode, implementsStaticTypeCheck, isCallOn, isEqual, isIdentical, isInstruction, isLiftable, isMultiThreaded, isStaticPropertiesKnown, isSubtreeExpression, isUpdatingExpression, isVacuousExpression, iterate, makeElaborator, markTailFunctionCalls, operandList, operandSparseList, optimizeChildren, prepareForStreaming, process, restoreParentPointers, setEvaluationMethod, setExtraProperty, setFiltered, setLocation, setParentExpression, setRetainedStaticContext, setRetainedStaticContextLocally, setRetainedStaticContextThoroughly, setStaticProperty, simplify, simplifyChildren, staticTypeCheck, supportsLazyEvaluation, suppressValidation, toPattern, typeCheckChildren, typeError, unordered, verifyParentPointers, withLocationMethods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, waitMethods inherited from interface net.sf.saxon.trace.Traceable
gatherProperties
-
Constructor Details
-
ArithmeticExpression10
Create an arithmetic expression to be evaluated in XPath 1.0 mode- Parameters:
p0- the first operandoperator- the operator, for exampleToken.PLUSp1- the second operand
-
-
Method Details
-
typeCheck
public Expression typeCheck(ExpressionVisitor visitor, ContextItemStaticInfo contextInfo) throws XPathException Type-check the expression statically. We try to work out which particular arithmetic function to use if the types of operands are known an compile time.- Overrides:
typeCheckin classArithmeticExpression- Parameters:
visitor- an expression visitorcontextInfo- Information available statically about the context item: whether it is (possibly) absent; its static type; its streaming posture.- Returns:
- the original expression, rewritten to perform necessary run-time type checks, and to perform other type-related optimizations
- Throws:
XPathException- if an error is discovered during this phase (typically a type error)
-
setCalculator
Set the calculator externally (used when reconstructing the expression tree)- Overrides:
setCalculatorin classArithmeticExpression- Parameters:
calc- the calculator to be used
-
getItemType
Determine the data type of the expression, if this is known statically- Overrides:
getItemTypein classArithmeticExpression- Returns:
- the atomic type of the result of this arithmetic expression
-
copy
Copy an expression. This makes a deep copy.- Overrides:
copyin classArithmeticExpression- Parameters:
rebindings- variables that must be re-bound- Returns:
- the copy of the original expression
-
tag
Description copied from class:BinaryExpressionGet the element name used to identify this expression in exported expression format- Overrides:
tagin classArithmeticExpression- Returns:
- the element name used to identify this expression
-
explainExtraAttributes
Description copied from class:BinaryExpressionAdd subclass-specific attributes to the expression tree explanation. Default implementation does nothing; this is provided for subclasses to override.- Overrides:
explainExtraAttributesin classArithmeticExpression- Parameters:
out- the output destination for the displayed expression tree
-
evaluateItem
Evaluate the expression.- Overrides:
evaluateItemin classArithmeticExpression- Parameters:
context- The context in which the expression is to be evaluated- Returns:
- the node or atomic value that results from evaluating the expression; or null to indicate that the result is an empty sequence
- Throws:
XPathException- if any dynamic error occurs evaluating the expression
-
call
Evaluate the expression- Specified by:
callin interfaceCallable- Parameters:
context- the dynamic evaluation contextarguments- the values of the arguments, supplied as SequenceIterators- Returns:
- the result of the evaluation, in the form of a SequenceIterator
- Throws:
XPathException- if a dynamic error occurs during the evaluation of the expression
-