/* * $Id: CompiledLuaScript.java 38 2012-01-04 22:44:15Z andre@naef.com $ * See LICENSE.txt for license terms. */ package com.naef.jnlua.script; import java.io.ByteArrayInputStream; import javax.script.CompiledScript; import javax.script.ScriptContext; import javax.script.ScriptEngine; import javax.script.ScriptException; /** * Compiled script implementation conforming to JSR 223: Scripting for the Java * Platform. */ class CompiledLuaScript extends CompiledScript { // -- State private LuaScriptEngine engine; private byte[] script; // -- Construction /** * Creates a new instance. */ public CompiledLuaScript(LuaScriptEngine engine, byte[] script) { this.engine = engine; this.script = script; } // -- CompiledScript methods @Override public Object eval(ScriptContext context) throws ScriptException { synchronized (engine.getLuaState()) { engine.loadChunk(new ByteArrayInputStream(script), context, "b"); return engine.callChunk(context); } } @Override public ScriptEngine getEngine() { return engine; } }