net.sf.saxon.expr
Class ArithmeticExpression
java.lang.Object
net.sf.saxon.expr.ComputedExpression
net.sf.saxon.expr.BinaryExpression
net.sf.saxon.expr.ArithmeticExpression
- All Implemented Interfaces:
- Serializable, Expression
- Direct Known Subclasses:
- ArithmeticExpression.DateAndDuration, ArithmeticExpression.DateDifference, ArithmeticExpression.DurationAddition, ArithmeticExpression.DurationMultiplication, ArithmeticExpression.NumericArithmetic
class ArithmeticExpression
- extends BinaryExpression
Arithmetic Expression: an expression using one of the operators
plus, minus, multiply, div, idiv, mod.
Methods inherited from class net.sf.saxon.expr.ComputedExpression |
computeDependencies, computeSpecialProperties, computeStaticProperties, dynamicError, effectiveBooleanValue, evaluateAsString, getCardinality, getDependencies, getIntrinsicDependencies, getLineNumber, getSpecialProperties, iterate, markTailFunctionCalls, setLineNumber, typeError |
ArithmeticExpression
public ArithmeticExpression()
ArithmeticExpression
public ArithmeticExpression(Expression p1,
int operator,
Expression p2)
analyze
public Expression analyze(StaticContext env)
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.
- Specified by:
analyze
in interface Expression
- Overrides:
analyze
in class BinaryExpression
- Parameters:
env
- the static context of the expression
- 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)
getItemType
public ItemType getItemType()
- Determine the data type of the expression, if this is known statically
- Returns:
- a value such as Type.STRING, Type.BOOLEAN, Type.NUMBER,
Type.NODE, or Type.ITEM (meaning not known at compile time)
evaluateItem
public Item evaluateItem(XPathContext context)
throws XPathException
- Evaluate the expression. We only take this path if the type could not be determined
statically.
- Specified by:
evaluateItem
in interface Expression
- Overrides:
evaluateItem
in class ComputedExpression
- 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