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 |
} |