Revision 44218
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/NeOperator.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
@Override |
22 | 22 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
23 |
if( op1==op2 ) { |
|
24 |
return false; |
|
25 |
} |
|
26 |
if( op1==null || op2==null ) { |
|
27 |
return true; |
|
28 |
} |
|
23 | 29 |
int type = this.getType(op1, op2); |
24 | 30 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
25 | 31 |
boolean value = MathUtils.compareTo( |
... | ... | |
37 | 43 |
) != 0; |
38 | 44 |
return value; |
39 | 45 |
} |
40 |
if( (type & TYPE_LONG) == TYPE_LONG ) { |
|
41 |
boolean value = ((Number) op1).longValue() != ((Number) op2).longValue(); |
|
42 |
return value; |
|
43 |
} |
|
44 |
if( (type & TYPE_INT) == TYPE_INT ) { |
|
45 |
boolean value = ((Number) op1).intValue() != ((Number) op2).intValue(); |
|
46 |
return value; |
|
47 |
} |
|
48 | 46 |
if( op2 instanceof Comparable && op2 instanceof Comparable ) { |
49 |
boolean value = ObjectUtils.compare((Comparable)op1,(Comparable)op2) != 0; |
|
47 |
// boolean value = ObjectUtils.compare((Comparable)op1,(Comparable)op2) != 0; |
|
48 |
boolean value = ((Comparable)op1).compareTo((Comparable)op2) != 0; |
|
50 | 49 |
return value; |
51 | 50 |
} |
52 | 51 |
throw new IllegalArgumentException("Types not allowed in '"+name()+"' operand."); |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/function/operator/EqOperator.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
@Override |
21 | 21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
22 |
if( op1==op2 ) { |
|
23 |
return true; |
|
24 |
} |
|
25 |
if( op1==null || op2==null ) { |
|
26 |
return false; |
|
27 |
} |
|
22 | 28 |
int type = this.getType(op1, op2); |
23 | 29 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
24 | 30 |
boolean value = MathUtils.compareTo( |
... | ... | |
36 | 42 |
) == 0; |
37 | 43 |
return value; |
38 | 44 |
} |
39 |
if( (type & TYPE_LONG) == TYPE_LONG ) { |
|
40 |
boolean value = ((Number) op1).longValue() == ((Number) op2).longValue(); |
|
41 |
return value; |
|
42 |
} |
|
43 |
if( (type & TYPE_INT) == TYPE_INT ) { |
|
44 |
boolean value = ((Number) op1).intValue() == ((Number) op2).intValue(); |
|
45 |
return value; |
|
46 |
} |
|
47 | 45 |
if( op2 instanceof Comparable && op2 instanceof Comparable ) { |
48 |
boolean value = ObjectUtils.compare((Comparable)op1,(Comparable)op2) == 0;
|
|
46 |
boolean value = ((Comparable)op1).compareTo((Comparable)op2) == 0;
|
|
49 | 47 |
return value; |
50 | 48 |
} |
51 | 49 |
throw new IllegalArgumentException("Types not allowed in '" + name() + "' operand."); |
Also available in: Unified diff