パッケージ jakarta.el

クラス StaticFieldELResolver


  • public class StaticFieldELResolver
    extends ELResolver
    静的フィールド、列挙型定数、静的メソッドを解決するための ELResolver。また、コンストラクター呼び出しを特別なケースとして処理します。

    リゾルバーは、通常 Jakarta Expression Language 実装によって生成される型 ELClass の基本オブジェクトを処理します。

    導入:
    Jakarta Expression Language 3.0
    関連事項:
    ELClass
    • コンストラクターの詳細

      • StaticFieldELResolver

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

      • getValue

        public ObjectSE getValue​(ELContext context,
                               ObjectSE base,
                               ObjectSE property)

        静的フィールドの値を返します。

        ベースオブジェクトが ELClass のインスタンスであり、プロパティが String の場合、戻る前に、このリゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

        プロパティが ELClass で指定されたクラスのパブリック静的フィールドである場合、静的フィールドの値を返します。Enum 定数は、Enum オブジェクトの静的なパブリックフィールドであり、この特殊なケースです。
        次で指定:
        クラス ELResolvergetValue 
        パラメーター:
        context - この評価のコンテキスト。
        base - ELClass
        property - 静的フィールド名。
        戻り値:
        ELContext の propertyResolved プロパティが true に設定されている場合、静的フィールドの値。
        例外:
        NullPointerExceptionSE - コンテキストが null の場合。
        PropertyNotFoundException - 指定されたクラスが存在しない場合、フィールドがクラスのパブリック静的フィールドでない場合、またはフィールドにアクセスできない場合。
      • setValue

        public void setValue​(ELContext context,
                             ObjectSE base,
                             ObjectSE property,
                             ObjectSE value)

        静的フィールドへの書き込みを試みます。

        ベースオブジェクトが ELClass のインスタンスであり、プロパティが String の場合、静的フィールドへの書き込みが許可されていないため、PropertyNotWritableException が常にスローされます。

        次で指定:
        クラス ELResolversetValue 
        パラメーター:
        context - この評価のコンテキスト。
        base - ELClass
        property - フィールドの名前
        value - クラスのフィールドに設定する値。
        例外:
        NullPointerExceptionSE - コンテキストが null の場合
        PropertyNotWritableException - ELClass のベースオブジェクトインスタンスと String の property インスタンスの場合
      • invoke

        public ObjectSE invoke​(ELContext context,
                             ObjectSE base,
                             ObjectSE methodName,
                             ClassSE<?>[] paramTypes,
                             ObjectSE[] params)
        public static メソッドまたはクラスのコンストラクターを呼び出します。

        ベースオブジェクトが ELClass のインスタンスであり、メソッドが String である場合、戻る前に、リゾルバーによって ELContext オブジェクトの propertyResolved プロパティを true に設定する必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は戻り値を無視する必要があります。

        method で指定された静的な public メソッドを呼び出します。

        メソッドの選択に関係するプロセスは、BeanELResolver で使用されるプロセスと同じです。

        特殊なケースとして、メソッドの名前が "<init>" の場合、クラスのコンストラクターが呼び出されます。

        オーバーライド:
        クラス ELResolverinvoke 
        パラメーター:
        base - ELClass
        methodName - String に強制変換される場合、メソッドの単純な名前。
        paramTypes - メソッドの仮パラメーター型を宣言された順序で識別する Class オブジェクトの配列。メソッドにパラメーターがない場合は、空の配列を使用します。null にすることができます。その場合、メソッドの仮パラメーターの型は不明であると見なされます。
        params - メソッドに渡すパラメーター。パラメーターがない場合は null
        context - この評価のコンテキスト。
        戻り値:
        メソッド呼び出しの結果(メソッドに void 戻り値の型がある場合は null)。
        例外:
        MethodNotFoundException - 適切な方法が見つからない場合。
        ELException - (ベース、メソッド)解決の実行中に例外がスローされた場合スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。スローされた例外が InvocationTargetException の場合、その cause を抽出し、それを ELException コンストラクターに渡します。
      • getType

        public ClassSE<?> getType​(ELContext context,
                                ObjectSE base,
                                ObjectSE property)
        静的フィールドの型を返します。

        ベースオブジェクトが ELClass のインスタンスであり、プロパティが文字列である場合、ELContext オブジェクトの propertyResolved プロパティは、戻る前にリゾルバーによって true に設定される必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は値が設定されていないと安全に想定できます。

        次で指定:
        クラス ELResolvergetType 
        パラメーター:
        context - この評価のコンテキスト。
        base - ELClass
        property - フィールドの名前
        戻り値:
        ELContext の propertyResolved プロパティが true に設定されている場合、null です。それ以外は未定義。
        例外:
        NullPointerExceptionSE - コンテキストが null の場合。
        PropertyNotFoundException - フィールドがクラスのパブリック静的フィールドでない場合、またはフィールドにアクセスできない場合。
      • isReadOnly

        public boolean isReadOnly​(ELContext context,
                                  ObjectSE base,
                                  ObjectSE property)

        静的フィールドが書き込み可能かどうかを問い合わせます。

        ベースオブジェクトが ELClass のインスタンスであり、プロパティが文字列である場合、ELContext オブジェクトの propertyResolved プロパティは、戻る前にリゾルバーによって true に設定される必要があります。このメソッドが呼び出された後、このプロパティが true でない場合、呼び出し元は値が設定されていないと安全に想定できます。

        静的フィールドへの書き込みは許可されていないため、常に true を返します。

        次で指定:
        クラス ELResolverisReadOnly 
        パラメーター:
        context - この評価のコンテキスト。
        base - ELClass
        property - Bean の名前。
        戻り値:
        true
        例外:
        NullPointerExceptionSE - コンテキストが null の場合。
      • getFeatureDescriptors

        @DeprecatedSE(forRemoval=true,
                    since="5.0")
        public IteratorSE<FeatureDescriptorSE> getFeatureDescriptors​(ELContext context,
                                                                 ObjectSE base)
        非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
        このメソッドは、EL 6.0 では代替なしで削除されます
        解決できるプロパティを返します。1 つの要素(フィールド名)のリストを反復処理する理由がないため、常に null を返します。
        オーバーライド:
        クラス ELResolvergetFeatureDescriptors 
        パラメーター:
        context - この評価のコンテキスト。
        base - ELClass
        戻り値:
        null.
        関連事項:
        FeatureDescriptorSE
      • getCommonPropertyType

        public ClassSE<?> getCommonPropertyType​(ELContext context,
                                              ObjectSE base)
        プロパティの型を返します。フィールド名は文字列であるため、常に String.class を返します。
        次で指定:
        クラス ELResolvergetCommonPropertyType 
        パラメーター:
        context - この評価のコンテキスト。
        base - ELClass
        戻り値:
        String.class.