net.sf.saxon.expr

Class ArithmeticExpression10

Implemented Interfaces:
EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator

public class ArithmeticExpression10
extends BinaryExpression

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.

Field Summary

Fields inherited from class net.sf.saxon.expr.BinaryExpression

operand0, operand1, operator

Fields inherited from class net.sf.saxon.expr.Expression

EVALUATE_METHOD, ITERATE_METHOD, PROCESS_METHOD, locationId, staticProperties

Constructor Summary

ArithmeticExpression10(Expression p0, int operator, Expression p1)
Create an arithmetic expression to be evaluated in XPath 1.0 mode

Method Summary

Expression
copy()
Copy an expression.
Item
evaluateItem(XPathContext context)
Evaluate the expression.
ItemType
getItemType(TypeHierarchy th)
Determine the data type of the expression, if this is known statically
boolean
isBackwardsCompatible()
Determine whether the expression is to be evaluated in backwards-compatible mode
Expression
typeCheck(ExpressionVisitor visitor, ItemType contextItemType)
Type-check the expression statically.

Methods inherited from class net.sf.saxon.expr.BinaryExpression

computeCardinality, computeSpecialProperties, displayOperator, equals, explain, getOperands, getOperator, hashCode, isAssociative, isCommutative, isInverse, iterateSubExpressions, optimize, promote, replaceSubExpression, setFlattened, simplify, toString, typeCheck

Methods inherited from class net.sf.saxon.expr.Expression

addToPathMap, adoptChildExpression, checkPermittedContents, computeCardinality, computeDependencies, computeSpecialProperties, computeStaticProperties, copy, display, doPromotion, dynamicError, effectiveBooleanValue, evaluateAsString, evaluateItem, explain, explain, findParentOf, getCardinality, getColumnNumber, getConstructType, getContainer, getDependencies, getExecutable, getHostLanguage, getImplementationMethod, getInstructionInfo, getIntrinsicDependencies, getItemType, getLineNumber, getLocationId, getLocationProvider, getPublicId, getSlotsUsed, getSpecialProperties, getSystemId, hasLoopingSubexpression, implementsStaticTypeCheck, iterate, iterateEvents, iterateSubExpressions, markTailFunctionCalls, optimize, process, promote, replaceSubExpression, resetLocalStaticProperties, setContainer, setFiltered, setFlattened, setLocationId, simplify, staticTypeCheck, suppressValidation, toString, typeCheck, typeError

Constructor Details

ArithmeticExpression10

public ArithmeticExpression10(Expression p0,
                              int operator,
                              Expression p1)
Create an arithmetic expression to be evaluated in XPath 1.0 mode
Parameters:
p0 - the first operand
operator - the operator, for example Token.PLUS
p1 - the second operand

Method Details

copy

public Expression copy()
Copy an expression. This makes a deep copy.
Overrides:
copy in interface Expression
Returns:
the copy of the original expression

evaluateItem

public Item evaluateItem(XPathContext context)
            throws XPathException
Evaluate the expression.
Specified by:
evaluateItem in interface EvaluableItem
Overrides:
evaluateItem in interface Expression

getItemType

public ItemType getItemType(TypeHierarchy th)
Determine the data type of the expression, if this is known statically
Overrides:
getItemType in interface Expression

isBackwardsCompatible

public boolean isBackwardsCompatible()
Determine whether the expression is to be evaluated in backwards-compatible mode
Returns:
true, always

typeCheck

public Expression typeCheck(ExpressionVisitor visitor,
                            ItemType contextItemType)
            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:
typeCheck in interface BinaryExpression