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

History | View | Annotate | Download (1.87 KB)

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