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

History | View | Annotate | Download (3.3 KB)

1
package org.gvsig.expressionevaluator.impl;
2

    
3
import org.gvsig.expressionevaluator.Code;
4
import org.gvsig.expressionevaluator.CodeBuilder;
5
import org.gvsig.expressionevaluator.Compiler;
6
import org.gvsig.expressionevaluator.ExpressionEvaluator;
7
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager;
8
import org.gvsig.expressionevaluator.Interpreter;
9
import org.gvsig.expressionevaluator.LexicalAnalyzer;
10
import org.gvsig.expressionevaluator.MutableSymbolTable;
11
import org.gvsig.expressionevaluator.SymbolTable;
12
import org.gvsig.fmap.dal.EvaluatorFactory;
13
import org.gvsig.expressionevaluator.integration.DefaultEvaluatorFactory;
14
import org.gvsig.expressionevaluator.integration.DefaultExpressionEvaluator;
15

    
16

    
17
public class DefaultExpressionEvaluatorManager implements ExpressionEvaluatorManager {
18

    
19
    private Double accuracy;
20

    
21
    public DefaultExpressionEvaluatorManager() {
22
        
23
    }
24
    
25
    @Override
26
    public Object evaluate(String source) {
27
        DefaultInterpreter interpreter = new DefaultInterpreter();
28
        DefaultCompiler compiler = new DefaultCompiler();
29
        Code code = compiler.compileExpression(source);
30
        return interpreter.run(code);
31
    }
32

    
33
    @Override
34
    public Object evaluate(SymbolTable symbolTable, String source) {
35
        DefaultInterpreter interpreter = new DefaultInterpreter();
36
        DefaultCompiler compiler = new DefaultCompiler();
37
        Code code = compiler.compileExpression(source);
38
        interpreter.setSymbolTable(symbolTable);
39
        return interpreter.run(code);
40
    }
41

    
42
    @Override
43
    public Object evaluate(SymbolTable symbolTable, Code code) {
44
        DefaultInterpreter interpreter = new DefaultInterpreter();
45
        interpreter.setSymbolTable(symbolTable);
46
        return interpreter.run(code);
47
    }
48

    
49
    @Override
50
    public Code compile(String source) {
51
        DefaultCompiler compiler = new DefaultCompiler();
52
        return compiler.compileExpression(source);
53
    }
54

    
55
    @Override
56
    public Code compile(LexicalAnalyzer lex, String source) {
57
        DefaultCompiler compiler = new DefaultCompiler();
58
        compiler.setLexicalAnalyzer(lex);
59
        return compiler.compileExpression(source);
60
    }
61

    
62
    @Override
63
    public MutableSymbolTable createSymbolTable() {
64
        return new DefaultSymbolTable();
65
    }
66

    
67
    @Override
68
    public LexicalAnalyzer createLexicalAnalyzer() {
69
        return new SQLLexicalAnalyzer();
70
    }
71

    
72
    @Override
73
    public CodeBuilder createCodeBuilder() {
74
        return new DefaultCodeBuilder();
75
    }
76

    
77
    @Override
78
    public Compiler createCompiler() {
79
        return new DefaultCompiler();
80
    }
81

    
82
    @Override
83
    public Interpreter createInterpreter() {
84
        return new DefaultInterpreter();
85
    }
86

    
87
    @Override
88
    public ExpressionEvaluator createEvaluator(String expression) {
89
        DefaultExpressionEvaluator e = new DefaultExpressionEvaluator();
90
        e.setSource(expression);
91
        return e;
92
    }
93

    
94
    @Override
95
    public ExpressionEvaluator createEvaluator() {
96
        return new DefaultExpressionEvaluator();
97
    }
98

    
99
    @Override
100
    public EvaluatorFactory createEvaluatorFactory() {
101
        return new DefaultEvaluatorFactory();
102
    }
103

    
104
    @Override
105
    public Double getAccuracy() {
106
        return this.accuracy;
107
    }
108

    
109
    @Override
110
    public void setAccuracy(Double accuracy) {
111
        this.accuracy = accuracy;
112
    }
113
    
114
}