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 を参照してください。
CompositeELResolver
, ELResolver
, Map
SERESOLVABLE_AT_DESIGN_TIME, TYPE
コンストラクターと説明 |
---|
MapELResolver() 新しい読み取り / 書き込み MapELResolver を作成します。 |
MapELResolver(boolean isReadOnly) 指定されたパラメーターによって読み取り専用ステータスが決定される新しい MapELResolver を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
ClassSE<?> | getCommonPropertyType(ELContext context, ObjectSE base) ベースオブジェクトがマップの場合、このリゾルバーが property 引数に対して受け入れる最も一般的な型を返します。 |
IteratorSE<FeatureDescriptorSE> | getFeatureDescriptors(ELContext context, ObjectSE base) ベースオブジェクトがマップの場合、 Map で使用可能なキーのセットを含む Iterator を返します。 |
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 引数で指定されているように、指定されたキーに関連付けられた値を設定しようとします。 |
convertToType, invoke
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public MapELResolver()
MapELResolver
を作成します。public MapELResolver(boolean isReadOnly)
MapELResolver
を作成します。isReadOnly
- このリゾルバーがマップを変更できない場合は true
。それ以外の場合は false
。public ClassSE<?> getType(ELContext context, ObjectSE base, ObjectSE property)
ベースが Map
の場合、戻る前に、このリゾルバーによって ELContext
オブジェクトの propertyResolved
プロパティを true
に設定する必要があります。このメソッドが呼び出された後、このプロパティが true
でない場合、呼び出し元は戻り値を無視する必要があります。
ベースが Map
であるとすると、このメソッドは常に Object.class
を返します。これは、Map
が任意のオブジェクトを特定のキーの値として受け入れるためです。
ELResolver
の getType
context
- この評価のコンテキスト。base
- 分析するマップ。型 Map
のベースのみがこのリゾルバーによって処理されます。property
- 受け入れ可能な型を返すためのキー。このリゾルバーでは無視されます。ELContext
の propertyResolved
プロパティが true
に設定されている場合、最も一般的な受け入れ可能な型。それ以外は未定義。NullPointerExceptionSE
- コンテキストが null
の場合 ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。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
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。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 操作が基になるマップでサポートされていない場合。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
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public IteratorSE<FeatureDescriptorSE> getFeatureDescriptors(ELContext context, ObjectSE base)
Map
で使用可能なキーのセットを含む Iterator
を返します。それ以外の場合は、null
を返します。 返される Iterator
には、FeatureDescriptor
SE のインスタンスが 0 個以上含まれている必要があります。各 info オブジェクトには、マップ内のキーに関する情報が含まれており、次のように初期化されます。
toString
メソッドを呼び出した場合の戻り値、またはキーが null
の場合は "null"
。false
false
true
FeatureDescriptor
には、次の名前付き属性を設定する必要があります。ELResolver.TYPE
- このキーで getClass()
メソッドを呼び出した場合の戻り値、またはキーが null
の場合は null
。ELResolver.RESOLVABLE_AT_DESIGN_TIME
- true
ELResolver
の getFeatureDescriptors
context
- この評価のコンテキスト。base
- キーが繰り返されるマップ。型 Map
のベースのみがこのリゾルバーによって処理されます。FeatureDescriptor
オブジェクトを含む Iterator
、またはベースオブジェクトがマップでない場合は null
。FeatureDescriptor
SEpublic ClassSE<?> getCommonPropertyType(ELContext context, ObjectSE base)
property
引数に対して受け入れる最も一般的な型を返します。それ以外の場合は、null
を返します。 ベースが Map
であるとすると、このメソッドは常に Object.class
を返します。これは、Map
が任意のオブジェクトをキーとして受け入れるためです。
ELResolver
の getCommonPropertyType
context
- この評価のコンテキスト。base
- 分析するマップ。型 Map
のベースのみがこのリゾルバーによって処理されます。Map
でない場合は null
。それ以外の場合は Object.class
。Copyright © 2018,2020 Eclipse Foundation.
Use is subject to license terms.