JavaTM 2 Platform
Standard Ed. 6

javax.script
介面 ScriptEngineFactory


public interface ScriptEngineFactory

ScriptEngineFactory 用來描述和實例化 ScriptEngine

實作 ScriptEngine 的每個類別都有一個相應的處理器,該處理器公開描述引擎類別的元資料。

ScriptEngineManager 使用 Jar 檔案規範 中描述的服務提供者機制來獲取所有當前 ClassLoader 中可用的 ScriptEngineFactory 實例。

從以下版本開始:
1.6

方法摘要
 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,該 String 可用來調用使用受支持文稿語言語法的 Java 物件的方法。
 List<String> getMimeTypes()
          返回 mimetypes 的不可變列表,這些 mimetypes 與可由引擎執行的文稿關聯。
 List<String> getNames()
          返回 ScriptEngine 短名稱的不可變列表,這些名稱由 ScriptEngineManager 用來標識 ScriptEngine
 String getOutputStatement(String toDisplay)
          返回一個 String,該 String 可用作一個語句來顯示使用受支持文稿語言語法的指定 String。
 Object getParameter(String key)
          返回屬性值,該屬性的含義可能是特定於實作的。
 String getProgram(String... statements)
          返回一個套件含給定語句的有效文稿語言的可執行程序。
 ScriptEngine getScriptEngine()
          返回與此 ScriptEngineFactory 關聯的 ScriptEngine 的實例。
 

方法詳細資訊

getEngineName

String getEngineName()
返回 ScriptEngine 的完全名稱。例如,基於 Mozilla Rhino Javascript 引擎的實作可以返回 Rhino Mozilla Javascript Engine

返回:
引擎實作的名稱。

getEngineVersion

String getEngineVersion()
返回 ScriptEngine 的版本。

返回:
ScriptEngine 實作版本。

getExtensions

List<String> getExtensions()
返回檔案擴展名的不可變列表,這些擴展名通常標識使用此 ScriptEngine 支持的語言所編寫的文稿。該陣列由 ScriptEngineManager 使用,用於實作其 getEngineByExtension 方法。

返回:
擴展名列表。

getMimeTypes

List<String> getMimeTypes()
返回 mimetypes 的不可變列表,這些 mimetypes 與可由引擎執行的文稿關聯。該列表由 ScriptEngineManager 類別使用,用於實作其 getEngineByMimetype 方法。

返回:
mime 型別的列表。

getNames

List<String> getNames()
返回 ScriptEngine 短名稱的不可變列表,這些名稱由 ScriptEngineManager 用來標識 ScriptEngine。例如,基於 Mozilla Rhino Javascript 引擎的實作可以返回包含 {"javascript", "rhino"} 的列表。


getLanguageName

String getLanguageName()
返回此 ScriptEngine 支持的文稿語言的名稱。

返回:
受支持語言的名稱。

getLanguageVersion

String getLanguageVersion()
返回此 ScriptEngine 支持的文稿語言的版本。

返回:
受支持語言的版本。

getParameter

Object getParameter(String key)
返回屬性值,該屬性的含義可能是特定於實作的。其值在所有實作中定義的鍵有:

用於這些鍵的值分別是 getEngineNamegetEngineVersiongetNamegetLanguageNamegetLanguageVersion 返回的 String。

還定義了保留鍵 THREADING,它的值描述了與文稿共時執行和狀態維護有關的引擎行為。用於 THREADING 鍵的值有:



實作可以定義特定於實作的鍵。

參數:
key - 參數名
返回:
給定參數的值。如果沒有為鍵分派值,則返回 null

getMethodCallSyntax

String getMethodCallSyntax(String obj,
                           String m,
                           String... args)
返回一個 String,該 String 可用來調用使用受支持文稿語言語法的 Java 物件的方法。例如,Javascript 引擎的實作可能是:

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 += ")";
} else {
ret += ",";
          }
      }
return ret;
 }

參數:
obj - 表示其方法將被調用的物件的名稱。該名稱是用來使用 ScriptEngineput 方法、ENGINE_SCOPE Bindingsput 方法或者 ScriptContextsetAttribute 方法創建 bindings 的名稱。文稿中使用的標識符可以是指定標識符的裝飾形式。
m - 要調用的方法的名稱。
args - 方法調用中的參數名稱。
返回:
用來調用使用文稿語言語法的方法的 String。

getOutputStatement

String getOutputStatement(String toDisplay)
返回一個 String,該 String 可用作一個語句來顯示使用受支持文稿語言語法的指定 String。例如,Perl 引擎的實作可能是:


public String getOutputStatement(String toDisplay) {
return "print(" + toDisplay + ")";
 }
 

參數:
toDisplay - 將由返回的語句顯示的 String。
返回:
用來顯示使用文稿語言語法的 String 的字元串。

getProgram

String getProgram(String... statements)
返回一個套件含給定語句的有效文稿語言的可執行程序。例如,PHP 引擎的實作可能是:


public String getProgram(String... statements) {
$retval = "<?\n";
int len = statements.length;
for (int i = 0; i < len; i++) {
$retval += statements[i] + ";\n";
      }
$retval += "?>";

 }
 

參數:
statements - 要執行的語句。可能是調用 getMethodCallSyntaxgetOutputStatement 方法的返回值。
返回:
程序

getScriptEngine

ScriptEngine getScriptEngine()
返回與此 ScriptEngineFactory 關聯的 ScriptEngine 的實例。通常返回一個新的 ScriptEngine,但這些實作可以池化、共享或重用引擎。

返回:
新的 ScriptEngine 實例。

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only