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

History | View | Annotate | Download (1.69 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
    public static final int CALLER = 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
    public interface Caller extends Code {
28
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
    public interface Method extends Caller {
49
        public Code obj();
50
51
        public String methodname();
52
    }
53 43512 jjdelcerro
54 44198 jjdelcerro
    public static final Formatter<Code> EMPTY_FORMATTER = new Formatter<Code>() {
55
        @Override
56
        public boolean canApply(Code value) {
57
            return false;
58
        }
59
60
        @Override
61
        public String format(Code value) {
62
            return "";
63
        }
64
    };
65
66
    public int code();
67
68
    public Value toValue();
69
70
    public Value toValue(ExpressionBuilder builder);
71
72
    public String toString(Formatter<Code> formatter);
73
74
    public void link(SymbolTable symbolTable);
75
76 43512 jjdelcerro
}