Revision 43521
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/Interpreter.java | ||
---|---|---|
3 | 3 |
public interface Interpreter { |
4 | 4 |
|
5 | 5 |
public void setSymbolTable(SymbolTable symbolTable); |
6 |
|
|
6 |
|
|
7 | 7 |
public SymbolTable getSymbolTable(); |
8 |
|
|
8 |
|
|
9 | 9 |
public Object run(Code code); |
10 |
|
|
11 |
public void link(Code code); |
|
12 |
|
|
13 |
public Double getAccuracy(); |
|
14 |
|
|
15 |
public void setAccuracy(Double accuracy); |
|
10 | 16 |
|
11 |
public void link(Code code);
|
|
17 |
public Code getCurrentCode();
|
|
12 | 18 |
} |
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/Function.java | ||
---|---|---|
5 | 5 |
|
6 | 6 |
public interface Function { |
7 | 7 |
|
8 |
public final String GROUP_NUMERIC = "Numeric"; |
|
9 |
public final String GROUP_STRING = "String"; |
|
10 |
public final String GROUP_DATETIME = "Datetime"; |
|
11 |
public final String GROUP_BOOLEAN = "Boolean"; |
|
12 |
public final String GROUP_OGC = "OGC"; |
|
13 |
|
|
8 | 14 |
public String group(); |
9 | 15 |
|
10 | 16 |
public String name(); |
... | ... | |
13 | 19 |
|
14 | 20 |
public String description(); |
15 | 21 |
|
22 |
public String template(); |
|
23 |
|
|
16 | 24 |
public String[] descriptionArgs(); |
17 | 25 |
|
18 |
public Object call(Object[] args) throws Exception; |
|
26 |
public Object call(Interpreter interpreter, Object[] args) throws Exception;
|
|
19 | 27 |
|
20 | 28 |
public void addAlias(String name); |
21 | 29 |
|
22 | 30 |
public List<String> alias(); |
31 |
|
|
32 |
public boolean isOperator(); |
|
23 | 33 |
} |
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/ExpressionEvaluatorLocator.java | ||
---|---|---|
1 |
package org.gvsig.expressionevaluator; |
|
2 |
|
|
3 |
import org.gvsig.tools.locator.AbstractLocator; |
|
4 |
import org.gvsig.tools.locator.LocatorException; |
|
5 |
|
|
6 |
|
|
7 |
public class ExpressionEvaluatorLocator extends AbstractLocator { |
|
8 |
|
|
9 |
private static final String LOCATOR_NAME = "ExpressionEvaluatorLocator"; |
|
10 |
|
|
11 |
public static final String MANAGER_NAME = "ExpressionEvaluatorManager"; |
|
12 |
|
|
13 |
private static final String MANAGER_DESCRIPTION = "ExpressionEvaluator of gvSIG"; |
|
14 |
|
|
15 |
/** |
|
16 |
* Unique instance. |
|
17 |
*/ |
|
18 |
private static final ExpressionEvaluatorLocator instance = new ExpressionEvaluatorLocator(); |
|
19 |
|
|
20 |
/** |
|
21 |
* Return the singleton instance. |
|
22 |
* |
|
23 |
* @return the singleton instance |
|
24 |
*/ |
|
25 |
public static ExpressionEvaluatorLocator getInstance() { |
|
26 |
return instance; |
|
27 |
} |
|
28 |
|
|
29 |
/** |
|
30 |
* Returns the Locator name. |
|
31 |
* |
|
32 |
* @return String containing the locator name. |
|
33 |
*/ |
|
34 |
@Override |
|
35 |
public String getLocatorName() { |
|
36 |
return LOCATOR_NAME; |
|
37 |
} |
|
38 |
|
|
39 |
public static ExpressionEvaluatorManager getManager() throws LocatorException { |
|
40 |
return (ExpressionEvaluatorManager) getInstance().get(MANAGER_NAME); |
|
41 |
} |
|
42 |
|
|
43 |
public static void registerManager(Class clazz) { |
|
44 |
getInstance().register(MANAGER_NAME, MANAGER_DESCRIPTION, clazz); |
|
45 |
} |
|
46 |
|
|
47 |
public static void registerDefaultManager(Class clazz) { |
|
48 |
getInstance().registerDefault(MANAGER_NAME, MANAGER_DESCRIPTION, clazz); |
|
49 |
} |
|
50 |
|
|
51 |
} |
|
0 | 52 |
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/ExpressionEvaluatorLibrary.java | ||
---|---|---|
20 | 20 |
|
21 | 21 |
@Override |
22 | 22 |
protected void doInitialize() throws LibraryException { |
23 |
// Do nothing |
|
24 | 23 |
} |
25 | 24 |
|
26 | 25 |
@Override |
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/Code.java | ||
---|---|---|
10 | 10 |
public static final int CONSTANT = 0; |
11 | 11 |
public static final int IDENTIFIER = 1; |
12 | 12 |
public static final int CALLER = 2; |
13 |
|
|
13 |
|
|
14 | 14 |
public interface Constant extends Code { |
15 | 15 |
|
16 | 16 |
public Object value(); |
... | ... | |
40 | 40 |
public static final int FUNCTION = 0; |
41 | 41 |
public static final int BINARY_OPERATOR = 1; |
42 | 42 |
public static final int UNARY_OPERATOR = 2; |
43 |
|
|
43 |
|
|
44 | 44 |
public String name(); |
45 | 45 |
|
46 |
public Object call(Object[] args) throws Exception; |
|
47 |
|
|
46 |
public Object call(Interpreter interpreter, Object[] args) throws Exception;
|
|
47 |
|
|
48 | 48 |
public Function function(); |
49 | 49 |
|
50 | 50 |
public Function function(Function function); |
... | ... | |
52 | 52 |
public Arguments args(); |
53 | 53 |
|
54 | 54 |
public int type(); |
55 |
|
|
55 | 56 |
} |
56 | 57 |
|
57 | 58 |
int code(); |
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/Compiler.java | ||
---|---|---|
6 | 6 |
public void setLexicalAnalyzer(LexicalAnalyzer lex); |
7 | 7 |
|
8 | 8 |
public void setCodeBuilder(CodeBuilder codeBuilder); |
9 |
|
|
9 |
|
|
10 | 10 |
public Code compileExpression(String expression); |
11 | 11 |
|
12 | 12 |
} |
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/spi/AbstractFunction.java | ||
---|---|---|
9 | 9 |
import org.gvsig.fmap.geom.primitive.Point; |
10 | 10 |
|
11 | 11 |
public abstract class AbstractFunction implements Function { |
12 |
|
|
12 |
|
|
13 | 13 |
private final String name; |
14 | 14 |
private final String group; |
15 | 15 |
private final Range argc; |
16 | 16 |
private final String description; |
17 | 17 |
private final String[] descriptionArgs; |
18 | 18 |
private List<String> alias; |
19 |
private String template; |
|
19 | 20 |
|
20 |
protected AbstractFunction(String group, String name, Range argc, String description, String[] descriptionArgs) { |
|
21 |
protected AbstractFunction(String group, String name, Range argc, String description, String template, String[] descriptionArgs) {
|
|
21 | 22 |
this.name = name; |
22 | 23 |
this.group = group; |
23 | 24 |
this.argc = argc; |
24 | 25 |
this.description = description; |
26 |
this.template = template; |
|
25 | 27 |
this.descriptionArgs = descriptionArgs; |
26 | 28 |
} |
27 | 29 |
|
30 |
protected AbstractFunction(String group, String name, Range argc, String desription, String template) { |
|
31 |
this(group, name, argc, desription, template, null); |
|
32 |
} |
|
33 |
|
|
28 | 34 |
protected AbstractFunction(String group, String name, Range argc) { |
29 |
this(group, name, argc, null, null); |
|
35 |
this(group, name, argc, null, null, null);
|
|
30 | 36 |
} |
31 | 37 |
|
32 | 38 |
@Override |
... | ... | |
67 | 73 |
return this.alias; |
68 | 74 |
} |
69 | 75 |
|
76 |
@Override |
|
77 |
public String template() { |
|
78 |
return this.template; |
|
79 |
} |
|
80 |
|
|
81 |
@Override |
|
82 |
public boolean isOperator() { |
|
83 |
return false; |
|
84 |
} |
|
85 |
|
|
70 | 86 |
protected int getInt(Object args[], int n) { |
71 | 87 |
if( args.length < n ) { |
72 | 88 |
throw new IllegalArgumentException("Required argument "+n+" and only found " + args.length +" arguments in call to '"+name()+"'."); |
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/ExpressionEvaluatorManager.java | ||
---|---|---|
1 | 1 |
|
2 | 2 |
package org.gvsig.expressionevaluator; |
3 | 3 |
|
4 |
import org.gvsig.fmap.dal.EvaluatorFactory; |
|
4 | 5 |
|
6 |
|
|
5 | 7 |
public interface ExpressionEvaluatorManager { |
6 | 8 |
|
7 | 9 |
public Object evaluate(String source); |
... | ... | |
23 | 25 |
public Compiler createCompiler(); |
24 | 26 |
|
25 | 27 |
public Interpreter createInterpreter(); |
28 |
|
|
29 |
public ExpressionEvaluator createEvaluator(String expression); |
|
26 | 30 |
|
27 |
} |
|
31 |
public ExpressionEvaluator createEvaluator(); |
|
32 |
|
|
33 |
public EvaluatorFactory createEvaluatorFactory(); |
|
34 |
|
|
35 |
public Double getAccuracy(); |
|
36 |
|
|
37 |
public void setAccuracy(Double accuracy); |
|
38 |
} |
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/SymbolTable.java | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.Iterator; |
4 | 4 |
|
5 |
public interface SymbolTable { |
|
5 |
public interface SymbolTable extends Iterable<Function>{
|
|
6 | 6 |
|
7 | 7 |
public Function function(String name); |
8 | 8 |
|
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/ExpressionEvaluator.java | ||
---|---|---|
1 |
package org.gvsig.expressionevaluator; |
|
2 |
|
|
3 |
import org.gvsig.tools.evaluator.EvaluatorWithDescriptions; |
|
4 |
|
|
5 |
public interface ExpressionEvaluator extends EvaluatorWithDescriptions { |
|
6 |
|
|
7 |
public void compile(); |
|
8 |
|
|
9 |
public Code getCode(); |
|
10 |
|
|
11 |
public Compiler getCompiler(); |
|
12 |
|
|
13 |
public void setCompiler(Compiler compiler); |
|
14 |
|
|
15 |
public Interpreter getInterpreter(); |
|
16 |
|
|
17 |
public void setInterpreter(Interpreter interpreter); |
|
18 |
|
|
19 |
public LexicalAnalyzer getLexer(); |
|
20 |
|
|
21 |
public void setLexer(LexicalAnalyzer lexer); |
|
22 |
|
|
23 |
public String getSource(); |
|
24 |
|
|
25 |
public void setSource(String source); |
|
26 |
|
|
27 |
public SymbolTable getSymbolTable(); |
|
28 |
|
|
29 |
public void setSymbolTable(SymbolTable symbolTable); |
|
30 |
|
|
31 |
public Double getAccuracy(); |
|
32 |
|
|
33 |
public void setAccuracy(Double accuracy); |
|
34 |
|
|
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/SQLSymbolTable.java | ||
---|---|---|
263 | 263 |
public Iterator<Function> iterfuncs() { |
264 | 264 |
return this.functions.values().iterator(); |
265 | 265 |
} |
266 |
|
|
267 |
@Override |
|
268 |
public Iterator<Function> iterator() { |
|
269 |
return iterfuncs(); |
|
270 |
} |
|
266 | 271 |
|
267 | 272 |
} |
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/DefaultCompiler.java | ||
---|---|---|
26 | 26 |
public void setCodeBuilder(CodeBuilder codeBuilder) { |
27 | 27 |
this.codeBuilder = codeBuilder; |
28 | 28 |
} |
29 |
|
|
30 | 29 |
@Override |
31 | 30 |
public Code compileExpression(String expression) { |
32 | 31 |
this.lexer.setSource(expression); |
... | ... | |
103 | 102 |
op2 = parse_sum(); |
104 | 103 |
op1 = codeBuilder.eq(op1, op2); |
105 | 104 |
break; |
106 |
case Token.PRED_IS: {
|
|
105 |
case Token.OP_NE:
|
|
107 | 106 |
lexer.next(); |
108 |
Token next = lexer.look(); |
|
109 |
if( next.getType() == Token.NOTNULL ) { |
|
110 |
op1 = codeBuilder.is(op1, codeBuilder.constant(null)); |
|
111 |
op1 = codeBuilder.not(op1); |
|
112 |
} else { |
|
113 |
op2 = parse_sum(); |
|
114 |
op1 = codeBuilder.is(op1, op2); |
|
107 |
op2 = parse_sum(); |
|
108 |
op1 = codeBuilder.ne(op1, op2); |
|
109 |
break; |
|
110 |
case Token.PRED_IS: { |
|
111 |
lexer.next(); |
|
112 |
Token next = lexer.look(); |
|
113 |
if( next.getType() == Token.NOTNULL ) { |
|
114 |
op1 = codeBuilder.is(op1, codeBuilder.constant(null)); |
|
115 |
op1 = codeBuilder.not(op1); |
|
116 |
} else { |
|
117 |
op2 = parse_sum(); |
|
118 |
op1 = codeBuilder.is(op1, op2); |
|
119 |
} |
|
115 | 120 |
} |
116 |
} |
|
117 |
break; |
|
121 |
break; |
|
118 | 122 |
case Token.ISNULL: |
119 | 123 |
lexer.next(); |
120 | 124 |
op1 = codeBuilder.is(op1, codeBuilder.constant(null)); |
121 | 125 |
break; |
122 |
case Token.OP_NE: |
|
123 |
lexer.next(); |
|
124 |
op2 = parse_sum(); |
|
125 |
op1 = codeBuilder.ne(op1, op2); |
|
126 |
break; |
|
127 | 126 |
case Token.PRED_LIKE: |
128 | 127 |
lexer.next(); |
129 | 128 |
op2 = parse_sum(); |
... | ... | |
194 | 193 |
Token token = lexer.look(); |
195 | 194 |
switch( token.getType() ) { |
196 | 195 |
case Token.PARENTHESIS_OPEN: { |
197 |
lexer.next(); |
|
198 |
Code value = parseExpression(); |
|
199 |
Token next = lexer.next(); |
|
200 |
if( next.getType() != Token.PARENTHESIS_CLOSE ) { |
|
201 |
throw new RuntimeException(); |
|
196 |
lexer.next(); |
|
197 |
Code value = parseExpression(); |
|
198 |
Token next = lexer.next(); |
|
199 |
if( next.getType() != Token.PARENTHESIS_CLOSE ) { |
|
200 |
throw new RuntimeException(); |
|
201 |
} |
|
202 |
return value; |
|
202 | 203 |
} |
203 |
return value; |
|
204 |
} |
|
205 | 204 |
case Token.IDENTIFIER: { |
206 |
lexer.next(); |
|
207 |
String id = (String) token.getLiteral(); |
|
208 |
Token next = lexer.look(); |
|
209 |
if( next.getType() == Token.PARENTHESIS_OPEN ) { |
|
210 | 205 |
lexer.next(); |
211 |
Arguments args = parseArgs(); |
|
212 |
next = lexer.next(); |
|
213 |
if( next.getType() != Token.PARENTHESIS_CLOSE ) { |
|
214 |
throw new RuntimeException("Expected ')'."); |
|
206 |
String id = (String) token.getLiteral(); |
|
207 |
Token next = lexer.look(); |
|
208 |
if( next.getType() == Token.PARENTHESIS_OPEN ) { |
|
209 |
lexer.next(); |
|
210 |
Arguments args = parseArgs(); |
|
211 |
next = lexer.next(); |
|
212 |
if( next.getType() != Token.PARENTHESIS_CLOSE ) { |
|
213 |
throw new RuntimeException("Expected ')'."); |
|
214 |
} |
|
215 |
return codeBuilder.function(id, args); |
|
216 |
} else { |
|
217 |
return codeBuilder.identifier(id); |
|
215 | 218 |
} |
216 |
return codeBuilder.function(id, args); |
|
217 |
} else { |
|
218 |
return codeBuilder.identifier(id); |
|
219 | 219 |
} |
220 |
} |
|
221 | 220 |
case Token.STRING_LITERAL: |
222 | 221 |
lexer.next(); |
223 | 222 |
return codeBuilder.constant(token.getValue()); |
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/DefaultExpressionEvaluatorManager.java | ||
---|---|---|
1 |
package org.gvsig.expressionevaluator.impl; |
|
2 |
|
|
3 |
import org.gvsig.expressionevaluator.Code; |
|
4 |
import org.gvsig.expressionevaluator.CodeBuilder; |
|
5 |
import org.gvsig.expressionevaluator.Compiler; |
|
6 |
import org.gvsig.expressionevaluator.ExpressionEvaluator; |
|
7 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
|
8 |
import org.gvsig.expressionevaluator.Interpreter; |
|
9 |
import org.gvsig.expressionevaluator.LexicalAnalyzer; |
|
10 |
import org.gvsig.expressionevaluator.MutableSymbolTable; |
|
11 |
import org.gvsig.expressionevaluator.SymbolTable; |
|
12 |
import org.gvsig.fmap.dal.EvaluatorFactory; |
|
13 |
import org.gvsig.integration.DefaultEvaluatorFactory; |
|
14 |
import org.gvsig.integration.DefaultExpressionEvaluator; |
|
15 |
|
|
16 |
|
|
17 |
public class DefaultExpressionEvaluatorManager implements ExpressionEvaluatorManager { |
|
18 |
|
|
19 |
private Double accuracy; |
|
20 |
|
|
21 |
public DefaultExpressionEvaluatorManager() { |
|
22 |
|
|
23 |
} |
|
24 |
|
|
25 |
@Override |
|
26 |
public Object evaluate(String source) { |
|
27 |
DefaultInterpreter interpreter = new DefaultInterpreter(); |
|
28 |
DefaultCompiler compiler = new DefaultCompiler(); |
|
29 |
Code code = compiler.compileExpression(source); |
|
30 |
return interpreter.run(code); |
|
31 |
} |
|
32 |
|
|
33 |
@Override |
|
34 |
public Object evaluate(SymbolTable symbolTable, String source) { |
|
35 |
DefaultInterpreter interpreter = new DefaultInterpreter(); |
|
36 |
DefaultCompiler compiler = new DefaultCompiler(); |
|
37 |
Code code = compiler.compileExpression(source); |
|
38 |
interpreter.setSymbolTable(symbolTable); |
|
39 |
return interpreter.run(code); |
|
40 |
} |
|
41 |
|
|
42 |
@Override |
|
43 |
public Object evaluate(SymbolTable symbolTable, Code code) { |
|
44 |
DefaultInterpreter interpreter = new DefaultInterpreter(); |
|
45 |
interpreter.setSymbolTable(symbolTable); |
|
46 |
return interpreter.run(code); |
|
47 |
} |
|
48 |
|
|
49 |
@Override |
|
50 |
public Code compile(String source) { |
|
51 |
DefaultCompiler compiler = new DefaultCompiler(); |
|
52 |
return compiler.compileExpression(source); |
|
53 |
} |
|
54 |
|
|
55 |
@Override |
|
56 |
public Code compile(LexicalAnalyzer lex, String source) { |
|
57 |
DefaultCompiler compiler = new DefaultCompiler(); |
|
58 |
compiler.setLexicalAnalyzer(lex); |
|
59 |
return compiler.compileExpression(source); |
|
60 |
} |
|
61 |
|
|
62 |
@Override |
|
63 |
public MutableSymbolTable createSymbolTable() { |
|
64 |
return new DefaultSymbolTable(); |
|
65 |
} |
|
66 |
|
|
67 |
@Override |
|
68 |
public LexicalAnalyzer createLexicalAnalyzer() { |
|
69 |
return new SQLLexicalAnalyzer(); |
|
70 |
} |
|
71 |
|
|
72 |
@Override |
|
73 |
public CodeBuilder createCodeBuilder() { |
|
74 |
return new DefaultCodeBuilder(); |
|
75 |
} |
|
76 |
|
|
77 |
@Override |
|
78 |
public Compiler createCompiler() { |
|
79 |
return new DefaultCompiler(); |
|
80 |
} |
|
81 |
|
|
82 |
@Override |
|
83 |
public Interpreter createInterpreter() { |
|
84 |
return new DefaultInterpreter(); |
|
85 |
} |
|
86 |
|
|
87 |
@Override |
|
88 |
public ExpressionEvaluator createEvaluator(String expression) { |
|
89 |
DefaultExpressionEvaluator e = new DefaultExpressionEvaluator(); |
|
90 |
e.setSource(expression); |
|
91 |
return e; |
|
92 |
} |
|
93 |
|
|
94 |
@Override |
|
95 |
public ExpressionEvaluator createEvaluator() { |
|
96 |
return new DefaultExpressionEvaluator(); |
|
97 |
} |
|
98 |
|
|
99 |
@Override |
|
100 |
public EvaluatorFactory createEvaluatorFactory() { |
|
101 |
return new DefaultEvaluatorFactory(); |
|
102 |
} |
|
103 |
|
|
104 |
@Override |
|
105 |
public Double getAccuracy() { |
|
106 |
return this.accuracy; |
|
107 |
} |
|
108 |
|
|
109 |
@Override |
|
110 |
public void setAccuracy(Double accuracy) { |
|
111 |
this.accuracy = accuracy; |
|
112 |
} |
|
113 |
|
|
114 |
} |
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/DefaultSymbolTable.java | ||
---|---|---|
90 | 90 |
public Iterator<Function> iterfuncs() { |
91 | 91 |
return this.functions.values().iterator(); |
92 | 92 |
} |
93 |
|
|
94 |
@Override |
|
95 |
public Iterator<Function> iterator() { |
|
96 |
return iterfuncs(); |
|
97 |
} |
|
93 | 98 |
|
94 | 99 |
} |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 |
import org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class AddOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public AddOperator() { |
6 |
super("+"); |
|
9 |
super(Function.GROUP_NUMERIC, "+");
|
|
7 | 10 |
} |
8 | 11 |
|
9 | 12 |
@Override |
10 |
public Object call(Object op1, Object op2) { |
|
13 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
11 | 14 |
int type = this.getType(op1, op2); |
12 | 15 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
13 | 16 |
double value = ((Number) op1).doubleValue() + ((Number) op2).doubleValue(); |
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 | ||
---|---|---|
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 GeOperator extends AbstractBinaryOperator { |
4 | 9 |
|
5 | 10 |
public GeOperator() { |
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."); |
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 |
import org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class MulOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public MulOperator() { |
6 |
super("*"); |
|
9 |
super(Function.GROUP_NUMERIC, "*");
|
|
7 | 10 |
} |
8 | 11 |
|
9 | 12 |
@Override |
10 |
public Object call(Object op1, Object op2) { |
|
13 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
11 | 14 |
int type = this.getType(op1, op2); |
12 | 15 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
13 | 16 |
double value = ((Number) op1).doubleValue() * ((Number) op2).doubleValue(); |
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/UnaryOperator.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 | 3 |
import org.gvsig.expressionevaluator.Function; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
|
5 | 6 |
|
6 | 7 |
public interface UnaryOperator extends Function { |
7 | 8 |
|
8 |
public Object call(Object op); |
|
9 |
public Object call(Interpreter interpreter, Object op);
|
|
9 | 10 |
} |
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 |
import org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class SubstOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public SubstOperator() { |
6 |
super("-"); |
|
9 |
super(Function.GROUP_NUMERIC,"-");
|
|
7 | 10 |
} |
8 | 11 |
|
9 | 12 |
@Override |
10 |
public Object call(Object op1, Object op2) { |
|
13 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
11 | 14 |
int type = this.getType(op1, op2); |
12 | 15 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
13 | 16 |
double value = ((Number) op1).doubleValue() - ((Number) op2).doubleValue(); |
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 | ||
---|---|---|
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 LeOperator extends AbstractBinaryOperator { |
4 | 9 |
|
5 | 10 |
public LeOperator() { |
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."); |
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 org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
3 | 5 |
|
6 |
|
|
4 | 7 |
public class NotOperator extends AbstractUnaryOperator { |
5 | 8 |
|
6 | 9 |
public NotOperator() { |
7 |
super("NOT"); |
|
10 |
super(Function.GROUP_BOOLEAN,"NOT");
|
|
8 | 11 |
this.addAlias("!"); |
9 | 12 |
} |
10 | 13 |
|
11 | 14 |
@Override |
12 |
public Object call(Object arg) { |
|
15 |
public Object call(Interpreter interpreter, Object arg) {
|
|
13 | 16 |
if( ! (arg instanceof Boolean) ) { |
14 | 17 |
throw new IllegalArgumentException("NOT operator require a boolean"); |
15 | 18 |
} |
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 | ||
---|---|---|
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."); |
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 org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class AndOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public AndOperator() { |
6 |
super("AND"); |
|
9 |
super(Function.GROUP_BOOLEAN, "AND");
|
|
7 | 10 |
this.addAlias("&&"); |
8 | 11 |
} |
9 | 12 |
|
10 | 13 |
@Override |
11 |
public Object call(Object op1, Object op2) { |
|
14 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
12 | 15 |
if( op1 instanceof Boolean && op2 instanceof Boolean ) { |
13 | 16 |
boolean value = ((Boolean) op1) && ((Boolean) op2); |
14 | 17 |
return value; |
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 | ||
---|---|---|
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 EqOperator extends AbstractBinaryOperator { |
4 | 9 |
|
5 | 10 |
public EqOperator() { |
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 |
throw new IllegalArgumentException("Types not allowed in '"+name()+"' operand.");
|
|
29 |
throw new IllegalArgumentException("Types not allowed in '" + name() + "' operand.");
|
|
16 | 30 |
} |
17 | 31 |
|
18 | 32 |
} |
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 | ||
---|---|---|
2 | 2 |
|
3 | 3 |
import java.util.Date; |
4 | 4 |
import org.apache.commons.lang3.Range; |
5 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 | 6 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
6 | 7 |
|
7 | 8 |
|
8 | 9 |
public abstract class AbstractBinaryOperator extends AbstractFunction implements BinaryOperator { |
9 | 10 |
|
10 |
protected AbstractBinaryOperator(String name, String description) { |
|
11 |
super("Operators", name, Range.is(2), description, null);
|
|
11 |
protected AbstractBinaryOperator(String group, String name, String description) {
|
|
12 |
super(group, name, Range.is(2), description, null);
|
|
12 | 13 |
} |
13 | 14 |
|
14 |
protected AbstractBinaryOperator(String name) { |
|
15 |
this(name, null); |
|
15 |
protected AbstractBinaryOperator(String group, String name) {
|
|
16 |
this(group, name, null);
|
|
16 | 17 |
} |
17 | 18 |
|
18 | 19 |
@Override |
19 |
public Object call(Object[] args) { |
|
20 |
return call(args[0], args[1]); |
|
20 |
public Object call(Interpreter interpreter, Object[] args) {
|
|
21 |
return call(interpreter, args[0], args[1]);
|
|
21 | 22 |
|
22 | 23 |
} |
24 |
|
|
25 |
@Override |
|
26 |
public boolean isOperator() { |
|
27 |
return true; |
|
28 |
} |
|
23 | 29 |
|
24 | 30 |
protected static final int TYPE_INT = 0b0000001; |
25 | 31 |
protected static final int TYPE_LONG = 0b0000010; |
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 | ||
---|---|---|
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 GtOperator extends AbstractBinaryOperator { |
4 | 9 |
|
5 | 10 |
public GtOperator() { |
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."); |
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 | ||
---|---|---|
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."); |
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 org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class ModOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public ModOperator() { |
6 |
super("%"); |
|
9 |
super(Function.GROUP_NUMERIC, "%");
|
|
7 | 10 |
} |
8 | 11 |
|
9 | 12 |
@Override |
10 |
public Object call(Object op1, Object op2) { |
|
13 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
11 | 14 |
int type = this.getType(op1, op2); |
12 | 15 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
13 | 16 |
double value = ((Number) op1).doubleValue() % ((Number) op2).doubleValue(); |
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 org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class OrOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public OrOperator() { |
6 |
super("OR"); |
|
9 |
super(Function.GROUP_BOOLEAN,"OR");
|
|
7 | 10 |
this.addAlias("||"); |
8 | 11 |
} |
9 | 12 |
|
10 | 13 |
@Override |
11 |
public Object call(Object op1, Object op2) { |
|
14 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
12 | 15 |
if( op1 instanceof Boolean && op2 instanceof Boolean ) { |
13 | 16 |
boolean value = ((Boolean) op1) || ((Boolean) op2); |
14 | 17 |
return value; |
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 | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
|
7 | 8 |
public abstract class AbstractUnaryOperator extends AbstractFunction implements UnaryOperator { |
8 | 9 |
|
9 |
protected AbstractUnaryOperator(String name, String description) { |
|
10 |
super("Operators", name, Range.is(1), description, null);
|
|
10 |
protected AbstractUnaryOperator(String group, String name, String description) {
|
|
11 |
super(group, name, Range.is(1), description, null);
|
|
11 | 12 |
} |
12 | 13 |
|
13 |
protected AbstractUnaryOperator(String name) { |
|
14 |
this(name, null); |
|
14 |
protected AbstractUnaryOperator(String group, String name) {
|
|
15 |
this(group, name, null);
|
|
15 | 16 |
} |
16 | 17 |
|
17 | 18 |
@Override |
18 |
public Object call(Object[] args) { |
|
19 |
return call(args[0]); |
|
19 |
public Object call(Interpreter interpreter, Object[] args) {
|
|
20 |
return call(interpreter, args[0]);
|
|
20 | 21 |
|
21 | 22 |
} |
22 | 23 |
|
24 |
@Override |
|
25 |
public boolean isOperator() { |
|
26 |
return true; |
|
27 |
} |
|
23 | 28 |
} |
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 |
import org.gvsig.expressionevaluator.Function; |
|
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
5 |
|
|
3 | 6 |
public class DivOperator extends AbstractBinaryOperator { |
4 | 7 |
|
5 | 8 |
public DivOperator() { |
6 |
super("/"); |
|
9 |
super(Function.GROUP_NUMERIC, "/");
|
|
7 | 10 |
} |
8 | 11 |
|
9 | 12 |
@Override |
10 |
public Object call(Object op1, Object op2) { |
|
13 |
public Object call(Interpreter interpreter, Object op1, Object op2) {
|
|
11 | 14 |
int type = this.getType(op1, op2); |
12 | 15 |
if( (type & TYPE_DOUBLE) == TYPE_DOUBLE ) { |
13 | 16 |
double value = ((Number) op1).doubleValue() / ((Number) op2).doubleValue(); |
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/BinaryOperator.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.operator; |
2 | 2 |
|
3 | 3 |
import org.gvsig.expressionevaluator.Function; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
|
5 | 6 |
|
6 | 7 |
public interface BinaryOperator extends Function { |
7 | 8 |
|
8 |
public Object call(Object op1, Object op2); |
|
9 |
public Object call(Interpreter interpreter, Object op1, Object op2); |
|
10 |
|
|
9 | 11 |
} |
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/STOverlapsFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STOverlapsFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
boolean r = getGeom(args, 0).overlaps(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STCoversFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STCoversFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
boolean r = getGeom(args, 0).covers(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STWithinFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STWithinFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
boolean r = getGeom(args, 0).within(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STYFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STYFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
double r = getPoint(args, 0).getY(); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STAreaFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STAreaFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
double r = getGeom(args, 0).area(); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STAsTextFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STAsTextFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
String r = getGeom(args, 0).convertToWKT(); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STGeometryNFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
import org.gvsig.fmap.geom.aggregate.Aggregate; |
... | ... | |
13 | 14 |
} |
14 | 15 |
|
15 | 16 |
@Override |
16 |
public Object call(Object[] args) throws Exception {
|
|
17 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
17 | 18 |
Geometry geom = getGeom(args, 0); |
18 | 19 |
if( geom instanceof Aggregate ) { |
19 | 20 |
Primitive r = ((Aggregate) geom).getPrimitiveAt(getInt(args, 1)); |
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/STEnvelopeFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
import org.gvsig.fmap.geom.primitive.Envelope; |
... | ... | |
12 | 13 |
} |
13 | 14 |
|
14 | 15 |
@Override |
15 |
public Object call(Object[] args) throws Exception {
|
|
16 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
16 | 17 |
Envelope r = getGeom(args, 0).getEnvelope(); |
17 | 18 |
return r; |
18 | 19 |
} |
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/STContainsFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STContainsFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
boolean r = getGeom(args, 0).contains(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STCoveredByFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STCoveredByFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
boolean r = getGeom(args, 0).coveredBy(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STIntersectsFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STIntersectsFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
boolean r = getGeom(args, 0).intersects(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STUnionFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
|
... | ... | |
11 | 12 |
} |
12 | 13 |
|
13 | 14 |
@Override |
14 |
public Object call(Object[] args) throws Exception {
|
|
15 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
15 | 16 |
Geometry r = getGeom(args, 0).union(getGeom(args, 1)); |
16 | 17 |
return r; |
17 | 18 |
} |
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/STDistanceFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
|
6 | 7 |
public class STDistanceFunction extends AbstractFunction { |
... | ... | |
10 | 11 |
} |
11 | 12 |
|
12 | 13 |
@Override |
13 |
public Object call(Object[] args) throws Exception {
|
|
14 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
14 | 15 |
double r = getGeom(args, 0).distance(getGeom(args, 1)); |
15 | 16 |
return r; |
16 | 17 |
} |
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/STIsValidFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
|
... | ... | |
11 | 12 |
} |
12 | 13 |
|
13 | 14 |
@Override |
14 |
public Object call(Object[] args) throws Exception {
|
|
15 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
15 | 16 |
boolean r = getGeom(args, 0).isValid(); |
16 | 17 |
return r; |
17 | 18 |
} |
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/STNumPointsFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
import org.gvsig.fmap.geom.primitive.OrientablePrimitive; |
... | ... | |
12 | 13 |
} |
13 | 14 |
|
14 | 15 |
@Override |
15 |
public Object call(Object[] args) throws Exception {
|
|
16 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
16 | 17 |
Geometry geom = getGeom(args, 0); |
17 | 18 |
if ( geom instanceof OrientablePrimitive ) { |
18 | 19 |
int n = ((OrientablePrimitive) geom).getNumVertices(); |
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/STIntersectionFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
|
... | ... | |
11 | 12 |
} |
12 | 13 |
|
13 | 14 |
@Override |
14 |
public Object call(Object[] args) throws Exception {
|
|
15 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
15 | 16 |
Geometry r = getGeom(args, 0).intersection(getGeom(args, 1)); |
16 | 17 |
return r; |
17 | 18 |
} |
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/STCentroidFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.primitive.Point; |
6 | 7 |
|
... | ... | |
11 | 12 |
} |
12 | 13 |
|
13 | 14 |
@Override |
14 |
public Object call(Object[] args) throws Exception {
|
|
15 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
15 | 16 |
Point r = getGeom(args, 0).centroid(); |
16 | 17 |
return r; |
17 | 18 |
} |
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/STPointNFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
import org.gvsig.fmap.geom.primitive.OrientablePrimitive; |
... | ... | |
13 | 14 |
} |
14 | 15 |
|
15 | 16 |
@Override |
16 |
public Object call(Object[] args) throws Exception {
|
|
17 |
public Object call(Interpreter interpreter, Object[] args) throws Exception {
|
|
17 | 18 |
Geometry geom = getGeom(args, 0); |
18 | 19 |
if ( geom instanceof OrientablePrimitive ) { |
19 | 20 |
Point n = ((OrientablePrimitive) geom).getVertex(getInt(args, 1)); |
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/STStartPointFunction.java | ||
---|---|---|
1 | 1 |
package org.gvsig.expressionevaluator.impl.function.spatial; |
2 | 2 |
|
3 | 3 |
import org.apache.commons.lang3.Range; |
4 |
import org.gvsig.expressionevaluator.Interpreter; |
|
4 | 5 |
import org.gvsig.expressionevaluator.spi.AbstractFunction; |
5 | 6 |
import org.gvsig.fmap.geom.Geometry; |
6 | 7 |
import org.gvsig.fmap.geom.primitive.OrientablePrimitive; |
... | ... | |
13 | 14 |
} |
14 | 15 |
|
15 | 16 |
@Override |
16 |
public Object call(Object[] args) throws Exception { |
|
17 |
public Object call(Interpreter interpreter, Object[] args) throws Exception { |
Also available in: Unified diff