package org.ukiuni.pacifista; import java.io.File; import java.io.IOException; import java.util.HashMap; import java.util.Map; import javax.script.ScriptException; import org.ukiuni.pacifista.util.ScriptingUtil; import org.ukiuni.pacifista.util.ScriptingUtil.ScriptEngineNotFoundException; public class Runtime { private static final Map<String, Object> dataMap = new HashMap<String, Object>(); private final File templateDir; private File baseDir; private File pluginDir; public Runtime(File baseDir, File templateDir, File pluginDir, Map<String, Object> dataMap) { this.baseDir = baseDir; this.templateDir = templateDir; this.pluginDir = pluginDir; Runtime.dataMap.putAll(dataMap); } public Object getEnv(String key) { if (dataMap.containsKey(key)) { return dataMap.get(key); } return System.getenv(key); } public void setEnv(String key, Object value) { dataMap.put(key, value); } public Object get_env(String key) { return getEnv(key); } public void set_env(String key, Object value) { setEnv(key, value); } public void call(String script) throws ScriptException, IOException, ScriptEngineNotFoundException { Map<String, Object> hashMap = new HashMap<String, Object>(Runtime.dataMap); if (script.contains("?")) { hashMap.putAll(ScriptingUtil.pickupParameters(script)); script = script.substring(0, script.indexOf("?")); } ScriptingUtil.execScript(this.baseDir, script, this.templateDir, this.pluginDir, hashMap); } public void sleep(long wait) throws InterruptedException { Thread.sleep(wait); } }