Statistics
| Revision:

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 @ 44924

History | View | Annotate | Download (1.91 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_CONVERSION = "Conversion";
15
    public final String GROUP_AGGREGATE = "Aggregate";
16
    public final String GROUP_OTHER = "Other";
17
   
18
    public String group();
19

    
20
    public String name();
21
    
22
    public String returnType();
23

    
24
    public Range argc();
25

    
26
    public String description();
27

    
28
    /**
29
     * Return a full description of the funcion internationalized in HTML.
30
     * This full description contains, t name, description, args, template and
31
     * return type.
32
     * 
33
     * @return full description in HTML as a String
34
     */
35
    public String getFullDescription();
36
    
37
    public String template();
38
    
39
    public String[] descriptionArgs();
40

    
41
    public Object call(Interpreter interpreter, Object[] args) throws Exception;
42
    
43
    public Object call(Interpreter interpreter, Codes args) throws Exception;
44
    
45
    public void addAlias(String name);
46
    
47
    public List<String> aliases();
48
    
49
    public boolean isOperator();
50
    
51
    public boolean isHidden();
52
    
53
    public boolean useArgumentsInsteadObjects();
54
    
55
    public boolean isSQLCompatible();
56
    
57
    /**
58
     * Returns true if the function always returns the same value for 
59
     * the same parameters. If so, it is possible to optimize the 
60
     * generated code through the process of "constant folding".
61
     * 
62
     * https://en.wikipedia.org/wiki/Constant_folding
63
     * 
64
     * @return true if this function allow constant folding optimization.
65
     */
66
    public boolean allowConstantFolding();
67
    
68
}