net.sf.saxon.expr
Class ArithmeticExpression
- EvaluableItem, InstructionInfoProvider, SequenceIterable, Serializable, SourceLocator
public class ArithmeticExpression
Arithmetic Expression: an expression using one of the operators
plus, minus, multiply, div, idiv, mod. Note that this code does not handle backwards
compatibility mode: see
ArithmeticExpression10
computeCardinality , computeSpecialProperties , displayOperator , equals , explain , getOperands , getOperator , hashCode , isAssociative , isCommutative , isInverse , iterateSubExpressions , optimize , promote , replaceSubExpression , setFlattened , simplify , toString , typeCheck |
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 |
ArithmeticExpression
public ArithmeticExpression(Expression p0,
int operator,
Expression p1)
Create an arithmetic expression
p0
- the first operandoperator
- the operator, for example Token.PLUS
p1
- the second operand
compute
public static AtomicValue compute(AtomicValue value0,
int operator,
AtomicValue value1,
XPathContext context)
throws XPathException
Static method to apply arithmetic to two values
value0
- the first valueoperator
- the operator as denoted in the Calculator class, for example Calculator.PLUS
value1
- the second valuecontext
- the XPath dynamic evaluation context
- the result of the arithmetic operation
copy
public Expression copy()
Copy an expression. This makes a deep copy.
- copy in interface Expression
- the copy of the original expression
getCalculator
public Calculator getCalculator()
Get the calculator allocated to evaluate this expression
- the calculator, a helper object that does the actual calculation
getItemType
public ItemType getItemType(TypeHierarchy th)
Determine the data type of the expression, insofar as this is known statically
- getItemType in interface Expression
th
- the type hierarchy cache
- the atomic type of the result of this arithmetic expression
mapOpCode
public static int mapOpCode(int op)
Map operator codes from those in the Token class to those in the Calculator class
op
- an operator denoted by a constant in the Token
class, for example Token.PLUS
simplify
public Expression simplify(ExpressionVisitor visitor)
throws XPathException
Simplify an expression. This performs any static optimization (by rewriting the expression
as a different expression). The default implementation does nothing.
- simplify in interface BinaryExpression
visitor
- an expression visitor
- the simplified expression
XPathException
- if an error is discovered during expression
rewriting