public interface ScriptEngineFactory
ScriptEngineFactory
用于描述和实例化ScriptEngines
。
ScriptEngine
具有对应的工厂暴露元数据描述发动机类。
ScriptEngineManager
使用Jar文件规范中描述的服务提供者机制来获取当前ClassLoader中可用的所有ScriptEngineFactories
的实例。
Modifier and Type | Method and Description |
---|---|
String |
getEngineName()
返回
ScriptEngine 的全名。
|
String |
getEngineVersion()
返回
ScriptEngine 的版本。
|
List<String> |
getExtensions()
返回的文件扩展名,一般识别写在该支持的语言脚本的不可变列表
ScriptEngine 。
|
String |
getLanguageName()
返回此
ScriptEngine 的脚本语言的名称。
|
String |
getLanguageVersion()
返回此
ScriptEngine 的脚本语言的版本。
|
String |
getMethodCallSyntax(String obj, String m, String... args)
返回一个String,可以使用支持的脚本语言的语法来调用Java对象的方法。
|
List<String> |
getMimeTypes()
返回一个不可变的mimetype列表,与引擎可执行的脚本相关联。
|
List<String> |
getNames()
返回短名称的不可变列表
ScriptEngine ,它可用于识别
ScriptEngine 由
ScriptEngineManager 。
|
String |
getOutputStatement(String toDisplay)
返回一个可用作语句的字符串,使用支持的脚本语言的语法显示指定的String。
|
Object |
getParameter(String key)
返回属性的值,该属性的含义可能是实现特定的。
|
String |
getProgram(String... statements)
返回带有给定语句的有效脚本语言可执行程序。
|
ScriptEngine |
getScriptEngine()
返回与此
ScriptEngineFactory 相关
ScriptEngine ScriptEngine的一个实例。
|
String getEngineName()
ScriptEngine
的全名。
例如,基于Mozilla Rhino Javascript引擎的实现可能会返回Rhino Mozilla Javascript Engine 。
String getEngineVersion()
ScriptEngine
的版本。
ScriptEngine
实现版本。
List<String> getExtensions()
ScriptEngine
的语言编写的脚本。
该阵列由ScriptEngineManager
用于实现其getEngineByExtension
方法。
List<String> getMimeTypes()
ScriptEngineManager
类用于实现其getEngineByMimetype
方法。
List<String> getNames()
ScriptEngine
,它可用于识别ScriptEngine
由ScriptEngineManager
。
例如,基于Mozilla Rhino Javascript引擎的实现可能会返回包含{“javascript”,“rhino”}的列表。
String getLanguageName()
ScriptEngine
的脚本语言的名称。
String getLanguageVersion()
ScriptEngine
的脚本语言版本。
Object getParameter(String key)
这些键中的值是由返回的字符串getEngineName
, getEngineVersion
, getName
, getLanguageName
和getLanguageVersion
分别。
保留键THREADING
,其值描述了引擎在并行执行脚本和维护状态方面的行为。 这些值为THREADING
关键是:
null
- 引擎实现不是线程安全的,不能用于在多个线程上同时执行脚本。 "MULTITHREADED"
- 引擎实现是内部线程安全的,并且脚本可以同时执行,尽管在一个线程上执行脚本的效果对于其他线程上的脚本可能是可见的。 "THREAD-ISOLATED"
- 该实现满足“MULTITHREADED”的要求,并且引擎为在不同线程上执行的脚本中的符号维护独立值。 "STATELESS"
- 实现满足要求 "THREAD-ISOLATED"
。 此外,脚本执行不改变的映射Bindings
这是发动机范围ScriptEngine
。 特别是,在按键Bindings
及其关联值之前和脚本执行后是相同的。 key
- 参数的名称
null
。
String getMethodCallSyntax(String obj, String m, String... args)
public String getMethodCallSyntax(String obj, String m, String... args) { String ret = obj; ret += "." + m + "("; for (int i = 0; i < args.length; i++) { ret += args[i]; if (i < args.length - 1) { ret += ","; } } ret += ")"; return ret; }
obj
- 表示要调用其方法的对象的名称。
名称是一个用于创建使用绑定put
的方法ScriptEngine
,所述put
一个的方法ENGINE_SCOPE
Bindings
,或setAttribute
的方法ScriptContext
。
脚本中使用的标识符可以是指定的标识符的装饰形式。
m
- 要调用的方法的名称。
args
- 方法调用中的参数的名称。
String getOutputStatement(String toDisplay)
public String getOutputStatement(String toDisplay) { return "print(" + toDisplay + ")"; }
toDisplay
- 要返回的语句显示的字符串。
String getProgram(String... statements)
public String getProgram(String... statements) { String retval = "<?\n"; int len = statements.length; for (int i = 0; i < len; i++) { retval += statements[i] + ";\n"; } return retval += "?>"; }
statements
- 要执行的语句。
可能会返回值为getMethodCallSyntax
和getOutputStatement
方法。
ScriptEngine getScriptEngine()
ScriptEngineFactory
相关ScriptEngine
ScriptEngine的一个实例。
通常返回一个新的ScriptEngine,但实现可能会共享,共享或重用引擎。
ScriptEngine
实例。