svn-gvsig-desktop / 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 @ 44139
History | View | Annotate | Download (1.48 KB)
1 |
package org.gvsig.expressionevaluator; |
---|---|
2 |
|
3 |
import java.util.List; |
4 |
import org.apache.commons.lang3.Range; |
5 |
|
6 |
public interface Function { |
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 |
public final String GROUP_PROGRAMMING = "Programming"; |
14 |
public final String GROUP_OTHER = "Other"; |
15 |
|
16 |
public String group(); |
17 |
|
18 |
public String name(); |
19 |
|
20 |
public String returnType(); |
21 |
|
22 |
public Range argc();
|
23 |
|
24 |
public String description(); |
25 |
|
26 |
public String template(); |
27 |
|
28 |
public String[] descriptionArgs(); |
29 |
|
30 |
public Object call(Interpreter interpreter, Object[] args) throws Exception; |
31 |
|
32 |
public Object call(Interpreter interpreter, Codes args) throws Exception; |
33 |
|
34 |
public void addAlias(String name); |
35 |
|
36 |
public List<String> aliases(); |
37 |
|
38 |
public boolean isOperator(); |
39 |
|
40 |
public boolean useArgumentsInsteadObjects(); |
41 |
|
42 |
public boolean isSQLCompatible(); |
43 |
|
44 |
/**
|
45 |
* Returns true if the function always returns the same value for
|
46 |
* the same parameters. If so, it is possible to optimize the
|
47 |
* generated code through the process of "constant folding".
|
48 |
*
|
49 |
* https://en.wikipedia.org/wiki/Constant_folding
|
50 |
*
|
51 |
* @return true if this function allow constant folding optimization.
|
52 |
*/
|
53 |
public boolean allowConstantFolding(); |
54 |
} |