パッケージ jakarta.el

クラス ArrayELResolver

java.lang.ObjectSE
jakarta.el.ELResolver
jakarta.el.ArrayELResolver

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

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

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

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

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

    • 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 - 大文字と小文字を区別する文字列 "length" または、許容可能な型を返す配列内の要素のインデックス。大文字と小文字を区別する文字列 "length" でない場合は、整数に強制変換され、配列の有効なインデックスであるかどうかがチェックされますが、それ以外の場合はこのリゾルバーによって無視されます。
      戻り値:
      ELContext の propertyResolved プロパティが true に設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型は null でなければなりません。それ以外は未定義
      例外:
      PropertyNotFoundException - 指定されたインデックスがこの配列の範囲外の場合。
      NullPointerExceptionSE - コンテキストが null の場合
      ELException - プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
    • getValue

      public ObjectSE getValue(ELContext context, ObjectSE base, ObjectSE property)
      基本オブジェクトが Java 言語配列の場合、配列の長さまたは指定されたインデックスの値を返します。property 引数が大文字と小文字を区別する文字列 "length" の場合、配列の長さが返されます。それ以外の場合、property 引数は強制的に整数に変換され、返される値のインデックスとして使用されます。強制を実行できなかった場合は、IllegalArgumentException がスローされます。インデックスが範囲外の場合は、null が返されます。

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

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

      public void setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE val)
      ベースオブジェクトが Java 言語配列であり、プロパティが大文字と小文字を区別する文字列 length でない場合は、指定されたインデックスの値を指定された値に設定しようとします。インデックスは property 引数で指定され、整数に強制変換されます。強制変換を実行できなかった場合は、IllegalArgumentException がスローされます。インデックスが範囲外の場合は、PropertyNotFoundException がスローされます。

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

      このリゾルバーが読み取り専用モードで構築された場合、またはプロパティが大文字と小文字を区別する文字列 length である場合、このメソッドは常に PropertyNotWritableException をスローします。

      次で指定:
      クラス ELResolversetValue 
      パラメーター:
      context - この評価のコンテキスト。
      base - 変更する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。
      property - 設定する値のインデックスを提供するために大文字と小文字を区別する文字列 length または整数に強制変換するオブジェクト。
      val - 指定されたインデックスに設定される値。
      例外:
      ClassCastExceptionSE - 指定された要素のクラスにより、その要素がこの配列に追加されない場合。
      NullPointerExceptionSE - コンテキストが null の場合。
      IllegalArgumentExceptionSE - プロパティを整数に強制変換できなかった場合、または指定された要素の何らかの側面により、プロパティがこの配列に追加されない場合。
      PropertyNotWritableException - このリゾルバーが読み取り専用モードで構築された場合、またはプロパティが大文字と小文字を区別する文字列 length であった場合。
      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 でない場合、呼び出し元は戻り値を無視する必要があります。

      このリゾルバーが読み取り専用モードで構築された場合、またはプロパティが大文字と小文字を区別する文字列 length である場合、このメソッドは常に true を返します。それ以外の場合は、false を返します。

      次で指定:
      クラス ELResolverisReadOnly 
      パラメーター:
      context - この評価のコンテキスト。
      base - 分析する配列。このリゾルバーによって処理されるのは、Java 言語配列であるベースのみです。
      property - 大文字と小文字を区別する文字列 length、または整数に強制変換してインデックスを提供するオブジェクト。このインデックスを使用して setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) を呼び出そうとすると常に失敗するかどうかを確認します。
      戻り値:
      ELContext の propertyResolved プロパティが true に設定されている場合、setValue メソッドの呼び出しが常に失敗する場合は true、そのような呼び出しが成功する可能性がある場合は false。それ以外は未定義。
      例外:
      PropertyNotFoundException - 指定されたインデックスがこの配列の範囲外の場合。
      NullPointerExceptionSE - コンテキストが null の場合
      ELException - プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
    • getCommonPropertyType

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

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

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