Statistics
| Revision:

svn-gvsig-desktop / trunk / org.gvsig.desktop / org.gvsig.desktop.library / org.gvsig.expressionevaluator / org.gvsig.expressionevaluator.swing / org.gvsig.expressionevaluator.swing.impl / src / main / java / org / gvsig / expressionevaluator / swing / impl / DefaultExpressionBuilderConfig.java @ 43984

History | View | Annotate | Download (2.64 KB)

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

    
3
import java.util.Collection;
4
import java.util.Collections;
5
import java.util.HashMap;
6
import java.util.List;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator;
8
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
9
import org.gvsig.expressionevaluator.SymbolTable;
10
import org.gvsig.expressionevaluator.swing.Element;
11
import org.gvsig.expressionevaluator.swing.ExpressionBuilderConfig;
12
import org.gvsig.expressionevaluator.swing.ExpressionEvaluatorSwingManager;
13

    
14
/**
15
 *
16
 * @author jjdelcerro
17
 */
18
public class DefaultExpressionBuilderConfig
19
        implements ExpressionBuilderConfig {
20

    
21
    private List<Element> elements;
22
    private int limit;
23
    private HashMap<String, SymbolTable> symbolTables;
24
    private final ExpressionEvaluatorSwingManager manager;
25
    private boolean scriptsEnabled = true;
26

    
27
    public DefaultExpressionBuilderConfig(ExpressionEvaluatorSwingManager manager) {
28
        this.manager = manager;
29
        this.limit = 1000;
30
        initSymbolTables();
31
    }
32

    
33
    private void initSymbolTables() {
34
        ExpressionEvaluatorManager theManager = ExpressionEvaluatorLocator.getManager();
35
        this.addSymbolTable(theManager.getSymbolTable("SQL"));
36
        this.addSymbolTable(theManager.getSymbolTable("OGC"));
37
    }
38
    
39
    @Override
40
    public List<Element> getElements() {
41
        if (this.elements == null) {
42
            this.elements = manager.createElements(this.getSymbolTables());
43
        }
44
        return elements;
45
    }
46

    
47
    @Override
48
    public Collection<SymbolTable> getSymbolTables() {
49
        return Collections.unmodifiableCollection(this.symbolTables.values());
50
    }
51
    
52
    @Override
53
    public void addSymbolTable(SymbolTable symbolTable) {
54
        if( symbolTable == null ) {
55
            return;
56
        }
57
        if( this.elements!=null ) {
58
            throw new RuntimeException();
59
        }
60
        if( this.symbolTables == null ) {
61
            this.symbolTables = new HashMap<>();
62
        }
63
        this.symbolTables.put(symbolTable.getName(), symbolTable);
64
    }
65

    
66
    @Override
67
    public void removeAllSymbolTables() {
68
        this.symbolTables.clear();
69
    }
70

    
71
    @Override
72
    public int getSimpleElementsLimit() {
73
        return this.limit;
74
    }
75

    
76
    @Override
77
    public void setSimpleElementsLimit(int limit) {
78
        this.limit = limit;
79
    }
80

    
81
    @Override
82
    public void removeSymbolTable(String name) {
83
        this.symbolTables.remove(name);
84
    }
85

    
86
    @Override
87
    public void setScriptsEnabled(boolean enabled) {
88
        this.scriptsEnabled = enabled;
89
    }
90

    
91
    @Override
92
    public boolean getScriptsEnabled() {
93
        return this.scriptsEnabled;
94
    }
95
    
96

    
97
}