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

View differences:

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