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 / integration / EvaluatorDataAdapter.java @ 43809

History | View | Annotate | Download (1.67 KB)

1

    
2
package org.gvsig.expressionevaluator.integration;
3

    
4
import java.util.Iterator;
5
import org.gvsig.expressionevaluator.Function;
6
import org.gvsig.expressionevaluator.SymbolTable;
7
import org.gvsig.tools.evaluator.EvaluatorData;
8

    
9

    
10
public class EvaluatorDataAdapter implements SymbolTable {
11

    
12
    private EvaluatorData data;
13
    private final SymbolTable symbolTable;
14

    
15
    EvaluatorDataAdapter(SymbolTable symbolTable) {
16
        this.symbolTable = symbolTable;
17
    }
18

    
19
    public void setData(EvaluatorData data) {
20
        this.data = data;
21
    }
22

    
23
    @Override
24
    public Function function(String name) {
25
        return symbolTable.function(name);
26
    }
27

    
28
    @Override
29
    @SuppressWarnings("CloneDoesntCallSuperClone")
30
    public SymbolTable clone() throws CloneNotSupportedException {
31
        throw new CloneNotSupportedException("This class can't be cloned.");
32
    }
33
    
34
    @Override
35
    public boolean exists(String name) {
36
        if( data.hasDataValue(name) ) {
37
            return true;
38
        }
39
        if( data.hasContextValue(name) ) {
40
            return true;
41
        }
42
        return symbolTable.exists(name);
43
    }
44

    
45
    @Override
46
    public Object value(String name) {
47
        if( data.hasDataValue(name) ) {
48
            return data.getDataValue(name);
49
        }
50
        if( data.hasContextValue(name) ) {
51
            return data.getContextValue(name);
52
        }
53
        return symbolTable.value(name);
54
    }
55

    
56
    @Override
57
    public Iterator<String> itervars() {
58
        return null;
59
    }
60

    
61
    @Override
62
    public Iterator<Function> iterfuncs() {
63
        return symbolTable.iterfuncs();
64
    }
65

    
66
    @Override
67
    public Iterator<Function> iterator() {
68
        return symbolTable.iterfuncs();
69
    }
70

    
71
}