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 / javascripting / CosaCompiledScript.java @ 44389

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
}