Revision 44855 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
EqOperator.java | ||
---|---|---|
26 | 26 |
} |
27 | 27 |
int type = this.getType(op1, op2); |
28 | 28 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
29 |
boolean value = MathUtils.compareTo(
|
|
30 |
((Number) op1).doubleValue(),
|
|
31 |
((Number) op2).doubleValue(),
|
|
32 |
interpreter.getAccuracy()==null? MathUtils.EPSILON:interpreter.getAccuracy()
|
|
33 |
) == 0; |
|
29 |
double accuracy = MathUtils.EPSILON;
|
|
30 |
if( interpreter.getAccuracy()!=null ) {
|
|
31 |
accuracy = interpreter.getAccuracy();
|
|
32 |
}
|
|
33 |
boolean value = MathUtils.compareTo(getDouble(op1, 1),getDouble(op2, 2),accuracy) == 0;
|
|
34 | 34 |
return value; |
35 | 35 |
} |
36 | 36 |
if( (type & TYPE_FLOAT) == TYPE_FLOAT ) { |
37 |
boolean value = MathUtils.compareTo(
|
|
38 |
((Number) op1).floatValue(),
|
|
39 |
((Number) op2).floatValue(),
|
|
40 |
interpreter.getAccuracy()==null? MathUtils.EPSILON:interpreter.getAccuracy()
|
|
41 |
) == 0; |
|
37 |
double accuracy = MathUtils.EPSILON;
|
|
38 |
if( interpreter.getAccuracy()!=null ) {
|
|
39 |
accuracy = interpreter.getAccuracy();
|
|
40 |
}
|
|
41 |
boolean value = MathUtils.compareTo(getFloat(op1, 1),getFloat(op2, 2),accuracy) == 0;
|
|
42 | 42 |
return value; |
43 | 43 |
} |
44 | 44 |
if( (type & TYPE_LONG) == TYPE_LONG ) { |
45 |
boolean value = Long.compare( |
|
46 |
((Number) op1).longValue(), |
|
47 |
((Number) op2).longValue() |
|
48 |
) == 0; |
|
45 |
boolean value = Long.compare(getLong(op1, 1),getLong(op2, 2)) == 0; |
|
49 | 46 |
return value; |
50 | 47 |
} |
51 | 48 |
if( (type & TYPE_INT) == TYPE_INT ) { |
52 |
boolean value = Integer.compare( |
|
53 |
((Number) op1).intValue(), |
|
54 |
((Number) op2).intValue() |
|
55 |
) == 0; |
|
49 |
boolean value = Integer.compare(getInt(op1, 1),getInt(op2, 2)) == 0; |
|
56 | 50 |
return value; |
57 | 51 |
} |
58 | 52 |
if( op2 instanceof Comparable && op2 instanceof Comparable ) { |
59 |
boolean value = ((Comparable)op1).compareTo((Comparable)op2) == 0;
|
|
53 |
boolean value = getComparable(op1,1).compareTo(getComparable(op2,2)) == 0;
|
|
60 | 54 |
return value; |
61 | 55 |
} |
62 | 56 |
throw new IllegalArgumentException("Types not allowed in '" + name() + "' operand."); |
Also available in: Unified diff