パッケージ jakarta.el

クラス ELContext

  • 既知の直属サブクラス
    FaceletContextStandardELContext

    public abstract class ELContext
    extends ObjectSE
    式の解析および評価のコンテキスト情報。

    Expression を解析または評価するには、ELContext を提供する必要があります。ELContext は以下を保持します。

    • Jakarta Expression Language Functions の解決に使用される FunctionMapper への参照。これは解析でのみ使用されます。
    • Jakarta Expression Language Variables の解決に使用される VariableMapper への参照。これは解析でのみ使用されます。
    • モデルオブジェクトとそのプロパティを解決するために参照されるベース ELResolver への参照
    • ELResolver が使用するすべての関連するコンテキストオブジェクトのコレクション
    • プロパティがまだ解決されているかどうかなど、式の評価中の状態情報
    • インポートされたクラスを解決するために参照される ImportHandler への参照
    • アクティブな LambdaExpression の引数への参照
    • 登録された評価リスナーのリストへの参照

    各 ELResolver は異なるコンテキストオブジェクトにアクセスする必要があるため、コンテキストオブジェクトのコレクションが必要です。例: Jakarta Server Pages および Jakarta Faces リゾルバーは、それぞれ jakarta.servlet.jsp.JspContext および jakarta.faces.context.FacesContext にアクセスする必要があります。

    Web コンテナーで使用される場合、ELContext オブジェクトの作成は、基礎となるテクノロジーによって制御されます。例: Jakarta Server Pages では、JspContext.getELContext() ファクトリ方式が使用されます。一部のテクノロジーは、ELContextListener を追加する機能を提供するため、アプリケーションおよびフレームワークは、独自に作成された ELContext に独自のコンテキストオブジェクトを確実に接続できます。

    StandardELContext は、スタンドアロン環境で使用される場合、ELManager によって管理および変更されるデフォルトの ELContext を提供します。

    式の評価中に状態を保存するため、ELContext オブジェクトはスレッドセーフではありません。2 つ以上のスレッド間で ELContext インスタンスを共有しないように注意する必要があります。

    導入:
    Jakarta Expression Language 2.1 および Jakarta Expression Language 3.0
    関連事項:
    ELContextListener, ELContextEvent, ELResolver, FunctionMapper, VariableMapper, ImportHandler, LambdaExpression, StandardELContext
    • コンストラクターの詳細

      • ELContext

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

      • setPropertyResolved

        public void setPropertyResolved​(boolean resolved)
        ELResolver が特定の(ベース、プロパティ)ペアを正常に解決したことを示すために呼び出されます。解決が true の場合は setPropertyResolved(Object, Object) を使用し、EvaluationListener に通知します。

        CompositeELResolver はこのプロパティをチェックして、他のコンポーネントリゾルバーを考慮するかスキップするかを決定します。

        パラメーター:
        resolved - プロパティが解決されている場合は true、解決されていない場合は false。
        関連事項:
        CompositeELResolver
      • setPropertyResolved

        public void setPropertyResolved​(ObjectSE base,
                                        ObjectSE property)
        ELResolver が特定の(ベース、プロパティ)ペアを正常に解決したことを示し、EvaluationListener に通知するために呼び出されます。

        CompositeELResolver はこのプロパティをチェックして、他のコンポーネントリゾルバーを考慮するかスキップするかを決定します。

        パラメーター:
        base - 基本オブジェクト
        property - プロパティオブジェクト
        導入:
        Jakarta Expression Language 3.0
        関連事項:
        CompositeELResolver
      • isPropertyResolved

        public boolean isPropertyResolved()
        ELResolver が指定された(ベース、プロパティ)ペアを正常に解決したかどうかを返します。

        CompositeELResolver はこのプロパティをチェックして、他のコンポーネントリゾルバーを考慮するかスキップするかを決定します。

        戻り値:
        プロパティが解決されている場合は true、解決されていない場合は false。
        関連事項:
        CompositeELResolver
      • putContext

        public void putContext​(ClassSE<?> key,
                               ObjectSE contextObject)
        コンテキストオブジェクトをこの ELContext に関連付けます。

        ELContext は、式の評価に関連するコンテキストオブジェクトのコレクションを保持します。これらのコンテキストオブジェクトは ELResolver によって使用されます。このメソッドは、そのコレクションにコンテキストオブジェクトを追加するために使用されます。

        慣例により、contextObject は key で指定された型になります。ただし、これは必須ではなく、キーは一意の識別子として厳密に使用されます。

        パラメーター:
        key - このコンテキストオブジェクトを識別するために @{link ELResolver} によって使用されるキー。
        contextObject - コレクションに追加するコンテキストオブジェクト。
        例外:
        NullPointerExceptionSE - キーが null の場合、または contextObject が null の場合。
      • getContext

        public ObjectSE getContext​(ClassSE<?> key)
        指定されたキーに関連付けられたコンテキストオブジェクトを返します。

        ELContext は、式の評価に関連するコンテキストオブジェクトのコレクションを保持します。これらのコンテキストオブジェクトは ELResolver によって使用されます。このメソッドは、指定されたキーを持つコンテキストをコレクションから取得するために使用されます。

        慣例により、返されるオブジェクトは key で指定された型になります。ただし、これは必須ではなく、キーは一意の識別子として厳密に使用されます。

        パラメーター:
        key - コンテキストオブジェクトをこの ELContext に関連付けるために使用された一意の識別子。
        戻り値:
        指定されたキーに関連付けられたコンテキストオブジェクト。そのようなコンテキストが見つからなかった場合は null。
        例外:
        NullPointerExceptionSE - キーが null の場合。
      • getELResolver

        public abstract ELResolver getELResolver()
        このコンテキストに関連付けられた ELResolver を取得します。

        ELContext は、式の評価中に変数とプロパティを解決するために参照される ELResolver への参照を維持します。このメソッドは、リゾルバーへの参照を取得します。

        ELContext が構築されると、コンテキストに関連付けられた ELResolver への参照は変更できません。

        戻り値:
        式の評価中に変数とプロパティの解決のために参照されるリゾルバー。
      • getImportHandler

        public ImportHandler getImportHandler()
        この ELContext に関連付けられた ImportHandler を取得します。
        戻り値:
        クラスとパッケージのインポートを管理するインポートハンドラー。
        導入:
        Jakarta Expression Language 3.0
      • getFunctionMapper

        public abstract FunctionMapper getFunctionMapper()
        この ELContext に関連付けられた FunctionMapper を取得します。
        戻り値:
        Jakarta Expression Language 関数の解決のために参照される関数マッパー。
      • getLocale

        public LocaleSE getLocale()
        setLocale(java.util.Locale) への以前の呼び出しで格納された Locale を取得します。このメソッドが非 null を返す場合、この Locale は、実装におけるすべてのローカライゼーションのニーズに使用する必要があります。Locale を動的に変更するアプリケーションを可能にするために、Locale をキャッシュしないでください。
        戻り値:
        このインスタンスが動作している Locale。主にメッセージのローカライズに使用されます。
      • setLocale

        public void setLocale​(LocaleSE locale)
        このインスタンスの Locale を設定します。

        このメソッドは、Jakarta Faces や Jakarta Server Pages などのインスタンスを作成するパーティによって呼び出され、Jakarta Expression Language 実装がローカライズされたメッセージをユーザーに提供できるようにします。Locale が設定されていない場合、実装は Locale.getDefault( ) によって返されるロケールを使用する必要があります。

        パラメーター:
        locale - このインスタンスのロケール
      • getVariableMapper

        public abstract VariableMapper getVariableMapper()
        この ELContext に関連付けられた VariableMapper を取得します。
        戻り値:
        Jakarta Expression Language 変数の解決のために参照される変数マッパー。
      • addEvaluationListener

        public void addEvaluationListener​(EvaluationListener listener)
        評価リスナーを ELContext に登録します。
        パラメーター:
        listener - 追加するリスナー。
        導入:
        Jakarta Expression Language 3.0
      • getEvaluationListeners

        public ListSE<EvaluationListener> getEvaluationListeners()
        登録された評価リスナーのリストを返します。
        戻り値:
        登録された評価リスナーのリスト。
        導入:
        Jakarta Expression Language 3.0
      • notifyBeforeEvaluation

        public void notifyBeforeEvaluation​(StringSE expr)
        Jakarta Expression Language 式が評価される前にリスナーに通知します
        パラメーター:
        expr - 評価される Jakarta Expression Language 式の文字列
      • notifyAfterEvaluation

        public void notifyAfterEvaluation​(StringSE expr)
        Jakarta Expression Language 式が評価された後にリスナーに通知します
        パラメーター:
        expr - 評価された Jakarta Expression Language 式文字列
      • notifyPropertyResolved

        public void notifyPropertyResolved​(ObjectSE base,
                                           ObjectSE property)
        (base、property)ペアが解決されたときにリスナーに通知します
        パラメーター:
        base - 基本オブジェクト
        property - プロパティオブジェクト
      • isLambdaArgument

        public boolean isLambdaArgument​(StringSE arg)
        名前が LambdaArgument かどうかを問い合わせます
        パラメーター:
        arg - 可能な Lambda 仮パラメーター名
        戻り値:
        arg が LambdaArgument の場合は true、それ以外の場合は false。
      • getLambdaArgument

        public ObjectSE getLambdaArgument​(StringSE arg)
        仮パラメーターに関連付けられた Lambda 引数を取得します。Lambda 式が他の Lambda 式内にネストされている場合、現在の Lambda 式の引数が最初に検索され、見つからない場合は、直接ネストされている Lambda 式の引数が検索されます。
        パラメーター:
        arg - Lambda 引数の仮パラメーター
        戻り値:
        仮パラメーターに関連付けられたオブジェクト。オブジェクトがパラメーターに関連付けられていない場合は null。
        導入:
        Jakarta Expression Language 3.0
      • enterLambdaScope

        public void enterLambdaScope​(MapSE<StringSE,​ObjectSE> args)
        ラムダ式の評価に備えて、ラムダ引数マップをインストールします。マップ内の引数は、ラムダ式の評価中にスコープに含まれます。
        パラメーター:
        args - ラムダ引数マップ
        導入:
        Jakarta Expression Language 3.0
      • exitLambdaScope

        public void exitLambdaScope()
        Lambda 式の評価を終了します。以前にインストールされていた Lambda 引数マップは削除されました。
        導入:
        Jakarta Expression Language 3.0
      • convertToType

        public <T> T convertToType​(ObjectSE obj,
                                   ClassSE<T> targetType)
        オブジェクトを特定の型に変換します。ELResolver のカスタムコンバーターがこの変換を処理する場合は、それが使用されます。それ以外の場合は、標準の強制が適用されます。

        変換中にエラーが発生すると、ELException がスローされます。

        パラメーター:
        obj - 変換するオブジェクト。
        targetType - 変換のターゲット型。
        戻り値:
        targetType に変換されたオブジェクト
        例外:
        ELException - エラーが発生した場合にスローされます。
        導入:
        Jakarta Expression Language 3.0