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/LtOperator.java
LtOperator.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 LtOperator extends AbstractBinaryOperator { |
4 | 9 |
|
5 | 10 |
public LtOperator() { |
6 |
super("<"); |
|
11 |
super(Function.GROUP_BOOLEAN,"<");
|
|
7 | 12 |
} |
8 |
|
|
13 |
|
|
9 | 14 |
@Override |
10 |
public Object call(Object op1, Object op2) { |
|
15 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
16 |
Double accuracy = interpreter.getAccuracy(); |
|
17 |
if( accuracy!=null ) { |
|
18 |
if( op1!=null && op2!= null && ( |
|
19 |
op1 instanceof Double || op2 instanceof Double || |
|
20 |
op1 instanceof Float || op2 instanceof Float) ) { |
|
21 |
boolean value = MathUtils.compareTo(((Number)op1).doubleValue(), ((Number)op2).doubleValue(), accuracy) < 0; |
|
22 |
return value; |
|
23 |
} |
|
24 |
} |
|
11 | 25 |
if( op2 instanceof Comparable && op2 instanceof Comparable ) { |
12 |
boolean value = ((Comparable)op1).compareTo((Comparable)op2) < 0;
|
|
26 |
boolean value = ObjectUtils.compare((Comparable)op1,(Comparable)op2) < 0;
|
|
13 | 27 |
return value; |
14 | 28 |
} |
15 | 29 |
throw new IllegalArgumentException("Types not allowed in '"+name()+"' operand."); |
Also available in: Unified diff