package org.jactr.scripting.javascript; /* * default logging */ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.jactr.scripting.IScriptableFactory; import org.jactr.scripting.action.IActionScript; import org.jactr.scripting.condition.IConditionScript; import org.mozilla.javascript.Scriptable; import org.mozilla.javascript.ScriptableObject; public class JavascriptFactory implements IScriptableFactory { /** * Logger definition */ static private final transient Log LOGGER = LogFactory .getLog(JavascriptFactory.class); public IActionScript createActionScript(String script) throws Exception { return new JavascriptAction(script, this); } public IConditionScript createConditionScript(String script) throws Exception { return new JavascriptCondition(script, this); } public String getDescription() { return "Mozilla Rhino Javascript"; } public String getLanguageName() { return "javascript"; } public Object getGlobalContext() { return ScopeManager.getPublicScope(); } public Object getVariable(String label, Object variableContext) { return ScriptableObject.getProperty((Scriptable) variableContext, label); } public void setVariable(String label, Object value, Object variableContext) { ScopeManager.defineVariable((Scriptable) variableContext, label, value); } public boolean supports(String scriptName) { return scriptName.equalsIgnoreCase("javascript") || scriptName.equalsIgnoreCase("js"); } }