public class BeanELResolver extends ELResolver
このリゾルバーは、ベースが null
でない限り、任意の型のベースオブジェクトを処理します。プロパティまたはメソッドとして任意のオブジェクトを受け入れ、文字列に変換します。
プロパティの解決では、プロパティ文字列を使用して、ベースオブジェクトの JavaBeans 準拠のプロパティを検索します。この値には、JavaBeans getter および setter を使用してアクセスします。
メソッド解決の場合、メソッド文字列は Bean 内のメソッドの名前です。パラメーター型はオプションでメソッドを識別するために指定できます。パラメーター型が指定されていない場合、パラメーターオブジェクトはメソッド解決で使用されます。
このリゾルバーは読み取り専用モードで構築できます。つまり、isReadOnly
は常に true
を返し、setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
は常に PropertyNotWritableException
をスローします。
ELResolver
は CompositeELResolver
を使用して組み合わされ、式を評価するための豊富なセマンティクスを定義します。詳細については、ELResolver
の javadoc を参照してください。
このリゾルバーはあらゆる型の基本オブジェクトを処理するため、複合リゾルバーの終わり近くに配置する必要があります。それ以外の場合は、プロパティを解決した後、後続のリゾルバーも同様にテストできるかどうかをテストする前に、プロパティを解決したと主張します。
CompositeELResolver
, ELResolver
RESOLVABLE_AT_DESIGN_TIME, TYPE
コンストラクターと説明 |
---|
BeanELResolver() 新しい読み取り / 書き込み BeanELResolver を作成します。 |
BeanELResolver(boolean isReadOnly) 指定されたパラメーターによって読み取り専用ステータスが決定される新しい BeanELResolver を作成します。 |
修飾子と型 | メソッドと説明 |
---|---|
ClassSE<?> | getCommonPropertyType(ELContext context, ObjectSE base) 基本オブジェクトが null ではない場合、このリゾルバーが property 引数として受け入れる最も一般的な型を返します。 |
IteratorSE<FeatureDescriptorSE> | getFeatureDescriptors(ELContext context, ObjectSE base) 基本オブジェクトが null ではない場合、指定されたオブジェクトで使用可能な JavaBeans プロパティのセットを含む Iterator を返します。 |
ClassSE<?> | getType(ELContext context, ObjectSE base, ObjectSE property) 基本オブジェクトが null ではない場合、この Bean プロパティに設定できる最も一般的な許容可能な型を返します。 |
ObjectSE | getValue(ELContext context, ObjectSE base, ObjectSE property) 基本オブジェクトが null でない場合、この Bean の指定されたプロパティの現在の値を返します。 |
ObjectSE | invoke(ELContext context, ObjectSE base, ObjectSE methodName, ClassSE<?>[] paramTypes, ObjectSE[] params) 基本オブジェクトが null でない場合は、この Bean の指定されたパラメーターを使用して、メソッドを呼び出します。 |
boolean | isReadOnly(ELContext context, ObjectSE base, ObjectSE property) 基本オブジェクトが null でない場合、setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object) の呼び出しが常に失敗するかどうかを返します。 |
void | setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE val) ベースオブジェクトが null ではない場合、この Bean に指定されたプロパティの値を設定しようとします。 |
convertToType
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, toStringSE, waitSE, waitSE, waitSE
public BeanELResolver()
BeanELResolver
を作成します。public BeanELResolver(boolean isReadOnly)
BeanELResolver
を作成します。isReadOnly
- このリゾルバーが Bean を変更できない場合は true
。それ以外の場合は false
。public ClassSE<?> getType(ELContext context, ObjectSE base, ObjectSE property)
null
ではない場合、この Bean プロパティに設定できる最も一般的な許容可能な型を返します。 ベースが null
ではない場合、戻る前に、このリゾルバーによって ELContext
オブジェクトの propertyResolved
プロパティを true
に設定する必要があります。このメソッドが呼び出された後、このプロパティが true
でない場合、呼び出し元は戻り値を無視する必要があります。
提供されたプロパティは、最初に String
に強制変換されます。このプロパティに BeanInfoProperty
があり、それを取得するエラーがなかった場合、propertyDescriptor
の propertyType
が返されます。それ以外の場合は、PropertyNotFoundException
がスローされます。
ELResolver
の getType
context
- この評価のコンテキスト。base
- 分析する Bean。property
- 分析するプロパティの名前。String
に強制変換されます。ELContext
の propertyResolved
プロパティが true
に設定されている場合、最も一般的な受け入れ可能な型。それ以外は未定義。NullPointerExceptionSE
- コンテキストが null
の場合 PropertyNotFoundException
- base
が null
でなく、指定されたプロパティが存在しないか、読み取れない場合。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public ObjectSE getValue(ELContext context, ObjectSE base, ObjectSE property)
null
でない場合、この Bean の指定されたプロパティの現在の値を返します。 ベースが null
ではない場合、戻る前に、このリゾルバーによって ELContext
オブジェクトの propertyResolved
プロパティを true
に設定する必要があります。このメソッドが呼び出された後、このプロパティが true
でない場合、呼び出し元は戻り値を無視する必要があります。
指定されたプロパティ名は、まず String
に強制変換されます。プロパティが JavaBeans 仕様に従ってベースオブジェクトの読み取り可能なプロパティである場合、getter 呼び出しの結果を返します。getter が例外をスローすると、呼び出し元に伝搬されます。プロパティが見つからない、または読み込めない場合は、PropertyNotFoundException
がスローされます。
ELResolver
の getValue
context
- この評価のコンテキスト。base
- プロパティを取得する Bean。property
- 取得するプロパティの名前。String
に強制変換されます。ELContext
の propertyResolved
プロパティが true
に設定されている場合、指定されたプロパティの値。それ以外の場合、未定義です。NullPointerExceptionSE
- コンテキストが null
の場合。PropertyNotFoundException
- base
が null
でなく、指定されたプロパティが存在しないか、読み取れない場合。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public void setValue(ELContext context, ObjectSE base, ObjectSE property, ObjectSE val)
null
ではない場合、この Bean に指定されたプロパティの値を設定しようとします。 ベースが null
ではない場合、戻る前に、このリゾルバーによって ELContext
オブジェクトの propertyResolved
プロパティを true
に設定する必要があります。このメソッドが呼び出された後、このプロパティが true
でない場合、呼び出し元は値が設定されていないと安全に想定できます。
このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に PropertyNotWritableException
をスローします。
指定されたプロパティ名は、まず String
に強制変換されます。property が base
の書き込み可能なプロパティである場合(JavaBeans 仕様に従って)、setter メソッドが呼び出されます(value
を渡す)。プロパティは存在するが setter がない場合、PropertyNotFoundException
がスローされます。プロパティが存在しない場合、PropertyNotFoundException
がスローされます。
ELResolver
の setValue
context
- この評価のコンテキスト。base
- プロパティを設定する Bean。property
- 設定するプロパティの名前。String
に強制変換されます。val
- 指定されたキーに関連付けられる値。NullPointerExceptionSE
- コンテキストが null
の場合。PropertyNotFoundException
- base
が null
ではなく、指定されたプロパティが存在しない場合。PropertyNotWritableException
- このリゾルバーが読み取り専用モードで作成された場合、またはプロパティの setter がない場合。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public ObjectSE invoke(ELContext context, ObjectSE base, ObjectSE methodName, ClassSE<?>[] paramTypes, ObjectSE[] params)
null
でない場合は、この Bean の指定されたパラメーターを使用して、メソッドを呼び出します。メソッドからの戻り値が返されます。 ベースが null
ではない場合、戻る前に、このリゾルバーによって ELContext
オブジェクトの propertyResolved
プロパティを true
に設定する必要があります。このメソッドが呼び出された後、このプロパティが true
でない場合、呼び出し元は戻り値を無視する必要があります。
提供されたメソッドオブジェクトは、まず String
に強制変換されます。次に、Bean 内のメソッドが検査され、呼び出し用に 1 つを選択しようとします。適切なメソッドが見つからない場合は、MethodNotFoundException
がスローされます。指定された paramTypes が null
でない場合は、指定された名前とパラメーター型を持つメソッドを選択します。それ以外の場合は、同じ数のパラメーターを持つ指定された名前のメソッドを選択します。そのようなメソッドが複数ある場合、メソッドの選択プロセスは未定義です。それ以外の場合は、可変数の引数を取る指定された名前のメソッドを選択します。オーバーロードされたメソッドの解決は、仕様の将来のバージョンで明確にされる可能性があることに注意してください。提供されたパラメーターは、メソッドの対応するパラメーター型に強制変換され、メソッドが呼び出されます。
ELResolver
の invoke
context
- この評価のコンテキスト。base
- メソッドを呼び出す BeanmethodName
- 呼び出すメソッドの単純な名前。String
に強制変換されます。method が "<init>" または "<clinit>" の場合、MethodNotFoundException がスローされます。paramTypes
- メソッドの仮パラメーター型を宣言された順序で識別する Class オブジェクトの配列。メソッドにパラメーターがない場合は、空の配列を使用します。null
にすることができます。その場合、メソッドの仮パラメーターの型は不明であると見なされます。params
- メソッドに渡すパラメーター。パラメーターがない場合は null
。void
戻り値の型がある場合は null
)。MethodNotFoundException
- 適切な方法が見つからない場合。ELException
- (ベース、メソッド)解決の実行中に例外がスローされた場合スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。スローされた例外が InvocationTargetException
の場合、その cause
を抽出し、それを ELException
コンストラクターに渡します。public boolean isReadOnly(ELContext context, ObjectSE base, ObjectSE property)
null
でない場合、setValue(javax.el.ELContext, java.lang.Object, java.lang.Object, java.lang.Object)
の呼び出しが常に失敗するかどうかを返します。 ベースが null
ではない場合、戻る前に、このリゾルバーによって ELContext
オブジェクトの propertyResolved
プロパティを true
に設定する必要があります。このメソッドが呼び出された後、このプロパティが true
でない場合、呼び出し元は値が設定されていないと安全に想定できます。
このリゾルバーが読み取り専用モードで作成された場合、このメソッドは常に true
を返します。
指定されたプロパティ名は、まず String
に強制変換されます。property が base
の書き込み可能なプロパティである場合、false
が返されます。プロパティが見つかったが書き込み不可の場合、true
が返されます。プロパティが見つからない場合、PropertyNotFoundException
がスローされます。
ELResolver
の isReadOnly
context
- この評価のコンテキスト。base
- 分析する Bean。property
- 分析するプロパティの名前。String
に強制変換されます。ELContext
の propertyResolved
プロパティが true
に設定されている場合、setValue
メソッドの呼び出しが常に失敗する場合は true
、そのような呼び出しが成功する可能性がある場合は false
。それ以外は未定義。NullPointerExceptionSE
- コンテキストが null
の場合 PropertyNotFoundException
- base
が null
ではなく、指定されたプロパティが存在しない場合。ELException
- プロパティまたは変数の解決の実行中に例外がスローされた場合。スローされた例外は、可能であれば、この例外の原因プロパティとして含める必要があります。public IteratorSE<FeatureDescriptorSE> getFeatureDescriptors(ELContext context, ObjectSE base)
null
ではない場合、指定されたオブジェクトで使用可能な JavaBeans プロパティのセットを含む Iterator
を返します。それ以外の場合は、null
を返します。 返される Iterator
には、ゼロ個以上の FeatureDescriptor
SE のインスタンスが含まれている必要があります。各 info オブジェクトには、BeanInfo.getPropertyDescriptors
メソッドを呼び出して取得した、Bean のプロパティに関する情報が含まれています。FeatureDescriptor
は、PropertyDescriptor
と同じフィールドを使用して初期化され、必須の名前付き属性 "type
" および "resolvableAtDesignTime
" が次のように設定されます。
ELResolver.TYPE
- PropertyDescriptor.getPropertyType()
からのプロパティのランタイム型。ELResolver.RESOLVABLE_AT_DESIGN_TIME
- true
.ELResolver
の getFeatureDescriptors
context
- この評価のコンテキスト。base
- 分析する Bean。FeatureDescriptor
オブジェクトを含む Iterator
。それぞれがこの Bean のプロパティを表す。base
オブジェクトが null
の場合は null
。FeatureDescriptor
SEpublic ClassSE<?> getCommonPropertyType(ELContext context, ObjectSE base)
null
ではない場合、このリゾルバーが property
引数として受け入れる最も一般的な型を返します。それ以外の場合は、null
を返します。 ベースが null
ではないと仮定すると、このメソッドは常に Object.class
を返します。これは、すべてのオブジェクトがキーとして受け入れられ、文字列に強制変換されるためです。
ELResolver
の getCommonPropertyType
context
- この評価のコンテキスト。base
- 分析する Bean。null
の場合は null
。それ以外の場合は Object.class
。Copyright © 2019 Eclipse Foundation.
Use is subject to license terms.