Package org.apache.commons.jxpath.ri.compiler

# 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 "!=".

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from class org.apache.commons.jxpath.ri.compiler.Expression

  `Expression.PointerIterator, Expression.ValueIterator`

- ## Field Summary

  ### 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.Operation

  `args`

  ### 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)`
  Constructs a new CoreOperationCompare.
  `protected`
  `CoreOperationCompare(Expression arg1, Expression arg2, boolean invert)`
  Constructs a new CoreOperationCompare.

- ## Method Summary

  Modifier and Type
  Method
  Description
  `Object`
  `computeValue(EvalContext context)`
  Evaluates the expression.
  `protected boolean`
  `contains(Iterator it, Object value)`
  Tests whether it contains value.
  `protected boolean`
  `equal(Object l, Object r)`
  Tests whether l equals r in XPath terms.
  `protected boolean`
  `equal(EvalContext context, Expression left, Expression right)`
  Compares two values.
  `protected boolean`
  `findMatch(Iterator lit, Iterator rit)`
  Tests 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. "=", "and" etc, and false if it is, 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`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- ## Constructor Details

  - ### CoreOperationCompare

    public CoreOperationCompare(Expression arg1, Expression arg2)
    Constructs a new CoreOperationCompare.
    Parameters:
      `arg1` - left operand
      `arg2` - right operand

  - ### CoreOperationCompare

    protected CoreOperationCompare(Expression arg1, Expression arg2, boolean invert)
    Constructs a new CoreOperationCompare.
    Parameters:
      `arg1` - left operand
      `arg2` - right operand
      `invert` - whether to invert (not) the comparison

- ## Method Details

  - ### computeValue

    public 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 class `CoreOperation`
    Parameters:
      `context` - evaluation context
    Returns:
      Object

  - ### contains

    protected boolean contains(Iterator it, Object value)
    Tests whether it contains value.
    Parameters:
      `it` - Iterator to check
      `value` - for which to look
    Returns:
      whether value was found

  - ### equal

    protected boolean equal(EvalContext context, Expression left, Expression right)
    Compares two values.
    Parameters:
      `context` - evaluation context
      `left` - operand
      `right` - operand
    Returns:
      whether left = right in XPath terms

  - ### equal

    protected boolean equal(Object l, Object r)
    Tests whether l equals r in XPath terms.
    Parameters:
      `l` - left operand
      `r` - right operand
    Returns:
      whether l = r

  - ### findMatch

    protected boolean findMatch(Iterator lit, Iterator rit)
    Tests whether lit intersects rit.
    Parameters:
      `lit` - left Iterator
      `rit` - right Iterator
    Returns:
      boolean

  - ### getPrecedence

    protected int getPrecedence()
    Description copied from class: `CoreOperation`
    Computes the precedence of the operation.
    Specified by:
      `getPrecedence` in class `CoreOperation`
    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 class `CoreOperation`
    Returns:
      boolean