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 @ 46505
History | View | Annotate | Download (2.14 KB)
1 |
package org.gvsig.expressionevaluator; |
---|---|
2 |
|
3 |
import java.util.List; |
4 |
import org.apache.commons.lang3.Range; |
5 |
import org.gvsig.expressionevaluator.ExpressionBuilder.Value; |
6 |
|
7 |
public interface Function { |
8 |
|
9 |
public final String GROUP_NUMERIC = "Numeric"; |
10 |
public final String GROUP_STRING = "String"; |
11 |
public final String GROUP_DATETIME = "Datetime"; |
12 |
public final String GROUP_BOOLEAN = "Boolean"; |
13 |
public final String GROUP_OGC = "OGC"; |
14 |
public final String GROUP_PROGRAMMING = "Programming"; |
15 |
public final String GROUP_CONVERSION = "Conversion"; |
16 |
public final String GROUP_AGGREGATE = "Aggregate"; |
17 |
public final String GROUP_OTHER = "Other"; |
18 |
|
19 |
public String group(); |
20 |
|
21 |
public String name(); |
22 |
|
23 |
public String returnType(); |
24 |
|
25 |
public Range argc();
|
26 |
|
27 |
public String description(); |
28 |
|
29 |
/**
|
30 |
* Return a full description of the funcion internationalized in HTML.
|
31 |
* This full description contains, t name, description, args, template and
|
32 |
* return type.
|
33 |
*
|
34 |
* @return full description in HTML as a String
|
35 |
*/
|
36 |
public String getFullDescription(); |
37 |
|
38 |
public String template(); |
39 |
|
40 |
public String[] descriptionArgs(); |
41 |
|
42 |
public Object call(Interpreter interpreter, Object[] args) throws Exception; |
43 |
|
44 |
public Object call(Interpreter interpreter, Codes args) throws Exception; |
45 |
|
46 |
public void addAlias(String name); |
47 |
|
48 |
public List<String> aliases(); |
49 |
|
50 |
public boolean isOperator(); |
51 |
|
52 |
public boolean isHidden(); |
53 |
|
54 |
public boolean useArgumentsInsteadObjects(); |
55 |
|
56 |
public boolean isSQLCompatible(); |
57 |
|
58 |
/**
|
59 |
* Returns true if the function always returns the same value for
|
60 |
* the same parameters. If so, it is possible to optimize the
|
61 |
* generated code through the process of "constant folding".
|
62 |
*
|
63 |
* https://en.wikipedia.org/wiki/Constant_folding
|
64 |
*
|
65 |
* @return true if this function allow constant folding optimization.
|
66 |
*/
|
67 |
public boolean allowConstantFolding(); |
68 |
|
69 |
public String toString(Codes args, Formatter<Code> formatter); |
70 |
|
71 |
public ExpressionBuilder.Value toValue(ExpressionBuilder builder, Codes parameters);
|
72 |
|
73 |
} |