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

View differences:

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