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