javax.script

接口
异常
所有已知实现类:
SimpleScriptContext

public interface ScriptContext

该接口的实现类被用来连接 Script Engines 和宿主应用程序中的对象(如有范围的 Bindings)。每个范围都是一个指定属性集,这些属性的值可以使用 ScriptContext 方法设置和获取。ScriptContext 还公开可由 ScriptEngine 用于输入和输出的 Reader 和 Writer。

从以下版本开始:
1.6

字段摘要
static int ENGINE_SCOPE
          EngineScope 属性在单个 ScriptEngine 的生存期是可见的,并为每个引擎维护一个属性集。
static int GLOBAL_SCOPE
          GlobalScope 属性对于同一 ScriptEngineFactory 创建的所有引擎都是可见的。
 
方法摘要
 Object getAttribute(String name)
          获取范围中按搜索顺序最早出现的具有给定名称的属性的值。
 Object getAttribute(String name, int scope)
          获取给定范围中某一属性的值。
 int getAttributesScope(String name)
          获取定义了某个属性的最小范围。
 Bindings getBindings(int scope)
          获取与此 ScriptContext 中的给定范围关联的 Bindings
 Writer getErrorWriter()
          返回用来显示错误输出的 Writer
 Reader getReader()
          返回脚本用来读取输入的 Reader
 List<Integer> getScopes()
          返回 ScriptContext 中所有有效范围值的不可变 List
 Writer getWriter()
          返回脚本的 Writer,以便在显示输出时使用。
 Object removeAttribute(String name, int scope)
          移除给定范围中的某一属性。
 void setAttribute(String name, Object value, int scope)
          设置给定范围中某一属性的值。
 void setBindings(Bindings bindings, int scope)
          将 Bindings 实例与此 ScriptContext 中的特定范围关联。
 void setErrorWriter(Writer writer)
          设置用来显示错误输出的 Writer
 void setReader(Reader reader)
          设置脚本的 Reader,以读取输入。
 void setWriter(Writer writer)
          设置脚本的 Writer,以便在显示输出时使用。
 

字段详细信息

ENGINE_SCOPE

static final int ENGINE_SCOPE
EngineScope 属性在单个 ScriptEngine 的生存期是可见的,并为每个引擎维护一个属性集。

另请参见:
常量字段值

GLOBAL_SCOPE

static final int GLOBAL_SCOPE
GlobalScope 属性对于同一 ScriptEngineFactory 创建的所有引擎都是可见的。

另请参见:
常量字段值
方法详细信息

setBindings

void setBindings(Bindings bindings,
                 int scope)
Bindings 实例与此 ScriptContext 中的特定范围关联。 getAttributesetAttribute 方法的调用必须映射到指定范围的 Bindingsgetput 方法。

参数:
bindings - 与给定范围关联的 Bindings
scope - 范围
抛出:
IllegalArgumentException - 如果没有为此类型 ScriptContext 中的指定范围值定义 Bindings
NullPointerException - 如果 scope 的值为 ENGINE_SCOPE 并且指定的 Bindings 为 null。

getBindings

Bindings getBindings(int scope)
获取与此 ScriptContext 中的给定范围关联的 Bindings

返回:
关联的 Bindings。如果尚未设置,则返回 null
抛出:
IllegalArgumentException - 如果没有为此类型的 ScriptContext 中的指定范围值定义 Bindings

setAttribute

void setAttribute(String name,
                  Object value,
                  int scope)
设置给定范围中某一属性的值。

参数:
name - 要设置的属性的名称
value - 属性值
scope - 属性的设置范围
抛出:
IllegalArgumentException - 如果 name 为空,或者 scope 无效。
NullPointerException - 如果 name 为 null。

getAttribute

Object getAttribute(String name,
                    int scope)
获取给定范围中某一属性的值。

参数:
name - 要获取的属性名称。
scope - 将在其中获取属性的范围。
返回:
属性值。返回 null 表示 name 不存在于给定范围中。
抛出:
IllegalArgumentException - 如果 name 为空,或者 scope 的值无效。
NullPointerException - 如果 name 为 null。

removeAttribute

Object removeAttribute(String name,
                       int scope)
移除给定范围中的某一属性。

参数:
name - 要移除的属性的名称
scope - 移除属性的范围
返回:
移除的值。
抛出:
IllegalArgumentException - 如果 name 为空,或者 scope 无效。
NullPointerException - 如果 name 为 null。

getAttribute

Object getAttribute(String name)
获取范围中按搜索顺序最早出现的具有给定名称的属性的值。搜索顺序由范围参数的数值确定(从最小的范围值开始)。

参数:
name - 要获取的属性的名称。
返回:
具有给定名称的属性的值,该属性位于定义它的最小范围中。如果任何范围中都不存在具有该名称的属性,则返回 null。
抛出:
NullPointerException - 如果 name 为 null。
IllegalArgumentException - 如果 name 为空。

getAttributesScope

int getAttributesScope(String name)
获取定义了某个属性的最小范围。

参数:
name - 属性的名称。
返回:
最小范围。如果在任何范围内都没有定义具有给定名称的属性,则返回 -1。
抛出:
NullPointerException - 如果 name 为 null。
IllegalArgumentException - 如果 name 为空。

getWriter

Writer getWriter()
返回脚本的 Writer,以便在显示输出时使用。

返回:
Writer

getErrorWriter

Writer getErrorWriter()
返回用来显示错误输出的 Writer

返回:
Writer

setWriter

void setWriter(Writer writer)
设置脚本的 Writer,以便在显示输出时使用。

参数:
writer - 新的 Writer

setErrorWriter

void setErrorWriter(Writer writer)
设置用来显示错误输出的 Writer

参数:
writer - Writer

getReader

Reader getReader()
返回脚本用来读取输入的 Reader

返回:
Reader

setReader

void setReader(Reader reader)
设置脚本的 Reader,以读取输入。

参数:
reader - 新的 Reader

getScopes

List<Integer> getScopes()
返回 ScriptContext 中所有有效范围值的不可变 List

返回:
范围值列表