Revision 44218

View differences:

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