パッケージ jakarta.el

クラス ListELResolver


  • public class ListELResolver
    extends ELResolver
    ListSE のインスタンスのプロパティ解決動作を定義します。

    このリゾルバーは、型 java.util.List の基本オブジェクトを処理します。プロパティとして任意のオブジェクトを受け入れ、そのオブジェクトを整数インデックスからリストに強制変換します。結果の値は、そのインデックスにあるリストの値です。

    このリゾルバーは読み取り専用モードで構築できます。つまり、isReadOnly は常に true を返し、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) は常に PropertyNotWritableException をスローします。

    ELResolverCompositeELResolver を使用して組み合わされ、式を評価するための豊富なセマンティクスを定義します。詳細については、ELResolver の javadoc を参照してください。

    導入:
    Jakarta Server Pages 2.1
    関連事項:
    CompositeELResolver, ELResolver, ListSE
    • コンストラクターの詳細

      • ListELResolver

        public ListELResolver()
        新しい読み取り / 書き込み ListELResolver を作成します。
      • ListELResolver

        public ListELResolver​(boolean isReadOnly)
        指定されたパラメーターによって読み取り専用ステータスが決定される新しい ListELResolver を作成します。
        パラメーター:
        isReadOnly - このリゾルバーがリストを変更できない場合は true。それ以外の場合は false
    • メソッドの詳細

      • getType

        public ClassSE<?> getType​(ELContext context,
                                ObjectSE base,
                                ObjectSE property)
        基本オブジェクトがリストの場合、このリスト内の値の最も一般的に受け入れ可能な型を返します。

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

        ベースが List であると仮定すると、リゾルバーが読み取り専用モードで構築されていない限り、このメソッドは Object.class を返します。読み取り専用モードの場合は null が返されます。これは、List が任意のオブジェクトを要素として受け入れるためです。

        次で指定:
        クラス ELResolvergetType 
        パラメーター:
        context - この評価のコンテキスト。
        base - 分析するリスト。型 List のベースのみがこのリゾルバーによって処理されます。
        property - 受け入れ可能な型を返すリスト内の要素のインデックス。整数に強制変換されますが、それ以外の場合はこのリゾルバーによって無視されます。
        戻り値:
        ELContext の propertyResolved プロパティが true に設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型は null でなければなりません。それ以外は未定義
        例外:
        PropertyNotFoundException - 指定されたインデックスがこのリストの範囲外の場合。
        NullPointerExceptionSE - コンテキストが null の場合
        ELException - プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
      • getValue

        public ObjectSE getValue​(ELContext context,
                               ObjectSE base,
                               ObjectSE property)
        基本オブジェクトがリストの場合、指定されたインデックスの値を返します。インデックスは property 引数で指定され、整数に強制変換されます。強制が実行できなかった場合、IllegalArgumentException がスローされます。インデックスが範囲外の場合、null が返されます。

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

        次で指定:
        クラス ELResolvergetValue 
        パラメーター:
        context - この評価のコンテキスト。
        base - 分析するリスト。型 List のベースのみがこのリゾルバーによって処理されます。
        property - 返される値のインデックス。整数に強制変換されます。
        戻り値:
        ELContext の propertyResolved プロパティが true に設定されている場合、指定されたインデックスの値、インデックスが範囲外の場合は null。それ以外の場合、未定義です。
        例外:
        IllegalArgumentExceptionSE - プロパティを整数に強制変換できない場合。
        NullPointerExceptionSE - コンテキストが null の場合。
        ELException - プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
      • setValue

        public void setValue​(ELContext context,
                             ObjectSE base,
                             ObjectSE property,
                             ObjectSE val)
        基本オブジェクトがリストの場合、指定された値で指定されたインデックスに値を設定しようとします。インデックスは property 引数で指定され、整数に強制変換されます。強制が実行できなかった場合、IllegalArgumentException がスローされます。インデックスが範囲外の場合、PropertyNotFoundException がスローされます。

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

        このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に PropertyNotWritableException をスローします。

        List が Collections.unmodifiableList(java.util.List<? extends T>)SE を使用して作成された場合、このメソッドは PropertyNotWritableException をスローする必要があります。残念ながら、これを検出するコレクション API メソッドはありません。ただし、実装はプロトタイプの変更不可能な List を作成し、その実行時型をクエリして、回避策としてベースオブジェクトの実行時型と一致するかどうかを確認できます。

        次で指定:
        クラス ELResolversetValue 
        パラメーター:
        context - この評価のコンテキスト。
        base - 変更するリスト。型 List のベースのみがこのリゾルバーによって処理されます。
        property - 設定する値のインデックス。整数に強制変換されます。
        val - 指定されたインデックスに設定される値。
        例外:
        ClassCastExceptionSE - 指定された要素のクラスが原因で、このリストに要素を追加できない場合
        NullPointerExceptionSE - コンテキストが null の場合、または値が null であり、この List が null 要素をサポートしていない場合
        IllegalArgumentExceptionSE - プロパティを整数に強制変換できなかった場合、または指定された要素のある側面が原因でこのリストに追加できない場合。
        PropertyNotWritableException - このリゾルバーが読み取り専用モードで作成された場合、または基になるリストでセット操作がサポートされていない場合。
        PropertyNotFoundException - 指定されたインデックスがこのリストの範囲外の場合。
        ELException - プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
      • isReadOnly

        public boolean isReadOnly​(ELContext context,
                                  ObjectSE base,
                                  ObjectSE property)
        基本オブジェクトがリストの場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) の呼び出しが常に失敗するかどうかを返します。

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

        このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に true を返します。

        List が Collections.unmodifiableList(java.util.List<? extends T>)SE を使用して作成された場合、このメソッドは true を返す必要があります。残念ながら、これを検出するコレクション API メソッドはありません。ただし、実装では、プロトタイプの変更不可能な List を作成し、その実行時型をクエリして、回避策としてベースオブジェクトの実行時型と一致するかどうかを確認できます。

        次で指定:
        クラス ELResolverisReadOnly 
        パラメーター:
        context - この評価のコンテキスト。
        base - 分析するリスト。型 List のベースのみがこのリゾルバーによって処理されます。
        property - 受け入れ可能な型を返すリスト内の要素のインデックス。整数に強制変換されますが、それ以外の場合はこのリゾルバーによって無視されます。
        戻り値:
        ELContext の propertyResolved プロパティが true に設定されている場合、setValue メソッドの呼び出しが常に失敗する場合は true、そのような呼び出しが成功する可能性がある場合は false。それ以外は未定義。
        例外:
        PropertyNotFoundException - 指定されたインデックスがこのリストの範囲外の場合。
        NullPointerExceptionSE - コンテキストが null の場合
        ELException - プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
      • getFeatureDescriptors

        @DeprecatedSE(forRemoval=true,
                    since="5.0")
        public IteratorSE<FeatureDescriptorSE> getFeatureDescriptors​(ELContext context,
                                                                 ObjectSE base)
        非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。
        このメソッドは、EL 6.0 では代替なしで削除されます
        すべての整数のセットセットを反復処理する理由がないため、常に null を返します。

        getCommonPropertyType(jakarta.el.ELContext, java.lang.Object) メソッドは、このリゾルバーが受け入れるプロパティに関する十分な情報を返します。

        オーバーライド:
        クラス ELResolvergetFeatureDescriptors 
        パラメーター:
        context - この評価のコンテキスト。
        base - リスト。型 List のベースのみがこのリゾルバーによって処理されます。
        戻り値:
        null.
        関連事項:
        FeatureDescriptorSE
      • getCommonPropertyType

        public ClassSE<?> getCommonPropertyType​(ELContext context,
                                              ObjectSE base)
        基本オブジェクトがリストの場合、このリゾルバーが property 引数として受け入れる最も一般的な型を返します。それ以外の場合は、null を返します。

        ベースが List であると仮定すると、このメソッドは常に Integer.class を返します。これは、List が整数をインデックスとして受け入れるためです。

        次で指定:
        クラス ELResolvergetCommonPropertyType 
        パラメーター:
        context - この評価のコンテキスト。
        base - 分析するリスト。型 List のベースのみがこのリゾルバーによって処理されます。
        戻り値:
        ベースが List でない場合は null。それ以外の場合は Integer.class