クラス OptionalELResolver
OptionalSE のプロパティ解決、メソッド呼び出し、型変換の動作を定義します。 このリゾルバーは、OptionalSE のインスタンスである基本オブジェクトを処理します。
OptionalSE インスタンスは不変であるため、このリゾルバーは常に読み取り専用リゾルバーになります。
コンストラクターの概要
コンストラクター方法の概要
修飾子と型メソッド説明<T> TconvertToType(ELContext context, ObjectSE obj, ClassSE<T> type) オブジェクトを特定の型に変換します。ClassSE<?>getCommonPropertyType(ELContext context, ObjectSE base) baseオブジェクトを指定して、このリゾルバーがproperty引数に対して受け入れる最も一般的な型を返します。ClassSE<?>指定されたbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)メソッドへの将来の呼び出しでvalueパラメーターとして渡されるオブジェクトに受け入れられる最も一般的な型を識別しようとします。指定されたbaseオブジェクトで指定されたpropertyオブジェクトを解決しようとします。invoke(ELContext context, ObjectSE base, ObjectSE method, ClassSE<?>[] paramTypes, ObjectSE[] params) 指定されたbaseオブジェクトで指定されたmethodを解決して呼び出すことを試みます。booleanisReadOnly(ELContext context, ObjectSE base, ObjectSE property) 特定のbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)の呼び出しが常に失敗するかどうかを判断しようとします。void指定されたbaseオブジェクトに指定されたpropertyオブジェクトの値を設定しようとします。
コンストラクターの詳細
OptionalELResolver
public OptionalELResolver()
メソッドの詳細
getValue
指定されたbaseオブジェクトで指定されたpropertyオブジェクトを解決しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。- 次で指定:
- クラス
ELResolverのgetValue - パラメーター:
context- この評価のコンテキスト。base- プロパティ値が返されるベースオブジェクト、またはトップレベル変数を解決するnull。property- 解決するプロパティまたは変数。- 戻り値:
- 基本オブジェクトが
OptionalSE で、Optional.isEmpty()がtrueを返す場合、結果の値はnullになります。基本オブジェクトが
OptionalSE で、Optional.isPresent()がtrueを返し、プロパティがnullの場合、結果の値は基本オブジェクトでOptional.get()を呼び出した結果になります。基本オブジェクトが
OptionalSE で、Optional.isPresent()がtrueを返し、プロパティがnullでない場合、結果の値は、次のパラメーターを使用してELContext.getELResolver()から取得したELResolverを使用してELResolver.getValue(ELContext, Object, Object)を呼び出した結果になります。ELContextは現在のコンテキストです- 基本オブジェクトは、現在の基本オブジェクトに対して
Optional.get()を呼び出した結果です。 - プロパティオブジェクトは現在のプロパティオブジェクトです
基本オブジェクトが
OptionalSE でない場合、戻り値は未定義になります。
getType
指定されたbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)メソッドへの将来の呼び出しでvalueパラメーターとして渡されるオブジェクトに受け入れられる最も一般的な型を識別しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。これは、常に
getValue().getClass()と同じではありません。例:ArrayELResolverの場合、getTypeメソッドは配列のエレメント型を返します。これは、指定された配列エレメントに現在ある実際のエレメントの型のスーパークラスである可能性があります。リゾルバーまたはプロパティが読み取り専用の場合、このメソッドは
nullを返す必要があります。- 次で指定:
- クラス
ELResolverのgetType - パラメーター:
context- この評価のコンテキスト。base- プロパティ値を分析するベースオブジェクト、またはトップレベル変数を分析するnull。property- 受け入れ可能な型を返すプロパティまたは変数。- 戻り値:
- 基本オブジェクトが
OptionalSE の場合、このリゾルバーのインスタンスは常に読み取り専用であるため、このメソッドは常にnullを返します。基本オブジェクトが
OptionalSE でない場合、戻り値は未定義になります。
setValue
指定されたbaseオブジェクトに指定されたpropertyオブジェクトの値を設定しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は値が設定されていないと安全に想定できます。基本オブジェクトが
OptionalSE の場合、このリゾルバーのインスタンスは常に読み取り専用であるため、このメソッドは常にPropertyNotWritableExceptionをスローします。- 次で指定:
- クラス
ELResolverのsetValue - パラメーター:
context- この評価のコンテキスト。base- プロパティ値を設定する基本オブジェクト、またはトップレベル変数を設定するnull。property- 設定するプロパティまたは変数。value- プロパティまたは変数に設定する値。
isReadOnly
特定のbaseおよびpropertyについて、ELResolver.setValue(jakarta.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)の呼び出しが常に失敗するかどうかを判断しようとします。このリゾルバーが指定された(ベース、プロパティ)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。- 次で指定:
- クラス
ELResolverのisReadOnly - パラメーター:
context- この評価のコンテキスト。base- プロパティ値を分析するベースオブジェクト、またはトップレベル変数を分析するnull。property- 読み取り専用ステータスを返すプロパティまたは変数。- 戻り値:
- 基本オブジェクトが
OptionalSE の場合、このリゾルバーのインスタンスは常に読み取り専用であるため、このメソッドは常にtrueを返します。基本オブジェクトが
OptionalSE でない場合、戻り値は未定義になります。
getCommonPropertyType
baseオブジェクトが指定された場合、このリゾルバーがproperty引数に対して受け入れる最も一般的な型を返します。この方法の 1 つの用途は、ツールが自動補完を支援することです。これは、ツールが自動補完を支援し、リゾルバーが配列への整数インデックスなどのプリミティブ値を受け入れることを表現する方法も提供します。例:
ArrayELResolverはintをpropertyとして受け入れるため、戻り値はInteger.classになります。- 次で指定:
- クラス
ELResolverのgetCommonPropertyType - パラメーター:
context- この評価のコンテキスト。base- 最も一般的なプロパティ型を返す基本オブジェクト、またはこのリゾルバーが評価できるトップレベルの変数のセットを列挙するnull。- 戻り値:
- 基本オブジェクトが
OptionalSE の場合、このメソッドは常にObject.classを返します。基本オブジェクトが
OptionalSE でない場合、戻り値は未定義になります。
convertToType
オブジェクトを特定の型に変換します。変換中にエラーが発生すると、
ELExceptionがスローされます。- オーバーライド:
- クラス
ELResolverのconvertToType - パラメーター:
context- この評価のコンテキスト。obj- 変換するオブジェクト。type- 変換のターゲット型。- 戻り値:
- 基本オブジェクトが
OptionalSE であり、Optional.isEmpty()がtrueを返す場合、このメソッドはnullをリクエストされたtypeに強制変換した結果を返します。基本オブジェクトが
OptionalSE であり、Optional.isPresent()がtrueを返す場合、このメソッドはOptional#get()をリクエストされたtypeに強制変換した結果を返します。基本オブジェクトが
OptionalSE でない場合、戻り値は未定義になります。
invoke
public ObjectSE invoke(ELContext context, ObjectSE base, ObjectSE method, ClassSE<?>[] paramTypes, ObjectSE[] params) 指定されたbaseオブジェクトで指定されたmethodを解決して呼び出すことを試みます。このリゾルバーが指定された(ベース、メソッド)ペアを処理する場合、戻る前に、リゾルバーによって
ELContextオブジェクトのpropertyResolvedプロパティをtrueに設定する必要があります。このメソッドが呼び出された後、このプロパティがtrueでない場合、呼び出し元は戻り値を無視する必要があります。ELResolver を継承する既存のクラスが機能し続けることができるように、null を返すデフォルトの実装が提供されています。
- オーバーライド:
- クラス
ELResolverのinvoke - パラメーター:
context- この評価のコンテキスト。base- メソッドを呼び出す Beanmethod- 呼び出すメソッドの単純な名前。Stringに強制変換されます。paramTypes- メソッドの仮パラメーター型を宣言された順序で識別する Class オブジェクトの配列。メソッドにパラメーターがない場合は、空の配列を使用します。nullにすることができます。その場合、メソッドの仮パラメーターの型は不明であると見なされます。params- メソッドに渡すパラメーター。パラメーターがない場合はnull。- 戻り値:
- 基本オブジェクトが
OptionalSE であり、Optional.isEmpty()がtrueを返す場合、このメソッドはnullを返します。基本オブジェクトが
OptionalSE であり、Optional.isPresent()がtrueを返す場合、このメソッドは、指定されたパラメーターを使用してOptional.get()を呼び出すことによって取得されたオブジェクトに対して指定されたメソッドを呼び出した結果を返します。基本オブジェクトが
OptionalSE でない場合、戻り値は未定義になります。