com.icl.saxon.expr

Class ArithmeticExpression


(package private) class ArithmeticExpression
extends BinaryExpression

Arithmetic Expression: a numeric expression consisting of the sum, difference, product, quotient, or modulus of two numeric expressions

Field Summary

Fields inherited from class com.icl.saxon.expr.BinaryExpression

operator, p1, p2

Fields inherited from class com.icl.saxon.expr.Expression

staticContext

Constructor Summary

ArithmeticExpression()
Default constructor
ArithmeticExpression(Expression p1, int operator, Expression p2)
Create a binary expression identifying the two operands and the operator

Method Summary

Value
evaluate(Context c)
Evaluate an expression.
double
evaluateAsNumber(Context c)
Evaluate an expression as a Number.
int
getDataType()
Determine the data type of the expression, if possible
Expression
reduce(int dependencies, Context context)
Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.

Methods inherited from class com.icl.saxon.expr.BinaryExpression

display, getDependencies, setDetails, simplify

Methods inherited from class com.icl.saxon.expr.Expression

containsReferences, display, enumerate, evaluate, evaluateAsBoolean, evaluateAsNodeSet, evaluateAsNumber, evaluateAsString, getDataType, getDependencies, getStaticContext, indent, isContextDocumentNodeSet, make, outputStringValue, reduce, setStaticContext, simplify, usesCurrent

Constructor Details

ArithmeticExpression

public ArithmeticExpression()
Default constructor

ArithmeticExpression

public ArithmeticExpression(Expression p1,
                            int operator,
                            Expression p2)
Create a binary expression identifying the two operands and the operator
Parameters:
p1 - the left-hand operand
p2 - the right-hand operand

Method Details

evaluate

public Value evaluate(Context c)
            throws XPathException
Evaluate an expression.
Overrides:
evaluate in interface Expression
Parameters:
Returns:
the value of the expression as a Value object, evaluated in the current context

evaluateAsNumber

public double evaluateAsNumber(Context c)
            throws XPathException
Evaluate an expression as a Number.
Overrides:
evaluateAsNumber in interface Expression
Parameters:
Returns:
the value of the expression as a double, evaluated in the current context

getDataType

public int getDataType()
Determine the data type of the expression, if possible
Overrides:
getDataType in interface Expression
Returns:
Value.NUMBER

reduce

public Expression reduce(int dependencies,
                         Context context)
            throws XPathException
Perform a partial evaluation of the expression, by eliminating specified dependencies on the context.
Overrides:
reduce in interface Expression
Parameters:
dependencies - The dependencies to be removed
context - The context to be used for the partial evaluation
Returns:
a new expression that does not have any of the specified dependencies