Statistics
| Revision:

svn-gvsig-desktop / 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 / DefaultSymbolTable.java @ 43913

History | View | Annotate | Download (1.51 KB)

1

    
2
package org.gvsig.expressionevaluator.impl;
3

    
4
import java.util.HashMap;
5
import java.util.Iterator;
6
import java.util.Map;
7
import org.gvsig.expressionevaluator.SymbolTable;
8
import org.gvsig.expressionevaluator.MutableSymbolTable;
9

    
10

    
11
public class DefaultSymbolTable extends AbstractSymbolTable implements MutableSymbolTable {
12

    
13
    private Map<String,Object> vars;
14
    
15
    public DefaultSymbolTable(SymbolTable delegatedSymbolTable) {
16
        super(delegatedSymbolTable);
17
        this.vars = new HashMap<>();
18
    }
19

    
20
    public DefaultSymbolTable() {
21
        this(null);
22
    }
23

    
24
    @Override
25
    public MutableSymbolTable clone() throws CloneNotSupportedException {
26
        DefaultSymbolTable other = (DefaultSymbolTable) super.clone();
27
        other.vars = new HashMap<>(vars);
28
        return other;
29
    }
30
    
31
    @Override
32
    public void addVar(String name, Object value) {
33
        this.vars.put(name, value);
34
    }
35

    
36
    @Override
37
    public boolean exists(String name) {
38
        boolean e = this.vars.containsKey(name);
39
        if( !e ) {
40
            e = this.delegatedSymbolTable.exists(name);
41
        }
42
        return e;
43
    }
44

    
45
    @Override
46
    public Object value(String name) {
47
        if( this.vars.containsKey(name) ) {
48
            return this.vars.get(name);
49
        }
50
        return this.delegatedSymbolTable.value(name);
51
    }
52

    
53
    @Override
54
    public void removeVar(String name) {
55
        this.vars.remove(name);
56
    }
57

    
58
    @Override
59
    public Iterator<String> itervars() {
60
        return this.vars.keySet().iterator();
61
    }
62
    
63
}