クラス MapELResolver
- java.lang.ObjectSE
-
- jakarta.el.ELResolver
-
- jakarta.el.MapELResolver
public class MapELResolver extends ELResolver
Map
SE のインスタンスのプロパティ解決動作を定義します。このリゾルバーは、型
java.util.Map
のベースオブジェクトを処理します。任意のオブジェクトをプロパティとして受け入れ、そのオブジェクトをマップのキーとして使用します。結果の値は、そのキーに関連付けられているマップ内の値です。このリゾルバーは読み取り専用モードで構築できます。つまり、
isReadOnly
は常にtrue
を返し、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
は常にPropertyNotWritableException
をスローします。ELResolver
はCompositeELResolver
を使用して組み合わされ、式を評価するための豊富なセマンティクスを定義します。詳細については、ELResolver
の javadoc を参照してください。- 導入:
- Jakarta Server Pages 2.1
- 関連事項:
CompositeELResolver
,ELResolver
,Map
SE
フィールドサマリー
クラス jakarta.el.ELResolver から継承されたフィールド
RESOLVABLE_AT_DESIGN_TIME, TYPE
コンストラクターのサマリー
コンストラクター コンストラクター 説明 MapELResolver()
新しい読み取り / 書き込みMapELResolver
を作成します。MapELResolver(boolean isReadOnly)
指定されたパラメーターによって読み取り専用ステータスが決定される新しいMapELResolver
を作成します。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 非推奨のメソッド 修飾子と型 メソッド 説明 ClassSE<?>
getCommonPropertyType(ELContext context, ObjectSE base)
ベースオブジェクトがマップの場合、このリゾルバーがproperty
引数に対して受け入れる最も一般的な型を返します。IteratorSE<FeatureDescriptorSE>
getFeatureDescriptors(ELContext context, ObjectSE base)
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。このメソッドは、EL 6.0 では代替なしで削除されますClassSE<?>
getType(ELContext context, ObjectSE base, ObjectSE property)
ベースオブジェクトがマップの場合、このマップの値に対して最も一般的に受け入れられる型を返します。ObjectSE
getValue(ELContext context, ObjectSE base, ObjectSE property)
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を返します。boolean
isReadOnly(ELContext context, ObjectSE base, ObjectSE property)
ベースオブジェクトがマップの場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
の呼び出しが常に失敗するかどうかを返します。void
setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE val)
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を設定しようとします。クラス jakarta.el.ELResolver から継承されたメソッド
convertToType, invoke
メソッドの詳細
getType
public ClassSE<?> getType(ELContext context, ObjectSE base, ObjectSE property)
ベースオブジェクトがマップの場合、このマップの値に対して最も一般的に受け入れられる型を返します。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は戻り値を無視する必要があります。ベースが
Map
であると仮定すると、リゾルバーが読み取り専用モードで構築されていない限り、このメソッドは常にObject.class
を返します。読み取り専用モードの場合はnull
が返されます。これは、Map
が特定のキーの値として任意のオブジェクトを受け入れるためです。- 次で指定:
- クラス
ELResolver
のgetType
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 受け入れ可能な型を返すためのキー。このリゾルバーでは無視されます。- 戻り値:
ELContext
のpropertyResolved
プロパティがtrue
に設定された場合、プロパティまたはリゾルバーが読み取り専用の場合、最も一般的に受け入れられる型はnull
でなければなりません。それ以外は未定義- 例外:
NullPointerExceptionSE
- コンテキストがnull
の場合ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getValue
public ObjectSE getValue(ELContext context, ObjectSE base, ObjectSE property)
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を返します。キーが見つからなかった場合は、null
が返されます。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は戻り値を無視する必要があります。Map.get(java.lang.Object)
SE の場合と同様に、null
が返されるからといって、キーのマッピングがないことを意味するわけではありません。Map
がキーをnull
に明示的にマップすることも可能です。- 次で指定:
- クラス
ELResolver
のgetValue
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 関連する値が返されるキー。- 戻り値:
ELContext
のpropertyResolved
プロパティがtrue
に設定されている場合、指定されたキーに関連付けられている値、キーが見つからなかった場合はnull
。それ以外の場合は未定義です。- 例外:
ClassCastExceptionSE
- キーがこのマップに不適切な型である場合(オプションで、基になるMap
によってスローされます)。NullPointerExceptionSE
- コンテキストがnull
の場合、またはキーが null であり、このマップが null キーを許可しない場合(後者はオプションで基になるMap
によってスローされます)。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
setValue
public void setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE val)
ベースオブジェクトがマップの場合、property
引数で指定されているように、指定されたキーに関連付けられた値を設定しようとします。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は値が設定されていないと安全に想定できます。このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に
PropertyNotWritableException
をスローします。Map
がCollections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
SE を使用して作成された場合、このメソッドはPropertyNotWritableException
をスローする必要があります。残念ながら、これを検出するコレクション API メソッドはありません。ただし、実装はプロトタイプの変更不可能なMap
を作成し、その実行時型をクエリして、回避策としてベースオブジェクトの実行時型と一致するかどうかを確認できます。- 次で指定:
- クラス
ELResolver
のsetValue
- パラメーター:
context
- この評価のコンテキスト。base
- 変更するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 指定された値が関連付けられるキー。val
- 指定されたキーに関連付けられる値。- 例外:
ClassCastExceptionSE
- 指定されたキーまたは値のクラスにより、このマップに保存できない場合。NullPointerExceptionSE
- コンテキストがnull
の場合、またはこのマップがnull
キーまたは値を許可せず、指定されたキーまたは値がnull
の場合。IllegalArgumentExceptionSE
- このキーまたは値の何らかの側面により、このマップに保存できない場合。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。PropertyNotWritableException
- このリゾルバーが読み取り専用モードで構築された場合、または put 操作が基になるマップでサポートされていない場合。
isReadOnly
public boolean isReadOnly(ELContext context, ObjectSE base, ObjectSE property)
ベースオブジェクトがマップの場合、setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
の呼び出しが常に失敗するかどうかを返します。ベースが
Map
の場合、戻る前に、このリゾルバーによってELContext
オブジェクトのpropertyResolved
プロパティをtrue
に設定する必要があります。このメソッドが呼び出された後、このプロパティがtrue
でない場合、呼び出し元は戻り値を無視する必要があります。このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に
true
を返します。Map
がCollections.unmodifiableMap(java.util.Map<? extends K, ? extends V>)
SE を使用して作成された場合、このメソッドはtrue
を返す必要があります。残念ながら、これを検出するコレクション API メソッドはありません。ただし、実装では、プロトタイプの変更不可能なMap
を作成し、その実行時型をクエリして、回避策としてベースオブジェクトの実行時型と一致するかどうかを確認できます。- 次で指定:
- クラス
ELResolver
のisReadOnly
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。property
- 読み取り専用ステータスを返すためのキー。このリゾルバーでは無視されます。- 戻り値:
ELContext
のpropertyResolved
プロパティがtrue
に設定されている場合、setValue
メソッドの呼び出しが常に失敗する場合はtrue
、そのような呼び出しが成功する可能性がある場合はfalse
。それ以外は未定義。- 例外:
NullPointerExceptionSE
- コンテキストがnull
の場合ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。
getFeatureDescriptors
@DeprecatedSE(forRemoval=true, since="5.0") public IteratorSE<FeatureDescriptorSE> getFeatureDescriptors(ELContext context, ObjectSE base)
非推奨、削除予定: この API 要素は、将来のバージョンで削除される可能性があります。このメソッドは、EL 6.0 では代替なしで削除されますベースオブジェクトがマップの場合、Map
で使用可能なキーのセットを含むIterator
を返します。それ以外の場合は、null
を返します。返される
Iterator
には、FeatureDescriptor
SE のインスタンスが 0 個以上含まれている必要があります。各 info オブジェクトには、マップ内のキーに関する情報が含まれており、次のように初期化されます。- displayName - このキーで
toString
メソッドを呼び出した場合の戻り値、またはキーがnull
の場合は"null"
。 - name - displayName プロパティと同じです。
- shortDescription - 空の文字列
- 専門家 -
false
- 隠された -
false
- 優先 -
true
FeatureDescriptor
には、次の名前付き属性を設定する必要があります。ELResolver.TYPE
- このキーでgetClass()
メソッドを呼び出した場合の戻り値、またはキーがnull
の場合はnull
。ELResolver.RESOLVABLE_AT_DESIGN_TIME
-true
- オーバーライド:
- クラス
ELResolver
のgetFeatureDescriptors
- パラメーター:
context
- この評価のコンテキスト。base
- キーが繰り返されるマップ。型Map
のベースのみがこのリゾルバーによって処理されます。- 戻り値:
- それぞれがこのマップのキーを表す 0 個以上(場合によっては無限に多い)の
FeatureDescriptor
オブジェクトを含むIterator
、またはベースオブジェクトがマップでない場合はnull
。 - 関連事項:
FeatureDescriptor
SE
- displayName - このキーで
getCommonPropertyType
public ClassSE<?> getCommonPropertyType(ELContext context, ObjectSE base)
ベースオブジェクトがマップの場合、このリゾルバーがproperty
引数に対して受け入れる最も一般的な型を返します。それ以外の場合は、null
を返します。ベースが
Map
であるとすると、このメソッドは常にObject.class
を返します。これは、Map
が任意のオブジェクトをキーとして受け入れるためです。- 次で指定:
- クラス
ELResolver
のgetCommonPropertyType
- パラメーター:
context
- この評価のコンテキスト。base
- 分析するマップ。型Map
のベースのみがこのリゾルバーによって処理されます。- 戻り値:
- ベースが
Map
でない場合はnull
。それ以外の場合はObject.class
。