All Downloads are FREE. Search and download functionalities are using the official Maven repository.

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