/* */ package org.jaxen.expr;
/* */
/* */ import java.util.
Iterator;
/* */ import java.util.
List;
/* */ import org.jaxen.
Context;
/* */ import org.jaxen.
JaxenException;
/* */ import org.jaxen.
Navigator;
/* */ import org.jaxen.function.
BooleanFunction;
/* */ import org.jaxen.function.
NumberFunction;
/* */ import org.jaxen.function.
StringFunction;
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */
/* */ abstract class
DefaultEqualityExpr
/* */ extends
DefaultTruthExpr
/* */ implements
EqualityExpr
/* */ {
/* */
DefaultEqualityExpr(
Expr lhs,
Expr rhs) {
/* 65 */ super(
lhs,
rhs);
/* */ }
/* */
/* */
/* */ public
String toString() {
/* 70 */ return "[(DefaultEqualityExpr): " +
getLHS() + ", " +
getRHS() + "]";
/* */ }
/* */
/* */
/* */ public
Object evaluate(
Context context) throws
JaxenException {
/* 75 */
Object lhsValue =
getLHS().
evaluate(
context);
/* 76 */
Object rhsValue =
getRHS().
evaluate(
context);
/* */
/* 78 */ if (
lhsValue == null ||
rhsValue == null)
/* */ {
/* 80 */ return
Boolean.
FALSE;
/* */ }
/* */
/* 83 */
Navigator nav =
context.
getNavigator();
/* */
/* 85 */ if (
bothAreSets(
lhsValue,
rhsValue))
/* */ {
/* 87 */ return
evaluateSetSet((
List)
lhsValue, (
List)
rhsValue,
nav);
/* */ }
/* 89 */ if (
eitherIsSet(
lhsValue,
rhsValue)) {
/* */
/* 91 */ if (
isSet(
lhsValue))
/* */ {
/* 93 */ return
evaluateSetSet((
List)
lhsValue,
convertToList(
rhsValue),
nav);
/* */ }
/* */
/* */
/* 97 */ return
evaluateSetSet(
convertToList(
lhsValue), (
List)
rhsValue,
nav);
/* */ }
/* */
/* */
/* */
/* 102 */ return
evaluateObjectObject(
lhsValue,
rhsValue,
nav) ?
Boolean.
TRUE :
Boolean.
FALSE;
/* */ }
/* */
/* */
/* */
/* */ private
Boolean evaluateSetSet(
List lhsSet,
List rhsSet,
Navigator nav) {
/* 108 */ if (
setIsEmpty(
lhsSet) ||
setIsEmpty(
rhsSet))
/* */ {
/* 110 */ return
Boolean.
FALSE;
/* */ }
/* */
/* 113 */ for (
Iterator lhsIterator =
lhsSet.
iterator();
lhsIterator.
hasNext(); ) {
/* */
/* 115 */
Object lhs =
lhsIterator.
next();
/* */
/* 117 */ for (
Iterator rhsIterator =
rhsSet.
iterator();
rhsIterator.
hasNext(); ) {
/* */
/* 119 */
Object rhs =
rhsIterator.
next();
/* */
/* 121 */ if (
evaluateObjectObject(
lhs,
rhs,
nav))
/* */ {
/* 123 */ return
Boolean.
TRUE;
/* */ }
/* */ }
/* */ }
/* */
/* 128 */ return
Boolean.
FALSE;
/* */ }
/* */
/* */
/* */ private boolean
evaluateObjectObject(
Object lhs,
Object rhs,
Navigator nav) {
/* 133 */ if (
eitherIsBoolean(
lhs,
rhs))
/* */ {
/* 135 */ return
evaluateObjectObject(
BooleanFunction.
evaluate(
lhs,
nav),
BooleanFunction.
evaluate(
rhs,
nav));
/* */ }
/* */
/* 138 */ if (
eitherIsNumber(
lhs,
rhs))
/* */ {
/* 140 */ return
evaluateObjectObject(
NumberFunction.
evaluate(
lhs,
nav),
NumberFunction.
evaluate(
rhs,
nav));
/* */ }
/* */
/* */
/* */
/* */
/* */
/* 147 */ return
evaluateObjectObject(
StringFunction.
evaluate(
lhs,
nav),
StringFunction.
evaluate(
rhs,
nav));
/* */ }
/* */
/* */ protected abstract boolean
evaluateObjectObject(
Object paramObject1,
Object paramObject2);
/* */ }
/* Location: /Users/tommy/.m2/repository/jaxen/jaxen/1.1.1/jaxen-1.1.1.jar!/org/jaxen/expr/DefaultEqualityExpr.class
* Java compiler version: 2 (46.0)
* JD-Core Version: 1.1.3
*/