Revision 44207
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureStore.java | ||
---|---|---|
1962 | 1962 |
throw new VisitCanceledException(); |
1963 | 1963 |
} |
1964 | 1964 |
}, query); |
1965 |
return null; |
|
1966 | 1965 |
} catch(VisitCanceledException ex) { |
1967 |
return feature.getValue(); |
|
1966 |
|
|
1968 | 1967 |
} catch(DataException ex) { |
1969 | 1968 |
throw ex; |
1970 | 1969 |
} catch(Exception ex) { |
1971 | 1970 |
throw new RuntimeException("", ex); |
1972 | 1971 |
} |
1972 |
return feature.getValue(); |
|
1973 | 1973 |
} |
1974 | 1974 |
|
1975 | 1975 |
@Override |
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/featureset/FilteredIterator.java | ||
---|---|---|
25 | 25 |
|
26 | 26 |
import java.util.Iterator; |
27 | 27 |
import java.util.NoSuchElementException; |
28 |
import org.apache.commons.lang3.BooleanUtils; |
|
28 | 29 |
|
29 | 30 |
import org.gvsig.fmap.dal.exception.DataEvaluatorException; |
30 | 31 |
import org.gvsig.fmap.dal.exception.DataException; |
... | ... | |
120 | 121 |
public boolean match(DefaultFeature feature) throws DataException { |
121 | 122 |
try { |
122 | 123 |
if (filter==null) { |
123 |
return true;
|
|
124 |
return true;
|
|
124 | 125 |
} |
125 |
return ((Boolean) this.filter.evaluate(feature)).booleanValue(); |
|
126 |
Object x = this.filter.evaluate(feature); |
|
127 |
if( x == null ) { |
|
128 |
return false; |
|
129 |
} else if( x instanceof Boolean ) { |
|
130 |
return ((Boolean) x); |
|
131 |
} else { |
|
132 |
return true; |
|
133 |
} |
|
126 | 134 |
} catch (EvaluatorException e) { |
127 | 135 |
throw new DataEvaluatorException(e); |
128 | 136 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.plugin/org.gvsig.app/org.gvsig.app.mainplugin/src/main/java/org/gvsig/app/project/symboltables/ProjectSymbolTable.java | ||
---|---|---|
478 | 478 |
Geometry geom = getGeom(args, 0); |
479 | 479 |
switch( args.length ) { |
480 | 480 |
case 2: |
481 |
units = getUnits(args, 1); |
|
481 |
units = getUnitsArea(args, 1);
|
|
482 | 482 |
break; |
483 | 483 |
case 3: |
484 | 484 |
proj = getProjection(args, 1); |
485 |
units = getUnits(args, 2); |
|
485 |
units = getUnitsArea(args, 2);
|
|
486 | 486 |
break; |
487 | 487 |
} |
488 | 488 |
if (proj == null) { |
... | ... | |
519 | 519 |
Geometry geom = getGeom(args, 0); |
520 | 520 |
switch( args.length ) { |
521 | 521 |
case 2: |
522 |
units = getUnits(args, 1); |
|
522 |
units = getUnitsArea(args, 1);
|
|
523 | 523 |
break; |
524 | 524 |
case 3: |
525 | 525 |
proj = getProjection(args, 1); |
526 |
units = getUnits(args, 2); |
|
526 |
units = getUnitsArea(args, 2);
|
|
527 | 527 |
break; |
528 | 528 |
} |
529 | 529 |
if (proj == null) { |
... | ... | |
654 | 654 |
return CRSFactory.getCRS(code); |
655 | 655 |
} |
656 | 656 |
|
657 |
private int getUnits(Object[] args, int i) { |
|
657 |
private int getUnitsArea(Object[] args, int i) {
|
|
658 | 658 |
Object value = args[i]; |
659 | 659 |
if (value == null) { |
660 | 660 |
throw new IllegalArgumentException("Illegal unit value 'null'"); |
... | ... | |
678 | 678 |
throw new IllegalArgumentException("Illegal unit name '" + name + "'"); |
679 | 679 |
} |
680 | 680 |
|
681 |
private int getUnitsDistance(Object[] args, int i) { |
|
682 |
Object value = args[i]; |
|
683 |
if (value == null) { |
|
684 |
throw new IllegalArgumentException("Illegal unit value 'null'"); |
|
685 |
} |
|
686 |
if (value instanceof Number) { |
|
687 |
return ((Number) value).intValue(); |
|
688 |
} |
|
689 |
String name = value.toString(); |
|
690 |
String[] names = MapContext.getDistanceAbbr(); |
|
691 |
for (int j = 0; j < names.length; j++) { |
|
692 |
if (name.equalsIgnoreCase(names[j])) { |
|
693 |
return j; |
|
694 |
} |
|
695 |
} |
|
696 |
names = MapContext.getDistanceNames(); |
|
697 |
for (int j = 0; j < names.length; j++) { |
|
698 |
if (name.equalsIgnoreCase(names[j])) { |
|
699 |
return j; |
|
700 |
} |
|
701 |
} |
|
702 |
throw new IllegalArgumentException("Illegal unit name '" + name + "'"); |
|
703 |
} |
|
704 |
|
|
681 | 705 |
} |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionBuilder.java | ||
---|---|---|
11 | 11 |
public interface ExpressionBuilder { |
12 | 12 |
|
13 | 13 |
public static final String OPERATOR_NOT = "NOT"; |
14 |
public static final String OPERATOR_NEGATE = "NEGATE"; |
|
14 | 15 |
public static final String OPERATOR_IS = "IS"; |
15 | 16 |
public static final String OPERATOR_AND = "AND"; |
16 | 17 |
public static final String OPERATOR_OR = "OR"; |
17 |
public static final String OPERATOR_EQ = "EQ";
|
|
18 |
public static final String OPERATOR_NE = "NE";
|
|
19 |
public static final String OPERATOR_GT = "GT";
|
|
20 |
public static final String OPERATOR_GE = "GE";
|
|
21 |
public static final String OPERATOR_LT = "LT";
|
|
22 |
public static final String OPERATOR_LE = "LE";
|
|
18 |
public static final String OPERATOR_EQ = "=";
|
|
19 |
public static final String OPERATOR_NE = "<>";
|
|
20 |
public static final String OPERATOR_GT = ">";
|
|
21 |
public static final String OPERATOR_GE = ">=";
|
|
22 |
public static final String OPERATOR_LT = "<";
|
|
23 |
public static final String OPERATOR_LE = "<=";
|
|
23 | 24 |
public static final String OPERATOR_LIKE = "LIKE"; |
24 | 25 |
public static final String OPERATOR_ILIKE = "ILIKE"; |
25 |
public static final String OPERATOR_ADD = "ADD"; |
|
26 |
public static final String OPERATOR_SUBST = "SUBST"; |
|
27 |
public static final String OPERATOR_MULT = "MULT"; |
|
28 |
public static final String OPERATOR_DIV = "DIV"; |
|
29 |
public static final String OPERATOR_CONCAT = "CONCAT"; |
|
26 |
public static final String OPERATOR_ADD = "+"; |
|
27 |
public static final String OPERATOR_SUBST = "-"; |
|
28 |
public static final String OPERATOR_MULT = "*"; |
|
29 |
public static final String OPERATOR_DIV = "/"; |
|
30 |
public static final String OPERATOR_MOD = "%"; |
|
31 |
public static final String OPERATOR_CONCAT = "||"; |
|
32 |
public static final String OPERATOR_REGEXP = "~"; |
|
33 |
public static final String OPERATOR_AND2 = "&&"; |
|
30 | 34 |
|
31 | 35 |
public static final String FUNCTION_ST_SRID = "ST_SRID"; |
32 | 36 |
public static final String FUNCTION_ST_ASTEXT = "ST_AsText"; |
... | ... | |
114 | 118 |
public static final String FUNCTION_INCR = "INCR"; |
115 | 119 |
public static final String FUNCTION_DECR = "DECR"; |
116 | 120 |
|
121 |
public static final String FUNCTION_RANGE = "RANGE"; |
|
122 |
|
|
117 | 123 |
public enum GeometrySupportType { |
118 | 124 |
WKT, |
119 | 125 |
WKB, |
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/AbstractBinaryOperator.java | ||
---|---|---|
8 | 8 |
|
9 | 9 |
public abstract class AbstractBinaryOperator extends AbstractFunction implements BinaryOperator { |
10 | 10 |
|
11 |
protected AbstractBinaryOperator(String group, String name, String description) { |
|
12 |
super(group, name, Range.is(2), description, " {{oper1}} " + name + " oper2 "); |
|
11 |
protected AbstractBinaryOperator(String group, String name, String description, boolean isSQLCompatible) {
|
|
12 |
super(group, name, Range.is(2), description, " {{oper1}} " + name + " oper2 ", null, null, isSQLCompatible);
|
|
13 | 13 |
} |
14 | 14 |
|
15 |
protected AbstractBinaryOperator(String group, String name) { |
|
16 |
super(group, name, Range.is(2), null, " {{oper1}} " + name + " oper2 ");
|
|
15 |
protected AbstractBinaryOperator(String group, String name, boolean isSQLCompatible) {
|
|
16 |
this(group, name, null, isSQLCompatible);
|
|
17 | 17 |
} |
18 | 18 |
|
19 | 19 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_NEGATE; |
|
3 | 4 |
import org.gvsig.expressionevaluator.Function; |
4 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
5 | 6 |
|
6 | 7 |
|
7 | 8 |
public class NegOperator extends AbstractUnaryOperator { |
8 | 9 |
|
9 |
public static final String NAME = "NEGATE"; |
|
10 |
|
|
11 | 10 |
public NegOperator() { |
12 |
super(Function.GROUP_NUMERIC,NAME);
|
|
11 |
super(Function.GROUP_NUMERIC, OPERATOR_NEGATE, true);
|
|
13 | 12 |
} |
14 | 13 |
|
15 | 14 |
@Override |
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_GT; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class GtOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = ">"; |
|
11 |
|
|
12 | 11 |
public GtOperator() { |
13 |
super(Function.GROUP_BOOLEAN,NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_GT, true);
|
|
14 | 13 |
} |
15 | 14 |
|
16 | 15 |
@Override |
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/IsOperator.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_IS; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class IsOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = "IS"; |
|
11 |
|
|
12 | 11 |
public IsOperator() { |
13 |
super(Function.GROUP_BOOLEAN, NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_IS, true);
|
|
14 | 13 |
} |
15 | 14 |
|
16 | 15 |
@Override |
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_LT; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class LtOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = "<"; |
|
11 |
|
|
12 | 11 |
public LtOperator() { |
13 |
super(Function.GROUP_BOOLEAN,NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_LT, true);
|
|
14 | 13 |
} |
15 | 14 |
|
16 | 15 |
@Override |
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/ModOperator.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_MOD; |
|
3 | 4 |
import org.gvsig.expressionevaluator.Function; |
4 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
5 | 6 |
|
6 | 7 |
public class ModOperator extends AbstractBinaryOperator { |
7 | 8 |
|
8 |
public static final String NAME = "%"; |
|
9 |
|
|
10 | 9 |
public ModOperator() { |
11 |
super(Function.GROUP_NUMERIC, NAME);
|
|
10 |
super(Function.GROUP_NUMERIC, OPERATOR_MOD, false);
|
|
12 | 11 |
} |
13 | 12 |
|
14 | 13 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_OR; |
|
3 | 4 |
import org.gvsig.expressionevaluator.Function; |
4 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
5 | 6 |
|
6 | 7 |
public class OrOperator extends AbstractBinaryOperator { |
7 | 8 |
|
8 |
public static final String NAME = "OR"; |
|
9 |
|
|
10 | 9 |
public OrOperator() { |
11 |
super(Function.GROUP_BOOLEAN,NAME); |
|
12 |
// this.addAlias("||"); |
|
10 |
super(Function.GROUP_BOOLEAN, OPERATOR_OR, true); |
|
13 | 11 |
} |
14 | 12 |
|
15 | 13 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 | 3 |
import org.gvsig.expressionevaluator.Code; |
4 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_DIV; |
|
4 | 5 |
import org.gvsig.expressionevaluator.Function; |
5 | 6 |
import org.gvsig.expressionevaluator.Interpreter; |
6 | 7 |
import org.gvsig.expressionevaluator.Optimizer; |
... | ... | |
9 | 10 |
extends AbstractBinaryOperator |
10 | 11 |
implements Optimizer.FunctionOptimizer |
11 | 12 |
{ |
12 |
public static final String NAME = "/"; |
|
13 | 13 |
|
14 | 14 |
public DivOperator() { |
15 |
super(Function.GROUP_NUMERIC, NAME);
|
|
15 |
super(Function.GROUP_NUMERIC, OPERATOR_DIV, true);
|
|
16 | 16 |
} |
17 | 17 |
|
18 | 18 |
@Override |
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/AbstractUnaryOperator.java | ||
---|---|---|
7 | 7 |
|
8 | 8 |
public abstract class AbstractUnaryOperator extends AbstractFunction implements UnaryOperator { |
9 | 9 |
|
10 |
protected AbstractUnaryOperator(String group, String name, String description) { |
|
11 |
super(group, name, Range.is(1), description, name + " {{oper}} "); |
|
10 |
protected AbstractUnaryOperator(String group, String name, String description, boolean sqlCompatible) {
|
|
11 |
super(group, name, Range.is(1), description, name + " {{oper}} ", null, null, sqlCompatible);
|
|
12 | 12 |
} |
13 | 13 |
|
14 |
protected AbstractUnaryOperator(String group, String name) { |
|
15 |
super(group, name, Range.is(1), null, name + " {{oper}} ");
|
|
14 |
protected AbstractUnaryOperator(String group, String name, boolean sqlCompatible) {
|
|
15 |
this(group, name, null, sqlCompatible);
|
|
16 | 16 |
} |
17 | 17 |
|
18 | 18 |
@Override |
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 | ||
---|---|---|
4 | 4 |
import org.gvsig.expressionevaluator.Code; |
5 | 5 |
import org.gvsig.expressionevaluator.Code.Caller; |
6 | 6 |
import org.gvsig.expressionevaluator.Code.Constant; |
7 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
|
8 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_ADD; |
|
7 | 9 |
import org.gvsig.expressionevaluator.ExpressionRuntimeException; |
8 | 10 |
import org.gvsig.expressionevaluator.Function; |
9 | 11 |
import org.gvsig.expressionevaluator.Interpreter; |
... | ... | |
16 | 18 |
implements FunctionOptimizer |
17 | 19 |
{ |
18 | 20 |
|
19 |
public static final String NAME = "+"; |
|
20 | 21 |
|
21 | 22 |
public AddOperator() { |
22 |
super(Function.GROUP_NUMERIC, NAME);
|
|
23 |
super(Function.GROUP_NUMERIC, OPERATOR_ADD, true);
|
|
23 | 24 |
} |
24 | 25 |
|
25 | 26 |
@Override |
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 | ||
---|---|---|
3 | 3 |
import java.util.Objects; |
4 | 4 |
import java.util.regex.Matcher; |
5 | 5 |
import java.util.regex.Pattern; |
6 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_REGEXP; |
|
6 | 7 |
import org.gvsig.expressionevaluator.Function; |
7 | 8 |
import org.gvsig.expressionevaluator.Interpreter; |
8 | 9 |
|
9 | 10 |
public class RegExpOperator extends AbstractBinaryOperator { |
10 | 11 |
|
11 |
public static final String NAME = "~"; |
|
12 |
|
|
13 | 12 |
public RegExpOperator() { |
14 |
super(Function.GROUP_BOOLEAN, NAME);
|
|
13 |
super(Function.GROUP_BOOLEAN, OPERATOR_REGEXP, false);
|
|
15 | 14 |
} |
16 | 15 |
|
17 | 16 |
@Override |
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_GE; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class GeOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = ">="; |
|
11 |
|
|
12 | 11 |
public GeOperator() { |
13 |
super(Function.GROUP_BOOLEAN,NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_GE, true);
|
|
14 | 13 |
} |
15 | 14 |
|
16 | 15 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 | 3 |
import org.gvsig.expressionevaluator.Code; |
4 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_MULT; |
|
4 | 5 |
import org.gvsig.expressionevaluator.Function; |
5 | 6 |
import org.gvsig.expressionevaluator.Interpreter; |
6 | 7 |
import org.gvsig.expressionevaluator.Optimizer; |
... | ... | |
10 | 11 |
implements Optimizer.FunctionOptimizer |
11 | 12 |
{ |
12 | 13 |
|
13 |
public static final String NAME = "*"; |
|
14 |
|
|
15 | 14 |
public MulOperator() { |
16 |
super(Function.GROUP_NUMERIC, NAME);
|
|
15 |
super(Function.GROUP_NUMERIC, OPERATOR_MULT, true);
|
|
17 | 16 |
} |
18 | 17 |
|
19 | 18 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 | 3 |
import org.gvsig.expressionevaluator.Code; |
4 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_SUBST; |
|
4 | 5 |
import org.gvsig.expressionevaluator.Function; |
5 | 6 |
import org.gvsig.expressionevaluator.Interpreter; |
6 | 7 |
import org.gvsig.expressionevaluator.Optimizer; |
... | ... | |
10 | 11 |
extends AbstractBinaryOperator |
11 | 12 |
implements FunctionOptimizer |
12 | 13 |
{ |
13 |
public static final String NAME = "-"; |
|
14 |
|
|
14 |
|
|
15 | 15 |
public SubstOperator() { |
16 |
super(Function.GROUP_NUMERIC,NAME);
|
|
16 |
super(Function.GROUP_NUMERIC, OPERATOR_SUBST, true);
|
|
17 | 17 |
} |
18 | 18 |
|
19 | 19 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_NOT; |
|
3 | 4 |
import org.gvsig.expressionevaluator.Function; |
4 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
5 | 6 |
|
6 | 7 |
|
7 | 8 |
public class NotOperator extends AbstractUnaryOperator { |
8 | 9 |
|
9 |
public static final String NAME = "NOT"; |
|
10 |
|
|
11 | 10 |
public NotOperator() { |
12 |
super(Function.GROUP_BOOLEAN,NAME);
|
|
11 |
super(Function.GROUP_BOOLEAN, OPERATOR_NOT, true);
|
|
13 | 12 |
this.addAlias("!"); |
14 | 13 |
} |
15 | 14 |
|
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_LE; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class LeOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = "<="; |
|
11 |
|
|
12 | 11 |
public LeOperator() { |
13 |
super(Function.GROUP_BOOLEAN,NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_LE, true);
|
|
14 | 13 |
} |
15 | 14 |
|
16 | 15 |
@Override |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_AND; |
|
3 | 4 |
import org.gvsig.expressionevaluator.Function; |
4 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
5 | 6 |
|
6 | 7 |
public class AndOperator extends AbstractBinaryOperator { |
7 | 8 |
|
8 |
public static final String NAME = "AND"; |
|
9 |
|
|
10 | 9 |
public AndOperator() { |
11 |
super(Function.GROUP_BOOLEAN, NAME); |
|
12 |
this.addAlias("&&"); |
|
10 |
super(Function.GROUP_BOOLEAN, OPERATOR_AND, true); |
|
13 | 11 |
} |
14 | 12 |
|
15 | 13 |
@Override |
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_NE; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class NeOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = "<>"; |
|
11 |
|
|
12 | 11 |
public NeOperator() { |
13 |
super(Function.GROUP_BOOLEAN,NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_NE, true);
|
|
14 | 13 |
this.addAlias("!="); |
15 | 14 |
} |
16 | 15 |
|
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.ObjectUtils; |
4 | 4 |
import org.apache.commons.math.util.MathUtils; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_EQ; |
|
5 | 6 |
import org.gvsig.expressionevaluator.Function; |
6 | 7 |
import org.gvsig.expressionevaluator.Interpreter; |
7 | 8 |
|
8 | 9 |
public class EqOperator extends AbstractBinaryOperator { |
9 | 10 |
|
10 |
public static final String NAME = "="; |
|
11 |
|
|
12 | 11 |
public EqOperator() { |
13 |
super(Function.GROUP_BOOLEAN, NAME);
|
|
12 |
super(Function.GROUP_BOOLEAN, OPERATOR_EQ, true);
|
|
14 | 13 |
} |
15 | 14 |
|
16 | 15 |
@Override |
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 | ||
---|---|---|
5 | 5 |
import org.gvsig.expressionevaluator.Code; |
6 | 6 |
import org.gvsig.expressionevaluator.Code.Caller; |
7 | 7 |
import org.gvsig.expressionevaluator.Code.Constant; |
8 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_CONCAT; |
|
8 | 9 |
import org.gvsig.expressionevaluator.Function; |
9 | 10 |
import org.gvsig.expressionevaluator.Interpreter; |
10 | 11 |
import org.gvsig.expressionevaluator.Optimizer; |
... | ... | |
15 | 16 |
implements FunctionOptimizer |
16 | 17 |
{ |
17 | 18 |
|
18 |
public static final String NAME = "||"; |
|
19 |
|
|
20 | 19 |
public ConcatOperator() { |
21 |
super(Function.GROUP_STRING, NAME);
|
|
20 |
super(Function.GROUP_STRING, OPERATOR_CONCAT, true);
|
|
22 | 21 |
} |
23 | 22 |
|
24 | 23 |
@Override |
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/spatial/AndAndOperator.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_AND2; |
|
3 | 4 |
import org.gvsig.expressionevaluator.impl.function.operator.*; |
4 | 5 |
import org.gvsig.expressionevaluator.Function; |
5 | 6 |
import org.gvsig.expressionevaluator.Interpreter; |
... | ... | |
8 | 9 |
|
9 | 10 |
public class AndAndOperator extends AbstractBinaryOperator { |
10 | 11 |
|
11 |
public static final String NAME = "&&"; |
|
12 |
|
|
13 | 12 |
public AndAndOperator() { |
14 |
super(Function.GROUP_OGC, NAME);
|
|
13 |
super(Function.GROUP_OGC, OPERATOR_AND2, true);
|
|
15 | 14 |
} |
16 | 15 |
|
17 | 16 |
@Override |
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/predicate/LikeOperator.java | ||
---|---|---|
5 | 5 |
import java.util.Map; |
6 | 6 |
import java.util.regex.Matcher; |
7 | 7 |
import java.util.regex.Pattern; |
8 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_LIKE; |
|
8 | 9 |
import org.gvsig.expressionevaluator.Function; |
9 | 10 |
import org.gvsig.expressionevaluator.Interpreter; |
10 | 11 |
import org.gvsig.expressionevaluator.impl.function.operator.AbstractBinaryOperator; |
... | ... | |
22 | 23 |
protected static Map<String,Pattern> patterns = new HashMap<>(); |
23 | 24 |
|
24 | 25 |
|
25 |
public static final String NAME = "LIKE"; |
|
26 |
|
|
27 | 26 |
public LikeOperator() { |
28 |
super(Function.GROUP_STRING, NAME);
|
|
27 |
super(Function.GROUP_STRING, OPERATOR_LIKE, true);
|
|
29 | 28 |
} |
30 | 29 |
|
31 | 30 |
@Override |
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/predicate/IlikeOperator.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.predicate; |
2 | 2 |
|
3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_ILIKE; |
|
3 | 4 |
import org.gvsig.expressionevaluator.Function; |
4 | 5 |
import org.gvsig.expressionevaluator.Interpreter; |
5 | 6 |
import org.gvsig.expressionevaluator.impl.function.operator.AbstractBinaryOperator; |
6 | 7 |
|
7 | 8 |
public class IlikeOperator extends AbstractBinaryOperator { |
8 | 9 |
|
9 |
public static final String NAME = "ILIKE"; |
|
10 |
|
|
11 | 10 |
public IlikeOperator() { |
12 |
super(Function.GROUP_STRING, NAME);
|
|
11 |
super(Function.GROUP_STRING, OPERATOR_ILIKE, true);
|
|
13 | 12 |
} |
14 | 13 |
|
15 | 14 |
@Override |
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/numeric/IncrFunction.java | ||
---|---|---|
26 | 26 |
|
27 | 27 |
@Override |
28 | 28 |
public boolean allowConstantFolding() { |
29 |
return true;
|
|
29 |
return false;
|
|
30 | 30 |
} |
31 | 31 |
|
32 | 32 |
@Override |
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/numeric/DecrFunction.java | ||
---|---|---|
24 | 24 |
|
25 | 25 |
@Override |
26 | 26 |
public boolean allowConstantFolding() { |
27 |
return true;
|
|
27 |
return false;
|
|
28 | 28 |
} |
29 | 29 |
|
30 | 30 |
@Override |
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/RangeFunction.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.Iterator; |
4 | 4 |
import org.apache.commons.lang3.Range; |
5 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_RANGE; |
|
5 | 6 |
import org.gvsig.expressionevaluator.ExpressionRuntimeException; |
6 | 7 |
import org.gvsig.expressionevaluator.Function; |
7 | 8 |
import org.gvsig.expressionevaluator.Interpreter; |
... | ... | |
9 | 10 |
|
10 | 11 |
public class RangeFunction extends AbstractFunction { |
11 | 12 |
|
12 |
public static final String NAME = "RANGE"; |
|
13 |
|
|
14 | 13 |
public RangeFunction() { |
15 | 14 |
super( |
16 | 15 |
Function.GROUP_PROGRAMMING, |
17 |
NAME,
|
|
16 |
FUNCTION_RANGE,
|
|
18 | 17 |
Range.between(1,3), |
19 | 18 |
"", |
20 |
NAME+"({{start}}, stop, step)",
|
|
19 |
FUNCTION_RANGE+"({{start}}, stop, step)",
|
|
21 | 20 |
null, |
22 | 21 |
"Iterable", |
23 |
true
|
|
22 |
false
|
|
24 | 23 |
); |
25 | 24 |
} |
26 | 25 |
|
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/DefaultInterpreter.java | ||
---|---|---|
218 | 218 |
} |
219 | 219 |
caller.function(function); |
220 | 220 |
} |
221 |
if( !function.isSQLCompatible() && this.sqlCompatible ) { |
|
222 |
throw new ExpressionRuntimeException(code, I18N.Cant_use_non_SQL_compatible_functions(function.name())); |
|
223 |
} |
|
221 |
// if( !function.isSQLCompatible() && this.sqlCompatible ) {
|
|
222 |
// throw new ExpressionRuntimeException(code, I18N.Cant_use_non_SQL_compatible_functions(function.name()));
|
|
223 |
// }
|
|
224 | 224 |
Codes args = caller.parameters(); |
225 | 225 |
try { |
226 | 226 |
switch( caller.type() ) { |
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/DefaultCodeBuilder.java | ||
---|---|---|
19 | 19 |
import org.gvsig.expressionevaluator.CodeBuilder; |
20 | 20 |
import org.gvsig.expressionevaluator.Codes; |
21 | 21 |
import org.gvsig.expressionevaluator.ExpressionBuilder; |
22 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_ADD; |
|
23 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_AND; |
|
24 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_CONCAT; |
|
25 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_DIV; |
|
26 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_EQ; |
|
27 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_GE; |
|
28 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_GT; |
|
29 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_ILIKE; |
|
30 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_IS; |
|
31 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_LE; |
|
32 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_LIKE; |
|
33 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_LT; |
|
34 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_MOD; |
|
35 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_MULT; |
|
36 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_NE; |
|
37 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_NEGATE; |
|
38 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_NOT; |
|
39 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_OR; |
|
40 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_REGEXP; |
|
41 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_SUBST; |
|
22 | 42 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Value; |
23 | 43 |
import org.gvsig.expressionevaluator.ExpressionUtils; |
24 | 44 |
import org.gvsig.expressionevaluator.Formatter; |
25 | 45 |
import org.gvsig.expressionevaluator.Function; |
26 | 46 |
import org.gvsig.expressionevaluator.Interpreter; |
27 | 47 |
import org.gvsig.expressionevaluator.SymbolTable; |
28 |
import org.gvsig.expressionevaluator.impl.function.operator.AddOperator; |
|
29 |
import org.gvsig.expressionevaluator.impl.function.operator.AndOperator; |
|
30 |
import org.gvsig.expressionevaluator.impl.function.operator.ConcatOperator; |
|
31 |
import org.gvsig.expressionevaluator.impl.function.operator.DivOperator; |
|
32 |
import org.gvsig.expressionevaluator.impl.function.operator.EqOperator; |
|
33 |
import org.gvsig.expressionevaluator.impl.function.operator.GeOperator; |
|
34 |
import org.gvsig.expressionevaluator.impl.function.operator.GtOperator; |
|
35 |
import org.gvsig.expressionevaluator.impl.function.operator.IsOperator; |
|
36 |
import org.gvsig.expressionevaluator.impl.function.operator.LeOperator; |
|
37 |
import org.gvsig.expressionevaluator.impl.function.operator.LtOperator; |
|
38 |
import org.gvsig.expressionevaluator.impl.function.operator.ModOperator; |
|
39 |
import org.gvsig.expressionevaluator.impl.function.operator.MulOperator; |
|
40 |
import org.gvsig.expressionevaluator.impl.function.operator.NeOperator; |
|
41 |
import org.gvsig.expressionevaluator.impl.function.operator.NegOperator; |
|
42 |
import org.gvsig.expressionevaluator.impl.function.operator.NotOperator; |
|
43 |
import org.gvsig.expressionevaluator.impl.function.operator.OrOperator; |
|
44 |
import org.gvsig.expressionevaluator.impl.function.operator.RegExpOperator; |
|
45 |
import org.gvsig.expressionevaluator.impl.function.operator.SubstOperator; |
|
46 |
import org.gvsig.expressionevaluator.impl.function.predicate.IlikeOperator; |
|
47 |
import org.gvsig.expressionevaluator.impl.function.predicate.LikeOperator; |
|
48 | 48 |
import org.gvsig.expressionevaluator.impl.function.programming.GetattrFunction; |
49 | 49 |
import org.gvsig.expressionevaluator.impl.function.programming.GetitemFunction; |
50 | 50 |
import org.gvsig.fmap.geom.Geometry; |
... | ... | |
417 | 417 |
switch(this.type) { |
418 | 418 |
case UNARY_OPERATOR: |
419 | 419 |
return builder.function( |
420 |
NegOperator.NAME.equalsIgnoreCase(this.name())?
|
|
420 |
OPERATOR_NEGATE.equalsIgnoreCase(this.name())?
|
|
421 | 421 |
"-" : |
422 | 422 |
this.name(), |
423 | 423 |
this.parameters().get(0).toValue(builder) |
... | ... | |
455 | 455 |
StringBuilder builder = new StringBuilder(); |
456 | 456 |
switch(this.type) { |
457 | 457 |
case UNARY_OPERATOR: |
458 |
if( NegOperator.NAME.equalsIgnoreCase(this.name()) ) {
|
|
458 |
if( OPERATOR_NEGATE.equalsIgnoreCase(this.name()) ) {
|
|
459 | 459 |
builder.append("-"); |
460 | 460 |
} else { |
461 | 461 |
builder.append(this.name()); |
... | ... | |
617 | 617 |
|
618 | 618 |
@Override |
619 | 619 |
public Code not(Code op1) { |
620 |
return operator(NotOperator.NAME, op1);
|
|
620 |
return operator(OPERATOR_NOT, op1);
|
|
621 | 621 |
} |
622 | 622 |
|
623 | 623 |
@Override |
624 | 624 |
public Code negate(Code op1) { |
625 |
return operator(NegOperator.NAME, op1);
|
|
625 |
return operator(OPERATOR_NEGATE, op1);
|
|
626 | 626 |
} |
627 | 627 |
|
628 | 628 |
@Override |
629 | 629 |
public Code concat(Code op1, Code op2) { |
630 |
return operator(ConcatOperator.NAME, op1, op2);
|
|
630 |
return operator(OPERATOR_CONCAT, op1, op2);
|
|
631 | 631 |
} |
632 | 632 |
|
633 | 633 |
@Override |
634 | 634 |
public Code add(Code op1, Code op2) { |
635 |
return operator(AddOperator.NAME, op1, op2);
|
|
635 |
return operator(OPERATOR_ADD, op1, op2);
|
|
636 | 636 |
} |
637 | 637 |
|
638 | 638 |
@Override |
639 | 639 |
public Code subst(Code op1, Code op2) { |
640 |
return operator(SubstOperator.NAME, op1, op2);
|
|
640 |
return operator(OPERATOR_SUBST, op1, op2);
|
|
641 | 641 |
} |
642 | 642 |
|
643 | 643 |
@Override |
644 | 644 |
public Code mult(Code op1, Code op2) { |
645 |
return operator(MulOperator.NAME, op1, op2);
|
|
645 |
return operator(OPERATOR_MULT, op1, op2);
|
|
646 | 646 |
} |
647 | 647 |
|
648 | 648 |
@Override |
649 | 649 |
public Code div(Code op1, Code op2) { |
650 |
return operator(DivOperator.NAME, op1, op2);
|
|
650 |
return operator(OPERATOR_DIV, op1, op2);
|
|
651 | 651 |
} |
652 | 652 |
|
653 | 653 |
@Override |
654 | 654 |
public Code mod(Code op1, Code op2) { |
655 |
return operator(ModOperator.NAME, op1, op2);
|
|
655 |
return operator(OPERATOR_MOD, op1, op2);
|
|
656 | 656 |
} |
657 | 657 |
|
658 | 658 |
@Override |
659 | 659 |
public Code or(Code op1, Code op2) { |
660 |
return operator(OrOperator.NAME, op1, op2);
|
|
660 |
return operator(OPERATOR_OR, op1, op2);
|
|
661 | 661 |
} |
662 | 662 |
|
663 | 663 |
@Override |
664 | 664 |
public Code and(Code op1, Code op2) { |
665 |
return operator(AndOperator.NAME, op1, op2);
|
|
665 |
return operator(OPERATOR_AND, op1, op2);
|
|
666 | 666 |
} |
667 | 667 |
|
668 | 668 |
@Override |
669 | 669 |
public Code like(Code op1, Code op2) { |
670 |
return operator(LikeOperator.NAME, op1, op2);
|
|
670 |
return operator(OPERATOR_LIKE, op1, op2);
|
|
671 | 671 |
} |
672 | 672 |
|
673 | 673 |
@Override |
674 | 674 |
public Code ilike(Code op1, Code op2) { |
675 |
return operator(IlikeOperator.NAME, op1, op2);
|
|
675 |
return operator(OPERATOR_ILIKE, op1, op2);
|
|
676 | 676 |
} |
677 | 677 |
|
678 | 678 |
@Override |
679 | 679 |
public Code regexp(Code op1, Code op2) { |
680 |
return operator(RegExpOperator.NAME, op1, op2);
|
|
680 |
return operator(OPERATOR_REGEXP, op1, op2);
|
|
681 | 681 |
} |
682 | 682 |
|
683 | 683 |
@Override |
684 | 684 |
public Code lt(Code op1, Code op2) { |
685 |
return operator(LtOperator.NAME, op1, op2);
|
|
685 |
return operator(OPERATOR_LT, op1, op2);
|
|
686 | 686 |
} |
687 | 687 |
|
688 | 688 |
@Override |
689 | 689 |
public Code gt(Code op1, Code op2) { |
690 |
return operator(GtOperator.NAME, op1, op2);
|
|
690 |
return operator(OPERATOR_GT, op1, op2);
|
|
691 | 691 |
} |
692 | 692 |
|
693 | 693 |
@Override |
694 | 694 |
public Code le(Code op1, Code op2) { |
695 |
return operator(LeOperator.NAME, op1, op2);
|
|
695 |
return operator(OPERATOR_LE, op1, op2);
|
|
696 | 696 |
} |
697 | 697 |
|
698 | 698 |
@Override |
699 | 699 |
public Code ge(Code op1, Code op2) { |
700 |
return operator(GeOperator.NAME, op1, op2);
|
|
700 |
return operator(OPERATOR_GE, op1, op2);
|
|
701 | 701 |
} |
702 | 702 |
|
703 | 703 |
@Override |
704 | 704 |
public Code eq(Code op1, Code op2) { |
705 |
return operator(EqOperator.NAME, op1, op2);
|
|
705 |
return operator(OPERATOR_EQ, op1, op2);
|
|
706 | 706 |
} |
707 | 707 |
|
708 | 708 |
@Override |
709 | 709 |
public Code ne(Code op1, Code op2) { |
710 |
return operator(NeOperator.NAME, op1, op2);
|
|
710 |
return operator(OPERATOR_NE, op1, op2);
|
|
711 | 711 |
} |
712 | 712 |
|
713 | 713 |
@Override |
714 | 714 |
public Code is(Code op1, Code op2) { |
715 |
return operator(IsOperator.NAME, op1, op2);
|
|
715 |
return operator(OPERATOR_IS, op1, op2);
|
|
716 | 716 |
} |
717 | 717 |
|
718 | 718 |
@Override |
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/grammars/BasicGrammarFactory.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.grammars; |
2 | 2 |
|
3 | 3 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.FUNCTION_CAST; |
4 |
import static org.gvsig.expressionevaluator.ExpressionBuilder.OPERATOR_REGEXP; |
|
4 | 5 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
5 | 6 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
6 | 7 |
import org.gvsig.expressionevaluator.Grammar; |
... | ... | |
15 | 16 |
import org.gvsig.expressionevaluator.impl.function.programming.ReturnFunction; |
16 | 17 |
import org.gvsig.expressionevaluator.impl.function.programming.TryFunction; |
17 | 18 |
import org.gvsig.expressionevaluator.impl.function.programming.WhileFunction; |
18 |
import org.gvsig.expressionevaluator.impl.function.typeconversion.CastFunction; |
|
19 | 19 |
import org.gvsig.expressionevaluator.spi.AbstractGrammarFactory; |
20 | 20 |
|
21 | 21 |
/** |
... | ... | |
130 | 130 |
.addRuleOnFalse(stmt.require_expression("PATTERN")) |
131 | 131 |
); |
132 | 132 |
stmt.code( |
133 |
RegExpOperator.NAME,
|
|
133 |
OPERATOR_REGEXP,
|
|
134 | 134 |
stmt.args_names("VALUE","PATTERN") |
135 | 135 |
); |
136 | 136 |
theGrammar.addStatement(stmt); |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/AbstractAutomaticExpressionChecker.java | ||
---|---|---|
17 | 17 |
import javax.swing.event.DocumentListener; |
18 | 18 |
import javax.swing.text.JTextComponent; |
19 | 19 |
import org.apache.commons.lang3.StringUtils; |
20 |
import org.apache.commons.lang3.mutable.Mutable; |
|
21 |
import org.apache.commons.lang3.mutable.MutableObject; |
|
22 |
import org.gvsig.expressionevaluator.Code; |
|
23 |
import org.gvsig.expressionevaluator.Code.Caller; |
|
24 |
import org.gvsig.expressionevaluator.Code.Identifier; |
|
20 | 25 |
import org.gvsig.expressionevaluator.Expression; |
21 | 26 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
22 | 27 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
23 | 28 |
import org.gvsig.expressionevaluator.ExpressionRuntimeException; |
24 | 29 |
import org.gvsig.expressionevaluator.ExpressionSyntaxException; |
30 |
import org.gvsig.expressionevaluator.Function; |
|
25 | 31 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
26 | 32 |
import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig; |
27 | 33 |
import org.gvsig.tools.ToolsLocator; |
34 |
import org.gvsig.tools.exception.BaseException; |
|
28 | 35 |
import org.gvsig.tools.i18n.I18nManager; |
29 | 36 |
import org.gvsig.tools.swing.api.ToolsSwingLocator; |
30 | 37 |
import org.gvsig.tools.swing.api.ToolsSwingManager; |
31 | 38 |
import org.gvsig.tools.swing.api.windowmanager.Dialog; |
32 | 39 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager; |
33 | 40 |
import org.gvsig.tools.swing.api.windowmanager.WindowManager_v2; |
41 |
import org.gvsig.tools.visitor.VisitCanceledException; |
|
42 |
import org.gvsig.tools.visitor.Visitor; |
|
34 | 43 |
|
35 | 44 |
/** |
36 | 45 |
* |
... | ... | |
173 | 182 |
this.setMessage(JOptionPane.ERROR_MESSAGE, "Syntax error in expression"); |
174 | 183 |
return; |
175 | 184 |
} |
176 |
expression.setSQLCompatible(this.config.isSQLCompatible()); |
|
185 |
final Mutable<String> theTip = new MutableObject<>(null); |
|
186 |
expression.setSQLCompatible(false); |
|
177 | 187 |
if (this.config.getPreviewSymbolTable() == null) { |
178 | 188 |
try { |
179 | 189 |
ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager(); |
... | ... | |
188 | 198 |
Object theValue = expression.execute(this.config.getPreviewSymbolTable()); |
189 | 199 |
this.setPreview(theValue); |
190 | 200 |
} catch (ExpressionRuntimeException ex) { |
191 |
this.setTip(ex.getTip());
|
|
201 |
theTip.setValue(ex.getTip());
|
|
192 | 202 |
this.setMessage(JOptionPane.ERROR_MESSAGE, "Runtime error. " + ex.getMessage()); |
193 | 203 |
} catch (Exception ex) { |
194 | 204 |
this.setMessage(JOptionPane.ERROR_MESSAGE, "Runtime error. " + ex.getMessage()); |
195 | 205 |
} |
196 | 206 |
} |
207 |
if( this.config.isSQLCompatible() ) { |
|
208 |
Code code = expression.getCode(); |
|
209 |
try { |
|
210 |
code.accept(new Visitor() { |
|
211 |
@Override |
|
212 |
public void visit(Object obj) throws VisitCanceledException, BaseException { |
|
213 |
Code code = (Code) obj; |
|
214 |
switch(code.code()) { |
|
215 |
case Code.CALLER: |
|
216 |
Function function = ((Caller)code).function(); |
|
217 |
if( function!=null && !function.isSQLCompatible() ) { |
|
218 |
theTip.setValue(I18N.Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(function.name())); |
|
219 |
} |
|
220 |
break; |
|
221 |
case Code.IDENTIFIER: |
|
222 |
if( config.getPreviewSymbolTable()!=null && |
|
223 |
!config.getPreviewSymbolTable().isSQLCompatible(((Identifier)code).name()) ) { |
|
224 |
theTip.setValue(I18N.Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(((Identifier)code).name())); |
|
225 |
} |
|
226 |
break; |
|
227 |
case Code.METHOD: |
|
228 |
theTip.setValue(I18N.Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(((Caller)code).name())); |
|
229 |
break; |
|
230 |
} |
|
231 |
} |
|
232 |
}); |
|
233 |
} catch (BaseException ex) { |
|
234 |
} |
|
235 |
} |
|
236 |
if( !StringUtils.isBlank(theTip.getValue()) ) { |
|
237 |
this.setTip(theTip.getValue()); |
|
238 |
} |
|
197 | 239 |
} |
198 | 240 |
|
199 | 241 |
protected boolean isTipEnabled() { |
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.swing/org.gvsig.expressionevaluator.swing.impl/src/main/java/org/gvsig/expressionevaluator/swing/impl/I18N.java | ||
---|---|---|
1 |
package org.gvsig.expressionevaluator.swing.impl; |
|
2 |
|
|
3 |
import org.apache.commons.lang3.Range; |
|
4 |
|
|
5 |
/** |
|
6 |
* |
|
7 |
* @author jjdelcerro |
|
8 |
*/ |
|
9 |
public class I18N { |
|
10 |
|
|
11 |
static String Avoid_the_use_of_functions_not_compatible_with_SQL_in_this_data_source(String name) { |
|
12 |
return String.format("Avoid the use of functions not compatible with SQL in this data source (%s).", name); |
|
13 |
} |
|
14 |
|
|
15 |
} |
Also available in: Unified diff