public Bindings getBindings(int scope) {
if (scope == ScriptContext.GLOBAL_SCOPE) {
return context.getBindings(ScriptContext.GLOBAL_SCOPE);
} else if (scope == ScriptContext.ENGINE_SCOPE) {
return context.getBindings(ScriptContext.ENGINE_SCOPE);
} else {
throw new IllegalArgumentException("Invalid scope value.");
}
}
/**
* Sets the <code>Bindings</code> with the corresponding scope value in the
* <code>context</code> field.
*
* @param bindings The specified <code>Bindings</code>.
* @param scope The specified scope.
*
* @throws IllegalArgumentException if the value of scope is
* invalid for the type the <code>context</code> field.
* @throws NullPointerException if the bindings is null and the scope is
* <code>ScriptContext.ENGINE_SCOPE</code>
*/
public void setBindings(Bindings bindings, int scope) {
if (scope == ScriptContext.GLOBAL_SCOPE) {
context.setBindings(bindings, ScriptContext.GLOBAL_SCOPE);;
} else if (scope == ScriptContext.ENGINE_SCOPE) {
context.setBindings(bindings, ScriptContext.ENGINE_SCOPE);;
} else {
throw new IllegalArgumentException("Invalid scope value.");
}
}
/**
* Sets the specified value with the specified key in the <code>ENGINE_SCOPE</code>
* <code>Bindings</code> of the protected <code>context</code> field.
*
* @param key The specified key.
* @param value The specified value.
*
* @throws NullPointerException if key is null.
* @throws IllegalArgumentException if key is empty.
*/
public void put(String key, Object value) {
Bindings nn = getBindings(ScriptContext.ENGINE_SCOPE);
if (nn != null) {
nn.put(key, value);
}
}
/**
* Gets the value for the specified key in the <code>ENGINE_SCOPE</code> of the
* protected <code>context</code> field.
*
* @return The value for the specified key.
*
* @throws NullPointerException if key is null.
* @throws IllegalArgumentException if key is empty.
*/
public Object get(String key) {
Bindings nn = getBindings(ScriptContext.ENGINE_SCOPE);
if (nn != null) {
return nn.get(key);
}
return null;
}
/**
* <code>eval(Reader, Bindings)</code> calls the abstract
* <code>eval(Reader, ScriptContext)</code> method, passing it a <code>ScriptContext</code>
* whose Reader, Writers and Bindings for scopes other that <code>ENGINE_SCOPE</code>
* are identical to those members of the protected <code>context</code> field. The specified
* <code>Bindings</code> is used instead of the <code>ENGINE_SCOPE</code>
*
* <code>Bindings</code> of the <code>context</code> field.
*
* @param reader A <code>Reader</code> containing the source of the script.
* @param bindings A <code>Bindings</code> to use for the <code>ENGINE_SCOPE</code>
* while the script executes.
*
* @return The return value from <code>eval(Reader, ScriptContext)</code>
* @throws ScriptException if an error occurs in script.
* @throws NullPointerException if any of the parameters is null.
*/
public Object eval(Reader reader, Bindings bindings ) throws ScriptException {
ScriptContext ctxt = getScriptContext(bindings);
return eval(reader, ctxt);
}
/**
* Same as <code>eval(Reader, Bindings)</code> except that the abstract
=2= |