Revision 43913 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/DefaultExpressionEvaluator.java

View differences:

DefaultExpressionEvaluator.java
16 16
import org.gvsig.expressionevaluator.impl.DefaultInterpreter;
17 17
import org.gvsig.expressionevaluator.impl.SQLLexicalAnalyzer;
18 18
import org.gvsig.expressionevaluator.impl.SQLSymbolTable;
19
import org.gvsig.tools.ToolsLocator;
19 20
import org.gvsig.tools.evaluator.AbstractEvaluator;
20 21
import org.gvsig.tools.evaluator.EvaluatorData;
21 22
import org.gvsig.tools.evaluator.EvaluatorException;
......
24 25
import org.gvsig.tools.visitor.VisitCanceledException;
25 26
import org.gvsig.tools.visitor.Visitor;
26 27
import org.gvsig.tools.lang.Cloneable;
28
import org.gvsig.tools.script.Script;
29
import org.gvsig.tools.script.ScriptManager;
27 30

  
28 31
public class DefaultExpressionEvaluator extends AbstractEvaluator implements ExpressionEvaluator, Cloneable {
29 32

  
......
80 83
    private Description[] availableOperators;
81 84
    private Description[] availableFunctions;
82 85
    private Double accuracy;
86
    private Script script;
83 87

  
84 88
    public DefaultExpressionEvaluator() {
85 89
        super();
......
88 92

  
89 93
    @Override
90 94
    public Code getCode() {
95
        if( this.code == null ) {
96
            this.compile();
97
        }
91 98
        return this.code;
92 99
    }
93 100

  
......
96 103
        if( this.symbolTable == null ) {
97 104
            this.symbolTable = SQLSymbolTable.getInstance();
98 105
        }
106
        this.symbolTable.setScript(script);
99 107
        if( this.lexer == null ) {
100 108
            this.lexer = new SQLLexicalAnalyzer();
101 109
        }
......
238 246
    public void setAccuracy(Double accuracy) {
239 247
        this.accuracy = accuracy;
240 248
    }
241

  
249
    
242 250
    @Override
251
    public Script getScript() {
252
        return this.script;
253
    }
254
    
255
    @Override
256
    public void setScript(String name) {
257
        ScriptManager scriptManager = ToolsLocator.getScriptManager();
258
        Script theScript = scriptManager.locateScript(name);
259
        this.setScript(theScript);
260
    }
261
    
262
    @Override
263
    public void setScript(Script script) {
264
        this.script = script;
265
        this.code = null; // Force recompile
266
    }
267
    
268
    @Override
243 269
    public ExpressionEvaluator clone() throws CloneNotSupportedException {
244 270
        DefaultExpressionEvaluator other = (DefaultExpressionEvaluator) super.clone();
245 271
        other.code = this.code;

Also available in: Unified diff