パッケージ jakarta.el

クラス ELProcessor


  • public class ELProcessor
    extends ObjectSE
    スタンドアロン環境で Jakarta Expression Language を使用するための API を提供します。

    このクラスは、直接でシンプルなインターフェースを提供します

    • Jakarta Expression Language 式の評価。
    • Bean への値の割り当て、または Bean プロパティの設定。
    • ValueExpression を Jakarta Expression Language 変数に設定します。
    • 静的メソッドを Jakarta Expression Language 関数として定義します。
    • オブジェクトインスタンスを Jakarta Expression Language 名として定義します。

    この API は、Jakarta Expression Language 2.2 の API に代わるものではありません。Jakarta Expression Language 環境を維持するコンテナーは、この API を使用せずに引き続き維持できます。

    カスタム ELResolver の追加など、Jakarta Expression Language 環境を操作したい Jakarta Expression Language ユーザーには、ELManager を使用できます。

    スコープとライフサイクル

    Jakarta Expression Language 環境の状態を維持するため、ELProcessor はスレッドセーフではありません。最も単純なケースでは、Jakarta Expression Language 式の評価の前後にインスタンスを作成および破棄できます。より一般的な使用箇所は、セッションに ELProcessor のインスタンスを使用して、ユーザーがそのセッションの Jakarta Expression Language 評価環境を構成できるようにすることです。

    式の自動ブラケット

    クラスで使用される Jakarta Expression Language 式の文字列に関するメモ。メソッド getValue(java.lang.String, java.lang.Class<T>)setValue(java.lang.String, java.lang.Object)setVariable(java.lang.String, java.lang.String) で許可されている文字列は、非複合式、つまり ${...} または #{...} 形式の式のみに制限されています。また、これらのメソッドで ${ または #{ および } を含む式文字列を括弧する必要はありません(実際には許可されていません)。これらは自動的にブラケットされます。これにより、機能が失われることなく、視覚的なクラスターが削減されます(連結演算子の追加により)。

    サンプル

    次のコードスニペットは、ELProcessor を使用して Bean を定義し、そのプロパティを評価する方法を示しています。
     ELProcessor elp = new ELProcessor();
     elp.defineBean("employee", new Employee("Charlie Brown"));
     String name = elp.eval("employee.name");
     
    導入:
    Jakarta Expression Language 3.0
    • コンストラクターの詳細

      • ELProcessor

        public ELProcessor()
    • メソッドの詳細

      • getELManager

        public ELManager getELManager()
        Jakarta Expression Language 処理に使用される ELManager を返します。
        戻り値:
        Jakarta Expression Language 処理に使用される ELManager。
      • eval

        public <T> T eval​(StringSE expression)
        Jakarta Expression Language 式を評価します。
        パラメーター:
        expression - 評価される Jakarta Expression Language 式。
        戻り値:
        式評価の結果。
      • getValue

        public <T> T getValue​(StringSE expression,
                              ClassSE<T> expectedType)
        Jakarta Expression Language 式を評価し、結果を指定された型に強制変換します。
        パラメーター:
        expression - 評価される Jakarta Expression Language 式。
        expectedType - 結果の評価が強制される型を指定します。
        戻り値:
        式評価の結果。
      • setValue

        public void setValue​(StringSE expression,
                             ObjectSE value)
        新しい値で式を設定します。最後のプロパティ解決までターゲット式が評価され、結果の(ベース、プロパティ)ペアが指定された値に設定されます。
        パラメーター:
        expression - ターゲット式
        value - 設定する新しい値。
        例外:
        PropertyNotFoundException - 指定された変数またはプロパティが存在しないか、読み込めないために、プロパティの解決の 1 つが失敗した場合。
        PropertyNotWritableException - 指定された変数またはプロパティが書き込み可能ではないために、最終的な変数またはプロパティの解決が失敗した場合。
        ELException - プロパティまたは変数を設定しようとしたときに例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
      • setVariable

        public void setVariable​(StringSE var,
                                StringSE expression)
        Jakarta Expression Language 式を Jakarta Expression Language 変数に割り当てます。式は解析されますが評価されません。解析された式は、ローカル変数マップの Jakarta Expression Language 変数にマップされます。以前に同じ変数に割り当てられた式は置き換えられます。式が null の場合、変数は削除されます。
        パラメーター:
        var - 変数の名前。
        expression - 変数に割り当てられる Jakarta Expression Language 式。
      • defineFunction

        public void defineFunction​(StringSE prefix,
                                   StringSE function,
                                   StringSE className,
                                   StringSE method)
                            throws ClassNotFoundExceptionSE,
                                   NoSuchMethodExceptionSE
        ローカル関数マッパーで Jakarta Expression Language 関数を定義します。
        パラメーター:
        prefix - 関数の名前空間。名前空間がない場合は ""。
        function - 関数の名前。空("")の場合、メソッド名が関数名として使用されます。
        className - 関数を実装する完全な Java クラス名。
        method - 関数を実装する静的メソッドの名前(括弧なしで指定)またはシグニチャー(Java 言語仕様など)。名前( "sum" など)が指定されている場合、クラスで最初に宣言された、その名前に一致するメソッドが選択されます。シグネチャー(「int sum(int、int)」など)が指定されている場合は、シグネチャーを持つ宣言されたメソッドが選択されます。
        例外:
        NullPointerExceptionSE - 引数のいずれかが null の場合。
        ClassNotFoundExceptionSE - 指定されたクラスが存在しない場合。
        NoSuchMethodExceptionSE - メソッド(署名ありまたはなし)がクラスの宣言されたメソッドでない場合、メソッドの署名が有効でない場合、メソッドが静的メソッドでない場合
      • defineFunction

        public void defineFunction​(StringSE prefix,
                                   StringSE function,
                                   MethodSE method)
                            throws NoSuchMethodExceptionSE
        ローカル関数マッパーで Jakarta Expression Language 関数を定義します。
        パラメーター:
        prefix - 関数の名前空間。名前空間がない場合は ""。
        function - 関数の名前。空("")の場合、メソッド名が関数名として使用されます。
        method - 関数を実装するメソッドの java.lang.reflect.Method インスタンス。
        例外:
        NullPointerExceptionSE - 引数のいずれかが null の場合。
        NoSuchMethodExceptionSE - メソッドが静的メソッドでない場合
      • defineBean

        public void defineBean​(StringSE name,
                               ObjectSE bean)
        ローカル Bean リポジトリで Bean を定義し、同じ名前の他の Bean を非表示にします。
        パラメーター:
        name - Bean の名前
        bean - 定義する Bean インスタンス。null の場合、名前はローカル Bean リポジトリから削除されます。