VnanoScriptEngine クラス仕様書
(org.vcssl.nano.VnanoScriptEngine)


概要

VnanoEngine クラスの各機能を、 javax.script.ScriptEngine インターフェース経由で用いるための、ラッパークラスです。

Scripting API(javax.script パッケージ)が利用可能な環境においては、 実行時に Vnano.jar にパスが通っていれば、以下のようにこのクラスのインスタンスを取得できます:

import javax.script.ScriptEngineManager;
import javax.script.ScriptEngine;
...
ScriptEngineManager scriptEngineManager = new ScriptEngineManager();
ScriptEngine vnanoScriptEngine = scriptEngineManager.getEngineByName("vnano");

上記のように、このクラスのインスタンスを取得したり、それを使用(スクリプト実行)するコードは、Vnano.jar が無くてもコンパイル可能です。
そのため、スクリプトエンジンとアプリケーションの分離性を高めたい場合に有用かもしれません。

一方で、細かい制御を全て put メソッド経由で行うのが少しややこしく、また、 Scripting API がサポートされない環境では動作しないなどのデメリットもあります。
特に意図が無ければ、VnanoEngine クラスを直接用いる方が、色々な場面においてシンプルに済みます。

公開コンストラクタ/フィールド/メソッド等の一覧

Object eval(String scriptCode)
引数に指定された式またはスクリプトコードを実行します。
Object eval(Reader reader)
FileReader などの Reader からスクリプトコードを読み込んで実行します。
void put(String name, Object value)
外部関数や変数を接続したり、オプション/パーミッションを設定したり、またはいくつかの特別な操作を行うのに使用します。
Object get(String name)
エンジン情報や言語情報(バージョンなど)の値や、パフォーマンス計測値、 または put(String, Object) メソッドで設定した値を取得します。

公開コンストラクタ

- なし -
(インスタンスはScriptEngineManager経由で取得します。冒頭の、このクラスの説明をご参照ください。)

公開フィールド

- なし -

公開メソッド(未サポートのScriptEngin由来メソッドは除く)

名前 eval
宣言形式 Object eval(String scriptCode) throws ScriptException
機能 引数に指定された式またはスクリプトコードを実行します。
引数 scriptCode: 実行対象の式またはスクリプトコード。
戻り値 式の評価値、またはスクリプトコード内の最後の式文の評価値(存在しない場合は null)
例外 ScriptException: スクリプトの内容または実行過程にエラーが検出された場合にスローされます。
名前 eval
宣言形式 Object eval(Reader reader) throws ScriptException
機能 FileReader などの Reader からスクリプトコードを読み込んで実行します。
引数 reader: 実スクリプトコードを読み込む Reader インスタンス。
戻り値 式の評価値、またはスクリプトコード内の最後の式文の評価値(存在しない場合は null)
例外 ScriptException: スクリプトの内容または実行過程にエラーが検出された場合にスローされます。
名前 put
宣言形式 void put(String name, Object value)
機能

外部関数や変数を接続したり、オプション/パーミッションを設定したり、またはいくつかの特別な操作を行うのに使用します。

引数 "name" の値に "___VNANO_OPTION_MAP" が指定されている場合、このメソッドは、オプション設定を行う VnanoEngine.setOptionMap(Map) メソッドのラッパーとして振舞います。

引数 "name" の値に "___VNANO_PERMISSION_MAP" が指定されている場合、このメソッドは、パーミッション設定を行う VnanoEngine.setPermissionMap(Map) メソッドのラッパーとして振舞います。

引数 "name" の値に "___VNANO_LIBRARY_LIST_FILE" が指定されている場合、このメソッドは、 指定されたリストファイルにパスが記載されたライブラリスクリプトを読み込み、 それらが実行時に実行対象スクリプトに "include" されるよう, エンジンに登録します。

引数 "name" の値に "___VNANO_PLUGIN_LIST_FILE" が指定されている場合、このメソッドは、 指定されたリストファイルにパスが記載されたプラグインを読み込み、 それらをエンジンに接続します。

引数 "name" の値に "___VNANO_COMMAND" が指定されている場合、このメソッドはエンジンの特別なコマンドを実行します。 利用可能な値は org.vcssl.nano.spec.SpecialBindingValue クラス内に定義されています。

上記の全てに該当しない場合には、このメソッドは、プラグインのインスタンスを接続する VnanoEngine.connectPlugin(String, Object) メソッドのラッパーとして振舞います。

引数 name: 上記説明を参照してください。 value: 上記説明を参照してください。
戻り値 なし
例外 なし
名前 get
宣言形式 Object get(String name)
機能 エンジン情報や言語情報(バージョンなど)の値や、パフォーマンス計測値、 または put(String, Object) メソッドで設定した値を取得します。
引数 name: 取得対象の名称、または取得キー。
戻り値 取得した値
例外 なし