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 / javascripting / CosaCompiledScript.java @ 45648
History | View | Annotate | Download (1.43 KB)
1 |
package org.gvsig.expressionevaluator.impl.javascripting; |
---|---|
2 |
|
3 |
import javax.script.Bindings; |
4 |
import javax.script.CompiledScript; |
5 |
import javax.script.ScriptContext; |
6 |
import javax.script.ScriptEngine; |
7 |
import javax.script.ScriptException; |
8 |
import org.gvsig.expressionevaluator.Code; |
9 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorLocator; |
10 |
import org.gvsig.expressionevaluator.ExpressionEvaluatorManager; |
11 |
import org.gvsig.expressionevaluator.SymbolTable; |
12 |
|
13 |
/**
|
14 |
*
|
15 |
* @author jjdelcerro
|
16 |
*/
|
17 |
public class CosaCompiledScript extends CompiledScript { |
18 |
|
19 |
private final CosaScriptEngine engine; |
20 |
private final Code code; |
21 |
|
22 |
public CosaCompiledScript(CosaScriptEngine engine, Code code) {
|
23 |
this.engine = engine;
|
24 |
this.code = code;
|
25 |
} |
26 |
|
27 |
@Override
|
28 |
public Object eval(ScriptContext context) throws ScriptException { |
29 |
ExpressionEvaluatorManager manager = ExpressionEvaluatorLocator.getManager(); |
30 |
Bindings bindings = context.getBindings(ScriptContext.ENGINE_SCOPE); |
31 |
SymbolTable symbolTable; |
32 |
if( bindings instanceof SymbolTableToBindingsAdapter ) { |
33 |
symbolTable = ((SymbolTableToBindingsAdapter)bindings).getSymbolTable(); |
34 |
} else {
|
35 |
symbolTable = new BindingsToSymbolTableAdapter(bindings);
|
36 |
} |
37 |
Object x = manager.evaluate(symbolTable, this.code); |
38 |
return x;
|
39 |
} |
40 |
|
41 |
@Override
|
42 |
public ScriptEngine getEngine() {
|
43 |
return this.engine; |
44 |
} |
45 |
|
46 |
} |