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 @ 43983

History | View | Annotate | Download (2.29 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

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

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

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

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

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

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

    
81
}