blob: c83d4ec7f9e9b52a3b7fa511ce6cbb30d760f456 [file] [log] [blame] [raw]
/*
* $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;
}
}