モジュール java.scripting
パッケージ javax.script

インタフェースScriptEngineFactory


public interface ScriptEngineFactory
ScriptEngineFactoryは、ScriptEnginesの説明およびインスタンス化に使用されます。

ScriptEngineを実装する各クラスには、エンジン・クラスを記述するメタデータを公開するための対応するファクトリが存在します。


ScriptEngineManagerは、ScriptEngineFactoryインスタンスのインスタンスを取得するために、ServiceLoaderクラスで記述されているサービス・プロバイダ・ローダー・メカニズムを使用します。
ScriptEngineManager()ScriptEngineManager(java.lang.ClassLoader)を参照してください。
導入されたバージョン:
1.6
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    ScriptEngineの完全な名前を返します。
    ScriptEngineのバージョンを返します。
    ファイル名拡張子の不変のリストを返します。通常、ファイル名拡張子は、このScriptEngineによってサポートされる言語で記述されたスクリプトを識別します。
    このScriptEngineがサポートするスクリプト言語の名前を返します。
    このScriptEngineがサポートするスクリプト言語のバージョンを返します。
    getMethodCallSyntax​(String obj, String m, String... args)
    サポートされるスクリプト言語の構文を使用してJavaオブジェクトのメソッドを呼び出すために使用可能なStringを返します。
    エンジンが実行できるスクリプトに関連付けられた、MimeTypeの不変のリストを返します。
    ScriptEngineの短い名前の不変のリストを返します。短い名前は、ScriptEngineManagerによるScriptEngineの識別に使用可能です。
    getOutputStatement​(String toDisplay)
    サポートされるスクリプト言語の構文を使用して、指定されたStringを表示するための文として使用可能なStringを返します。
    属性の値を返します。この値は実装に固有の意味を持つ場合もあります。
    getProgram​(String... statements)
    指定された文を含む、スクリプト言語の有効な実行可能プログラムを返します。
    このScriptEngineFactoryに関連付けられたScriptEngineのインスタンスを返します。
  • メソッドの詳細

    • getEngineName

      String getEngineName()
      ScriptEngineの完全な名前を返します。 たとえば、Mozilla Rhino Javascriptエンジンに基づいた実装はRhino Mozilla Javascript Engineを返します。
      戻り値:
      エンジンの実装の名前。
    • getEngineVersion

      String getEngineVersion()
      ScriptEngineのバージョンを返します。
      戻り値:
      ScriptEngine実装のバージョン。
    • getExtensions

      List<String> getExtensions()
      ファイル名拡張子の不変のリストを返します。通常、ファイル名拡張子は、このScriptEngineによってサポートされる言語で記述されたスクリプトを識別します。 この配列は、ScriptEngineManagergetEngineByExtensionメソッドを実装するために使用します。
      戻り値:
      拡張子のリスト。
    • getMimeTypes

      List<String> getMimeTypes()
      エンジンが実行できるスクリプトに関連付けられた、MimeTypeの不変のリストを返します。 このリストは、ScriptEngineManagergetEngineByMimetypeメソッドを実装するために使用します。
      戻り値:
      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)
      属性の値を返します。この値は実装に固有の意味を持つ場合もあります。 値がすべての実装で定義されるキーは次のとおりです。
      • ScriptEngine.ENGINE
      • ScriptEngine.ENGINE_VERSION
      • ScriptEngine.LANGUAGE
      • ScriptEngine.LANGUAGE_VERSION
      • ScriptEngine.NAME

      最初の4つのキーについては、これらのキーの値はそれぞれgetEngineNamegetEngineVersiongetLanguageNamegetLanguageVersionによって返される文字列です。 NAMEについては、getNamesによって返される文字列のいずれかが返されます。

      予約済キーTHREADINGも定義されています。このキーの値は、スクリプトの並行実行と状態の管理に関するエンジンの動作を記述します。
      THREADINGキーの値は次のとおりです。

      • null - エンジン実装はスレッド・セーフでないため、複数のスレッド上で同時にスクリプトを実行するためには使用できません。
      • "MULTITHREADED" - エンジン実装は内部的にスレッドセーフなので複数のスクリプトを同時に実行できますが、あるスレッド上でのスクリプト実行の効果が別のスレッド上のスクリプトから見える可能性があります。
      • 「THREAD-ISOLATED」 - エンジン実装は「MULTITHREADED」の要件を満たし、さらに異なるスレッド上で実行されているスクリプト内のシンボルに対して独立した値を維持します。
      • "STATELESS" - この実装は、"THREAD-ISOLATED"の要件を満たしています。 また、スクリプトの実行によって、ScriptEngineのエンジン・スコープであるBindings内のマッピングが変更されることはありません。 特に、Bindings内のキーおよび関連付けられた値は、スクリプトの実行前後で同じです。


      各実装では実装固有のキーを定義できます。

      パラメータ:
      key - パラメータの名前
      戻り値:
      指定されたパラメータの値。 キーに割り当てられている値がない場合はnull
      例外:
      NullPointerException - keyがnullの場合
    • getMethodCallSyntax

      String getMethodCallSyntax(String obj, String m, String... args)
      サポートされるスクリプト言語の構文を使用してJavaオブジェクトのメソッドを呼び出すために使用可能なStringを返します。 たとえば、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 += ",";
                }
            }
            ret += ")";
            return ret;
       }
        
      パラメータ:
      obj - 呼び出されるメソッドを持つオブジェクトを表す名前。 この名前は、ScriptEngineputメソッド、ENGINE_SCOPE Bindingsputメソッド、ScriptContextsetAttributeメソッドを使用してバインディングを作成するときに使用します。 スクリプトで使用される識別子は、指定された識別子の装飾された形式とすることもできる。
      m - 呼び出されるメソッドの名前。
      args - メソッドの呼出しで指定される引数の名前。
      戻り値:
      スクリプト言語の構文でメソッドの呼出しに使用されるString。
      例外:
      NullPointerException - objまたはmまたはargsまたはargsのいずれかの要素がnullの場合。
    • getOutputStatement

      String getOutputStatement(String toDisplay)
      サポートされるスクリプト言語の構文を使用して、指定された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) {
            String retval = "<?\n";
            int len = statements.length;
            for (int i = 0; i < len; i++) {
                retval += statements[i] + ";\n";
            }
            return retval += "?>";
       }
       
      パラメータ:
      statements - 実行される文。 getMethodCallSyntaxおよびgetOutputStatementメソッドの呼出しの戻り値でもよい。
      戻り値:
      プログラム
      例外:
      NullPointerException - statements配列またはその要素のいずれかがnullの場合
    • getScriptEngine

      ScriptEngine getScriptEngine()
      このScriptEngineFactoryに関連付けられたScriptEngineのインスタンスを返します。 通常、新しいScriptEngineが返されますが、実装でエンジンをプール、共有または再利用することもできます。
      戻り値:
      ScriptEngineの新しいインスタンス。