Revision 43913 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/SQLSymbolTable.java
SQLSymbolTable.java | ||
---|---|---|
1 | 1 |
|
2 | 2 |
package org.gvsig.expressionevaluator.impl; |
3 | 3 |
|
4 |
import java.util.HashMap; |
|
5 | 4 |
import java.util.Iterator; |
6 |
import java.util.Map; |
|
7 |
import org.gvsig.expressionevaluator.Function; |
|
8 | 5 |
import org.gvsig.expressionevaluator.impl.function.operator.AddOperator; |
9 | 6 |
import org.gvsig.expressionevaluator.impl.function.operator.AndOperator; |
10 | 7 |
import org.gvsig.expressionevaluator.impl.function.operator.DivOperator; |
... | ... | |
104 | 101 |
import org.gvsig.expressionevaluator.impl.function.string.UpperFunction; |
105 | 102 |
|
106 | 103 |
|
107 |
public class SQLSymbolTable implements SymbolTable { |
|
104 |
public class SQLSymbolTable extends AbstractSymbolTable implements SymbolTable {
|
|
108 | 105 |
|
109 |
private final Map<String,Function> functions; |
|
110 | 106 |
|
111 | 107 |
private static SQLSymbolTable instance = null; |
112 | 108 |
|
... | ... | |
117 | 113 |
return instance; |
118 | 114 |
} |
119 | 115 |
|
116 |
@SuppressWarnings("OverridableMethodCallInConstructor") |
|
120 | 117 |
private SQLSymbolTable() { |
121 |
this.functions = new HashMap<>();
|
|
118 |
super();
|
|
122 | 119 |
|
123 | 120 |
addFunction(new AndOperator()); |
124 | 121 |
addFunction(new AddOperator()); |
... | ... | |
226 | 223 |
} |
227 | 224 |
|
228 | 225 |
@Override |
229 |
@SuppressWarnings("CloneDoesntCallSuperClone") |
|
230 |
public SymbolTable clone() throws CloneNotSupportedException { |
|
231 |
// SQLSymbolTable is singleton and immutable, so we just return |
|
232 |
// the same instance. |
|
233 |
return this; |
|
234 |
} |
|
235 |
|
|
236 |
private void addFunction(Function function) { |
|
237 |
this.functions.put(function.name().toLowerCase(), function); |
|
238 |
} |
|
239 |
|
|
240 |
@Override |
|
241 |
public Function function(String name) { |
|
242 |
return this.functions.get(name.toLowerCase()); |
|
243 |
} |
|
244 |
|
|
245 |
@Override |
|
246 | 226 |
public boolean exists(String name) { |
247 | 227 |
return false; |
248 | 228 |
} |
... | ... | |
266 | 246 |
} |
267 | 247 |
}; |
268 | 248 |
} |
269 |
|
|
270 |
@Override |
|
271 |
public Iterator<Function> iterfuncs() { |
|
272 |
return this.functions.values().iterator(); |
|
273 |
} |
|
274 |
|
|
275 |
@Override |
|
276 |
public Iterator<Function> iterator() { |
|
277 |
return iterfuncs(); |
|
278 |
} |
|
279 | 249 |
|
280 | 250 |
} |
Also available in: Unified diff