パッケージ jakarta.el

クラス ArrayELResolver


  • public class ArrayELResolver
    extends ELResolver
    配列のプロパティ解決動作を定義します。

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

    このリゾルバーは読み取り専用モードで構築できます。つまり、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
    • コンストラクターの詳細

      • ArrayELResolver

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

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

      • getType

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

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

        ベースが array であり、このリゾルバーが読み取り専用モードで構築されていないと仮定すると、このメソッドは base.getClass().getComponentType() を返します。これは、配列内の任意のインデックスに格納できる最も一般的な型のコンポーネントです。

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

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

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

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

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

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

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

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

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

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

        このリゾルバーが読み取り専用モードで構築されている場合、このメソッドは常に true を返します。それ以外の場合は、false を返します。

        次で指定:
        クラス ELResolverisReadOnly 
        パラメーター:
        context - この評価のコンテキスト。
        base - 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。
        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 - 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。
        戻り値:
        null.
        関連事項:
        FeatureDescriptorSE
      • getCommonPropertyType

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

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

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