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 / Code.java @ 46517

History | View | Annotate | Download (2.18 KB)

1 43512 jjdelcerro
package org.gvsig.expressionevaluator;
2
3 45983 jjdelcerro
import java.util.function.Predicate;
4 44198 jjdelcerro
import org.gvsig.expressionevaluator.ExpressionBuilder.Value;
5 45983 jjdelcerro
import org.gvsig.tools.exception.BaseException;
6
import org.gvsig.tools.visitor.FilteredVisitable;
7
import org.gvsig.tools.visitor.Visitor;
8 43512 jjdelcerro
9 45983 jjdelcerro
public interface Code extends FilteredVisitable, org.gvsig.tools.lang.Cloneable {
10 43512 jjdelcerro
11
    public static final int UNDEFINED = -1;
12
    public static final int CONSTANT = 0;
13
    public static final int IDENTIFIER = 1;
14 44752 jjdelcerro
    public static final int CALLABLE = 2;
15 43939 jjdelcerro
    public static final int METHOD = 3;
16 44198 jjdelcerro
    public static final int CODES = 4;
17 43939 jjdelcerro
18 43512 jjdelcerro
    public interface Constant extends Code {
19
20
        public Object value();
21
22
    }
23
24
    public interface Identifier extends Code {
25
26
        public String name();
27
28
    }
29
30 44752 jjdelcerro
    public interface Callable extends Code {
31 43512 jjdelcerro
32
        public static final int FUNCTION = 0;
33
        public static final int BINARY_OPERATOR = 1;
34
        public static final int UNARY_OPERATOR = 2;
35 43521 jjdelcerro
36 44198 jjdelcerro
37 43512 jjdelcerro
        public String name();
38
39 43521 jjdelcerro
        public Object call(Interpreter interpreter, Object[] args) throws Exception;
40
41 43512 jjdelcerro
        public Function function();
42
43
        public Function function(Function function);
44
45 44198 jjdelcerro
        public Codes parameters();
46 43512 jjdelcerro
47
        public int type();
48 43521 jjdelcerro
49 43512 jjdelcerro
    }
50 43939 jjdelcerro
51 45251 omartinez
    public interface Method extends Callable {
52 44243 jjdelcerro
        public Code instance();
53 43939 jjdelcerro
54
        public String methodname();
55 44243 jjdelcerro
56 45983 jjdelcerro
        @Override
57 44243 jjdelcerro
        public Codes parameters();
58
59 45983 jjdelcerro
        @Override
60 44243 jjdelcerro
        public Object call(Interpreter interpreter, Object[] args) throws Exception;
61 43939 jjdelcerro
    }
62 43512 jjdelcerro
63 44198 jjdelcerro
    public static final Formatter<Code> EMPTY_FORMATTER = new Formatter<Code>() {
64
        @Override
65
        public boolean canApply(Code value) {
66
            return false;
67
        }
68
69
        @Override
70
        public String format(Code value) {
71
            return "";
72
        }
73
    };
74
75
    public int code();
76
77
    public Value toValue();
78
79
    public Value toValue(ExpressionBuilder builder);
80
81
    public String toString(Formatter<Code> formatter);
82
83
    public void link(SymbolTable symbolTable);
84
85 46517 fdiaz
    public void link();
86
87 44750 jjdelcerro
    public void replace(Code target, Code replacement);
88
89 45115 jjdelcerro
    @Override
90
    public Code clone() throws CloneNotSupportedException;
91 45983 jjdelcerro
92 43512 jjdelcerro
}