Revision 45307
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/programming/CaseFunction.java | ||
---|---|---|
68 | 68 |
for( int n=0; n<count; n++ ) { |
69 | 69 |
Object condition_o = getObject(interpreter, args, n); |
70 | 70 |
Boolean condition = (Boolean) toBoolean.coerce(condition_o); |
71 |
if( condition ) { |
|
71 |
if( condition!=null && condition==true ) {
|
|
72 | 72 |
needElse = false; |
73 | 73 |
value = getObject(interpreter, args, n+firstValue); |
74 | 74 |
} |
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/DivOperator.java | ||
---|---|---|
21 | 21 |
} |
22 | 22 |
|
23 | 23 |
@Override |
24 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
24 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
25 |
if (op1 == null || op2 == null) { |
|
26 |
return null; |
|
27 |
} |
|
25 | 28 |
int type = this.getType(op1, op2); |
26 | 29 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
27 | 30 |
double value = getDouble(op1,1) / getDouble(op2,2); |
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/AddOperator.java | ||
---|---|---|
28 | 28 |
} |
29 | 29 |
|
30 | 30 |
@Override |
31 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
31 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
32 |
if (op1 == null || op2 == null) { |
|
33 |
return null; |
|
34 |
} |
|
32 | 35 |
int type = this.getType(op1, op2); |
33 | 36 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
34 | 37 |
double value = getDouble(op1,1) + getDouble(op2,2); |
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/RegExpOperator.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
@Override |
22 | 22 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
23 |
if (op1 == null || op2 == null) { |
|
24 |
return null; |
|
25 |
} |
|
23 | 26 |
String re = Objects.toString(op2, ""); |
24 | 27 |
Pattern exp = (Pattern) interpreter.getCache().get(this.getClass(), re); |
25 | 28 |
if( exp == null ) { |
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/GeOperator.java | ||
---|---|---|
18 | 18 |
} |
19 | 19 |
|
20 | 20 |
@Override |
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
22 |
if (op1 == null || op2 == null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
int type = this.getType(op1, op2); |
23 | 26 |
if( (type & TYPE_NULL) == TYPE_NULL ) { |
24 | 27 |
return false; |
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/MulOperator.java | ||
---|---|---|
21 | 21 |
} |
22 | 22 |
|
23 | 23 |
@Override |
24 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
24 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
25 |
if (op1 == null || op2 == null) { |
|
26 |
return null; |
|
27 |
} |
|
25 | 28 |
int type = this.getType(op1, op2); |
26 | 29 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
27 | 30 |
double value = getDouble(op1,1) * getDouble(op2,2); |
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/SubstOperator.java | ||
---|---|---|
22 | 22 |
} |
23 | 23 |
|
24 | 24 |
@Override |
25 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
25 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
26 |
if (op1 == null || op2 == null) { |
|
27 |
return null; |
|
28 |
} |
|
26 | 29 |
int type = this.getType(op1, op2); |
27 | 30 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
28 | 31 |
double value = getDouble(op1,1) - getDouble(op2,2); |
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/NotOperator.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
@Override |
21 | 21 |
public Object call(Interpreter interpreter, Object arg) { |
22 |
if (arg==null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
if( ! (arg instanceof Boolean) ) { |
23 | 26 |
throw new IllegalArgumentException("NOT operator require a boolean"); |
24 | 27 |
} |
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/LeOperator.java | ||
---|---|---|
18 | 18 |
} |
19 | 19 |
|
20 | 20 |
@Override |
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
22 |
if (op1 == null || op2 == null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
int type = this.getType(op1, op2); |
23 | 26 |
if( (type & TYPE_NULL) == TYPE_NULL ) { |
24 | 27 |
return false; |
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/AndOperator.java | ||
---|---|---|
16 | 16 |
} |
17 | 17 |
|
18 | 18 |
@Override |
19 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
19 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
20 | 20 |
if( op1 instanceof Boolean && op2 instanceof Boolean ) { |
21 | 21 |
boolean value = getBoolean(op1,1) && getBoolean(op2,2); |
22 | 22 |
return value; |
23 | 23 |
} |
24 |
|
|
25 |
if (op1==null && op2==null) { |
|
26 |
return null; |
|
27 |
} else if (op1==null||op2==null) { |
|
28 |
Boolean boolValue = null; |
|
29 |
if (op2 == null && op1 instanceof Boolean) { |
|
30 |
boolValue = getBoolean(op1,1); |
|
31 |
} else if (op1 == null && op2 instanceof Boolean){ |
|
32 |
boolValue = getBoolean(op2,2); |
|
33 |
} |
|
34 |
if (boolValue==null || boolValue==true) { |
|
35 |
return null; |
|
36 |
} else { |
|
37 |
return false; |
|
38 |
} |
|
39 |
} |
|
40 |
|
|
24 | 41 |
throw new IllegalArgumentException("Types not allowed in '"+name()+"' operand."); |
25 | 42 |
} |
26 | 43 |
|
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 | ||
---|---|---|
18 | 18 |
} |
19 | 19 |
|
20 | 20 |
@Override |
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
22 |
if (op1 == null || op2 == null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
if( op1==op2 ) { |
23 | 26 |
return false; |
24 | 27 |
} |
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 | ||
---|---|---|
18 | 18 |
|
19 | 19 |
@Override |
20 | 20 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
21 |
if (op1 == null || op2 == null) { |
|
22 |
return null; |
|
23 |
} |
|
21 | 24 |
if( op1==op2 ) { |
22 | 25 |
return true; |
23 | 26 |
} |
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/ConcatOperator.java | ||
---|---|---|
26 | 26 |
} |
27 | 27 |
|
28 | 28 |
@Override |
29 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
29 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
30 |
if (op1 == null || op2 == null) { |
|
31 |
return null; |
|
32 |
} |
|
30 | 33 |
return Objects.toString(op1, "")+Objects.toString(op2, ""); |
31 | 34 |
} |
32 | 35 |
|
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/NegOperator.java | ||
---|---|---|
19 | 19 |
|
20 | 20 |
@Override |
21 | 21 |
public Object call(Interpreter interpreter, Object arg) { |
22 |
if (arg == null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
if( !(arg instanceof Number) ) { |
23 | 26 |
throw new IllegalArgumentException("NEGATE function require a number"); |
24 | 27 |
} |
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/GtOperator.java | ||
---|---|---|
18 | 18 |
} |
19 | 19 |
|
20 | 20 |
@Override |
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
22 |
if (op1 == null || op2 == null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
int type = this.getType(op1, op2); |
23 | 26 |
if( (type & TYPE_NULL) == TYPE_NULL ) { |
24 | 27 |
return false; |
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 | ||
---|---|---|
18 | 18 |
} |
19 | 19 |
|
20 | 20 |
@Override |
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
21 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
22 |
if (op1 == null || op2 == null) { |
|
23 |
return null; |
|
24 |
} |
|
22 | 25 |
int type = this.getType(op1, op2); |
23 | 26 |
if( (type & TYPE_NULL) == TYPE_NULL ) { |
24 | 27 |
return false; |
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/OrOperator.java | ||
---|---|---|
16 | 16 |
} |
17 | 17 |
|
18 | 18 |
@Override |
19 |
public Object call(Interpreter interpreter, Object op1, Object op2) { |
|
19 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
20 | 20 |
if( op1 instanceof Boolean && op2 instanceof Boolean ) { |
21 | 21 |
boolean value = getBoolean(op1,1) || getBoolean(op2,2); |
22 | 22 |
return value; |
23 | 23 |
} |
24 |
|
|
25 |
if (op1==null && op2==null) { |
|
26 |
return null; |
|
27 |
} else if (op1==null||op2==null) { |
|
28 |
Boolean boolValue = null; |
|
29 |
if (op2 == null && op1 instanceof Boolean) { |
|
30 |
boolValue = getBoolean(op1,1); |
|
31 |
} else if (op1 == null && op2 instanceof Boolean){ |
|
32 |
boolValue = getBoolean(op2,2); |
|
33 |
} |
|
34 |
if (boolValue==null || boolValue==false) { |
|
35 |
return null; |
|
36 |
} else { |
|
37 |
return true; |
|
38 |
} |
|
39 |
} |
|
40 |
|
|
24 | 41 |
throw new IllegalArgumentException("Types not allowed in '"+name()+"' operand."); |
25 | 42 |
} |
26 | 43 |
|
Also available in: Unified diff