Revision 43987 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/DefaultExpressionEvaluatorManager.java

View differences:

DefaultExpressionEvaluatorManager.java
2 2

  
3 3
import java.util.Collection;
4 4
import java.util.HashMap;
5
import java.util.HashSet;
5 6
import java.util.Map;
7
import java.util.Set;
6 8
import org.gvsig.expressionevaluator.Code;
7 9
import org.gvsig.expressionevaluator.CodeBuilder;
8 10
import org.gvsig.expressionevaluator.Compiler;
......
20 22

  
21 23
    private Double accuracy;
22 24
    private final Map<String,SymbolTable>symbolTables;
25
    private final Set<String>autoloadSymbolTables;
23 26

  
24 27
    public DefaultExpressionEvaluatorManager() {
25 28
        this.symbolTables = new HashMap<>();
26
        this.registerSymbolTable(new SQLSymbolTable());
27
        this.registerSymbolTable(new OGCSymbolTable());
29
        this.autoloadSymbolTables = new HashSet<>();
30
        this.registerSymbolTable(new SQLSymbolTable(), true);
31
        this.registerSymbolTable(new OGCSymbolTable(), true);
28 32
    }
29 33

  
30 34
    @Override
......
38 42
    }
39 43

  
40 44
    @Override
41
    public final void registerSymbolTable(SymbolTable symbolTable) {
45
    public final void registerSymbolTable(SymbolTable symbolTable, boolean autoload) {
42 46
        this.symbolTables.put(symbolTable.getName().toUpperCase(),symbolTable);
47
        if( autoload ) {
48
            this.autoloadSymbolTables.add(symbolTable.getName().toUpperCase());
49
        }
43 50
    }
44
    
51

  
45 52
    @Override
53
    public boolean isAutoload(SymbolTable symbolTable) {
54
        return this.autoloadSymbolTables.contains(symbolTable.getName().toUpperCase());
55
    }
56

  
57
    @Override
46 58
    public Object evaluate(String source) {
47 59
        DefaultInterpreter interpreter = new DefaultInterpreter();
48 60
        DefaultCompiler compiler = new DefaultCompiler();
......
81 93

  
82 94
    @Override
83 95
    public MutableSymbolTable createSymbolTable() {
84
        return new DefaultSymbolTable();
96
        DefaultSymbolTable theSymbolTable = new DefaultSymbolTable();
97
        return theSymbolTable;
85 98
    }
86 99
    
100
    public void populateSymbolTable(SymbolTable aSymbolTable) {
101
        for (String name : this.autoloadSymbolTables ) {
102
            SymbolTable symbolTable = this.symbolTables.get(name);
103
            if( symbolTable!=null ) {
104
                aSymbolTable.addSymbolTable(symbolTable);
105
            }
106
        }
107
    }
108
    
87 109
    @Override
88 110
    public LexicalAnalyzer createLexicalAnalyzer() {
89 111
        return new SQLLexicalAnalyzer();

Also available in: Unified diff