
cn.tenmg.dsl.eval.BeanshellEngine Maven / Gradle / Ivy
package cn.tenmg.dsl.eval;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import bsh.Interpreter;
import cn.tenmg.dsl.EvalEngine;
/**
* 基于 Beanshell 的 Java 代码执行引擎
*
* @author June [email protected]
*
* @since 1.4.0
*/
public class BeanshellEngine implements EvalEngine {
private ThreadLocal interpreterHolder = new ThreadLocal();
@Override
public void open() {
interpreterHolder.set(new Interpreter());
}
@Override
public void put(Map params) throws Exception {
Entry entry;
Interpreter interpreter = interpreterHolder.get();
for (Iterator> it = params.entrySet().iterator(); it.hasNext();) {
entry = it.next();
interpreter.set(entry.getKey(), entry.getValue());
}
}
@Override
public Object eval(String code) throws Exception {
return interpreterHolder.get().eval(code);
}
@Override
public void close() {
interpreterHolder.remove();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy