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 | } |