Class CoreOperationCompare
- java.lang.Object
-
- org.apache.commons.jxpath.ri.compiler.Expression
-
- org.apache.commons.jxpath.ri.compiler.Operation
-
- org.apache.commons.jxpath.ri.compiler.CoreOperation
-
- org.apache.commons.jxpath.ri.compiler.CoreOperationCompare
-
- Direct Known Subclasses:
CoreOperationEqual
,CoreOperationNotEqual
public abstract class CoreOperationCompare extends CoreOperation
Common superclass for the implementations of Expression for the operations "=" and "!=".- Version:
- $Revision: 652845 $ $Date: 2008-05-02 12:46:46 -0500 (Fri, 02 May 2008) $
- Author:
- Dmitri Plotnikov
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.commons.jxpath.ri.compiler.Expression
Expression.PointerIterator, Expression.ValueIterator
-
-
Field Summary
Fields Modifier and Type Field Description private boolean
invert
-
Fields inherited from class org.apache.commons.jxpath.ri.compiler.CoreOperation
ADD_PRECEDENCE, AND_PRECEDENCE, COMPARE_PRECEDENCE, MULTIPLY_PRECEDENCE, NEGATE_PRECEDENCE, OR_PRECEDENCE, RELATIONAL_EXPR_PRECEDENCE, UNION_PRECEDENCE
-
Fields inherited from class org.apache.commons.jxpath.ri.compiler.Expression
NOT_A_NUMBER, ONE, ZERO
-
-
Constructor Summary
Constructors Modifier Constructor Description CoreOperationCompare(Expression arg1, Expression arg2)
Create a new CoreOperationCompare.protected
CoreOperationCompare(Expression arg1, Expression arg2, boolean invert)
Create a new CoreOperationCompare.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Object
computeValue(EvalContext context)
Evaluates the expression.protected boolean
contains(java.util.Iterator it, java.lang.Object value)
Learn whether it contains value.protected boolean
equal(java.lang.Object l, java.lang.Object r)
Learn whether l equals r in XPath terms.protected boolean
equal(EvalContext context, Expression left, Expression right)
Compares two values.protected boolean
findMatch(java.util.Iterator lit, java.util.Iterator rit)
Learn whether lit intersects rit.protected int
getPrecedence()
Computes the precedence of the operation.protected boolean
isSymmetric()
Returns true if the operation is not sensitive to the order of arguments, e.g.-
Methods inherited from class org.apache.commons.jxpath.ri.compiler.CoreOperation
compute, getSymbol, toString
-
Methods inherited from class org.apache.commons.jxpath.ri.compiler.Operation
computeContextDependent, getArguments
-
Methods inherited from class org.apache.commons.jxpath.ri.compiler.Expression
isContextDependent, iterate, iteratePointers
-
-
-
-
Constructor Detail
-
CoreOperationCompare
public CoreOperationCompare(Expression arg1, Expression arg2)
Create a new CoreOperationCompare.- Parameters:
arg1
- left operandarg2
- right operand
-
CoreOperationCompare
protected CoreOperationCompare(Expression arg1, Expression arg2, boolean invert)
Create a new CoreOperationCompare.- Parameters:
arg1
- left operandarg2
- right operandinvert
- whether to invert (not) the comparison
-
-
Method Detail
-
computeValue
public java.lang.Object computeValue(EvalContext context)
Description copied from class:Expression
Evaluates the expression. If the result is a node set, returns the first element of the node set.- Specified by:
computeValue
in classCoreOperation
- Parameters:
context
- evaluation context- Returns:
- Object
-
getPrecedence
protected int getPrecedence()
Description copied from class:CoreOperation
Computes the precedence of the operation.- Specified by:
getPrecedence
in classCoreOperation
- Returns:
- int precedence
-
isSymmetric
protected boolean isSymmetric()
Description copied from class:CoreOperation
Returns true if the operation is not sensitive to the order of arguments, e.g. "=", "and" etc, and false if it is, e.g. "<=", "div".- Specified by:
isSymmetric
in classCoreOperation
- Returns:
- boolean
-
equal
protected boolean equal(EvalContext context, Expression left, Expression right)
Compares two values.- Parameters:
context
- evaluation contextleft
- operandright
- operand- Returns:
- whether left = right in XPath terms
-
contains
protected boolean contains(java.util.Iterator it, java.lang.Object value)
Learn whether it contains value.- Parameters:
it
- Iterator to checkvalue
- for which to look- Returns:
- whether value was found
-
findMatch
protected boolean findMatch(java.util.Iterator lit, java.util.Iterator rit)
Learn whether lit intersects rit.- Parameters:
lit
- left Iteratorrit
- right Iterator- Returns:
- boolean
-
equal
protected boolean equal(java.lang.Object l, java.lang.Object r)
Learn whether l equals r in XPath terms.- Parameters:
l
- left operandr
- right operand- Returns:
- whether l = r
-
-