Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.lib / org.gvsig.expressionevaluator.lib.impl / src / main / java / org / gvsig / expressionevaluator / impl / symboltable / SQLSymbolTable.java @ 43983

History | View | Annotate | Download (8.29 KB)

1
package org.gvsig.expressionevaluator.impl.symboltable;
2

    
3
import org.gvsig.expressionevaluator.Function;
4
import org.gvsig.expressionevaluator.impl.function.numeric.ACosFunction;
5
import org.gvsig.expressionevaluator.impl.function.numeric.ASinFunction;
6
import org.gvsig.expressionevaluator.impl.function.numeric.ATanFunction;
7
import org.gvsig.expressionevaluator.impl.function.numeric.AbsFunction;
8
import org.gvsig.expressionevaluator.impl.function.numeric.BitAndFunction;
9
import org.gvsig.expressionevaluator.impl.function.numeric.BitOrFunction;
10
import org.gvsig.expressionevaluator.impl.function.numeric.BitXorFunction;
11
import org.gvsig.expressionevaluator.impl.function.numeric.CeilFunction;
12
import org.gvsig.expressionevaluator.impl.function.numeric.CosFunction;
13
import org.gvsig.expressionevaluator.impl.function.numeric.CoshFunction;
14
import org.gvsig.expressionevaluator.impl.function.numeric.CotFunction;
15
import org.gvsig.expressionevaluator.impl.function.numeric.DegreesFunction;
16
import org.gvsig.expressionevaluator.impl.function.numeric.ExpFunction;
17
import org.gvsig.expressionevaluator.impl.function.numeric.FloorFunction;
18
import org.gvsig.expressionevaluator.impl.function.numeric.Log10Function;
19
import org.gvsig.expressionevaluator.impl.function.numeric.LogFunction;
20
import org.gvsig.expressionevaluator.impl.function.numeric.PiFunction;
21
import org.gvsig.expressionevaluator.impl.function.numeric.PowFunction;
22
import org.gvsig.expressionevaluator.impl.function.numeric.RadiansFunction;
23
import org.gvsig.expressionevaluator.impl.function.numeric.RandFunction;
24
import org.gvsig.expressionevaluator.impl.function.numeric.RoundFunction;
25
import org.gvsig.expressionevaluator.impl.function.numeric.SignFunction;
26
import org.gvsig.expressionevaluator.impl.function.numeric.SinFunction;
27
import org.gvsig.expressionevaluator.impl.function.numeric.SinhFunction;
28
import org.gvsig.expressionevaluator.impl.function.numeric.SqrtFunction;
29
import org.gvsig.expressionevaluator.impl.function.numeric.TanFunction;
30
import org.gvsig.expressionevaluator.impl.function.numeric.TanhFunction;
31
import org.gvsig.expressionevaluator.impl.function.numeric.ZeroFunction;
32
import org.gvsig.expressionevaluator.impl.function.operator.AddOperator;
33
import org.gvsig.expressionevaluator.impl.function.operator.AndOperator;
34
import org.gvsig.expressionevaluator.impl.function.operator.DivOperator;
35
import org.gvsig.expressionevaluator.impl.function.operator.EqOperator;
36
import org.gvsig.expressionevaluator.impl.function.operator.GeOperator;
37
import org.gvsig.expressionevaluator.impl.function.operator.GtOperator;
38
import org.gvsig.expressionevaluator.impl.function.operator.LeOperator;
39
import org.gvsig.expressionevaluator.impl.function.operator.LtOperator;
40
import org.gvsig.expressionevaluator.impl.function.operator.ModOperator;
41
import org.gvsig.expressionevaluator.impl.function.operator.MulOperator;
42
import org.gvsig.expressionevaluator.impl.function.operator.NeOperator;
43
import org.gvsig.expressionevaluator.impl.function.operator.NotOperator;
44
import org.gvsig.expressionevaluator.impl.function.operator.OrOperator;
45
import org.gvsig.expressionevaluator.impl.function.operator.SubstOperator;
46
import org.gvsig.expressionevaluator.impl.function.predicate.IlikeOperator;
47
import org.gvsig.expressionevaluator.impl.function.predicate.LikeOperator;
48
import org.gvsig.expressionevaluator.impl.function.string.AsciiFunction;
49
import org.gvsig.expressionevaluator.impl.function.string.CharFunction;
50
import org.gvsig.expressionevaluator.impl.function.string.ConcatFunction;
51
import org.gvsig.expressionevaluator.impl.function.string.InstrFunction;
52
import org.gvsig.expressionevaluator.impl.function.string.LTrimFunction;
53
import org.gvsig.expressionevaluator.impl.function.string.LeftFunction;
54
import org.gvsig.expressionevaluator.impl.function.string.LengthFunction;
55
import org.gvsig.expressionevaluator.impl.function.string.LocateFunction;
56
import org.gvsig.expressionevaluator.impl.function.string.LowerFunction;
57
import org.gvsig.expressionevaluator.impl.function.string.LpadFunction;
58
import org.gvsig.expressionevaluator.impl.function.string.PositionFunction;
59
import org.gvsig.expressionevaluator.impl.function.string.RTrimFunction;
60
import org.gvsig.expressionevaluator.impl.function.string.RepeatFunction;
61
import org.gvsig.expressionevaluator.impl.function.string.ReplaceFunction;
62
import org.gvsig.expressionevaluator.impl.function.string.RightFunction;
63
import org.gvsig.expressionevaluator.impl.function.string.RpadFunction;
64
import org.gvsig.expressionevaluator.impl.function.string.SpaceFunction;
65
import org.gvsig.expressionevaluator.impl.function.string.SubstringFunction;
66
import org.gvsig.expressionevaluator.impl.function.string.TrimFunction;
67
import org.gvsig.expressionevaluator.impl.function.string.UpperFunction;
68
import org.gvsig.expressionevaluator.spi.AbstractSymbolTable;
69

    
70
/**
71
 *
72
 * @author jjdelcerro
73
 */
74
public class SQLSymbolTable extends AbstractSymbolTable {
75
    
76
    public SQLSymbolTable() {
77
        super("SQL");
78
        
79
        this.addOperator(new AndOperator());
80
        this.addOperator(new AddOperator());
81
        this.addOperator(new DivOperator());
82
        this.addOperator(new EqOperator());
83
        this.addOperator(new GeOperator());
84
        this.addOperator(new GtOperator());
85
        this.addOperator(new LeOperator());
86
        this.addOperator(new LtOperator());
87
        this.addOperator(new ModOperator());
88
        this.addOperator(new NeOperator());
89
        this.addOperator(new ModOperator());
90
        this.addOperator(new MulOperator());
91
        this.addOperator(new NeOperator());
92
        this.addOperator(new NotOperator());
93
        this.addOperator(new OrOperator());
94
        this.addOperator(new SubstOperator());
95
        
96
        this.addOperator(new IlikeOperator());
97
        this.addOperator(new LikeOperator());
98
        
99
        this.addFunction(new ACosFunction());
100
        this.addFunction(new ASinFunction());
101
        this.addFunction(new ATanFunction());
102
        this.addFunction(new AbsFunction());
103
        this.addFunction(new BitAndFunction());
104
        this.addFunction(new BitOrFunction());
105
        this.addFunction(new BitXorFunction());
106
        this.addFunction(new CeilFunction());
107
        this.addFunction(new CosFunction());
108
        this.addFunction(new CoshFunction());
109
        this.addFunction(new CotFunction());
110
        this.addFunction(new DegreesFunction());
111
        this.addFunction(new ExpFunction());
112
        this.addFunction(new FloorFunction());
113
        this.addFunction(new Log10Function());
114
        this.addFunction(new LogFunction());
115
        this.addFunction(new PiFunction());
116
        this.addFunction(new PowFunction());
117
        this.addFunction(new RadiansFunction());
118
        this.addFunction(new RandFunction());
119
        this.addFunction(new RoundFunction());
120
        this.addFunction(new SignFunction());
121
        this.addFunction(new SinFunction());
122
        this.addFunction(new SinhFunction());
123
        this.addFunction(new SqrtFunction());
124
        this.addFunction(new TanFunction());
125
        this.addFunction(new TanhFunction());
126
        this.addFunction(new ZeroFunction());
127
        this.addFunction(new LogFunction());
128
        
129
        this.addFunction(new AsciiFunction());
130
        this.addFunction(new CharFunction());
131
        this.addFunction(new ConcatFunction());
132
        this.addFunction(new InstrFunction());
133
        this.addFunction(new LTrimFunction());
134
        this.addFunction(new LeftFunction());
135
        this.addFunction(new LengthFunction());
136
        this.addFunction(new LocateFunction());
137
        this.addFunction(new LowerFunction());
138
        this.addFunction(new LpadFunction());
139
        this.addFunction(new PositionFunction());
140
        this.addFunction(new RTrimFunction());
141
        this.addFunction(new RepeatFunction());
142
        this.addFunction(new ReplaceFunction());
143
        this.addFunction(new RightFunction());
144
        this.addFunction(new RpadFunction());
145
        this.addFunction(new SpaceFunction());
146
        this.addFunction(new SubstringFunction());
147
        this.addFunction(new TrimFunction());
148
        this.addFunction(new UpperFunction());
149
        
150
    }
151

    
152
    private void addFunction(Function function) {
153
        if( function==null ) {
154
            throw new IllegalArgumentException("function can't be null");
155
        }
156
        this.getFunctions().put(function.name().toUpperCase(), function);
157
    }
158

    
159
    private void addOperator(Function operator) {
160
        this.addFunction(operator);
161
    }
162
    
163
}