Revision 43521 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

View differences:

NeOperator.java
1 1
package org.gvsig.expressionevaluator.impl.function.operator;
2 2

  
3
import org.apache.commons.lang3.ObjectUtils;
4
import org.apache.commons.math.util.MathUtils;
5
import org.gvsig.expressionevaluator.Function;
6
import org.gvsig.expressionevaluator.Interpreter;
7

  
3 8
public class NeOperator extends AbstractBinaryOperator {
4 9

  
5 10
    public NeOperator() {
6
        super("<>");
11
        super(Function.GROUP_BOOLEAN,"<>");
7 12
        this.addAlias("!=");
8 13
    }
9

  
14
    
10 15
    @Override
11
    public Object call(Object op1, Object op2) {       
16
    public Object call(Interpreter interpreter, Object op1, Object op2) {       
17
        Double accuracy = interpreter.getAccuracy();
18
        if( accuracy!=null ) {
19
            if( op1!=null && op2!= null && (
20
                op1 instanceof Double || op2 instanceof Double ||
21
                op1 instanceof Float || op2 instanceof Float) ) {
22
                boolean value = MathUtils.compareTo(((Number)op1).doubleValue(), ((Number)op2).doubleValue(), accuracy) != 0;
23
                return value;
24
            }
25
        }
12 26
        if( op2 instanceof Comparable && op2 instanceof Comparable ) {
13
            boolean value = ((Comparable)op1).compareTo((Comparable)op2) != 0;
27
            boolean value = ObjectUtils.compare((Comparable)op1,(Comparable)op2) != 0;
14 28
            return value;
15 29
        }
16 30
        throw new IllegalArgumentException("Types not allowed in '"+name()+"' operand.");

Also available in: Unified diff