![JAR search and dependency download from the Maven repository](/logo.png)
cn.tenmg.dsl.eval.BeanshellEngine Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of dsl Show documentation
Show all versions of dsl Show documentation
动态脚本语言(DSL,Dynamic Script Language)解析框架。可广泛用于动态 SQL(即
DSQL)等场景的解析,DSQL 也是目前 DSL 最成功的应用领域,具体包括 Flink SQL(如 Clink)、Spark SQL(如
sparktool)和 JDBC(如 sqltool)。
The newest version!
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