インターフェース PropertyAccessor
- すべての既知のサブインターフェース:
CompilablePropertyAccessor
- すべての既知の実装クラス:
BeanExpressionContextAccessor、BeanFactoryAccessor、DataBindingPropertyAccessor、EnvironmentAccessor、MapAccessor、ReflectivePropertyAccessor、ReflectivePropertyAccessor.OptimalPropertyAccessor
public interface PropertyAccessor
プロパティアクセサーは、オブジェクトのプロパティから読み取る(および場合によっては書き込む)ことができます。
このインターフェースは制限を課さないため、実装者はフィールドとして、または getter を介して、または適切と思われる他の方法で、プロパティに直接アクセスできます。
リゾルバーはオプションで、それを呼び出す必要があるターゲットクラスの配列を指定できます。ただし、getSpecificTargetClasses() から null を返す場合は、すべてのプロパティ参照に対して呼び出され、読み書きできるかどうかを判断する機会が与えられます。
プロパティリゾルバーは順序付けされていると見なされ、それぞれが順番に呼び出されます。呼び出し順序に影響を与える唯一のルールは、getSpecificTargetClasses() で直接ターゲットクラスに名前を付けるリゾルバーが、一般的なリゾルバーの前に最初に呼び出されることです。
- 導入:
- 3.0
- 作成者:
- Andy Clement
メソッドのサマリー
修飾子と型メソッド説明booleancanRead(EvaluationContext context, ObjectSE target, StringSE name) リゾルバーインスタンスが指定されたターゲットオブジェクトの指定されたプロパティにアクセスできるかどうかを判断するために呼び出されます。booleancanWrite(EvaluationContext context, ObjectSE target, StringSE name) リゾルバーインスタンスが指定されたターゲットオブジェクトの指定されたプロパティに書き込むことができるかどうかを判断するために呼び出されます。ClassSE<?>[]このリゾルバーが呼び出されるクラスの配列を返します。read(EvaluationContext context, ObjectSE target, StringSE name) 指定されたターゲットオブジェクトからプロパティを読み取るために呼び出されます。voidwrite(EvaluationContext context, ObjectSE target, StringSE name, ObjectSE newValue) 指定されたターゲットオブジェクトのプロパティに書き込むために呼び出されます。
メソッドの詳細
getSpecificTargetClasses
このリゾルバーが呼び出されるクラスの配列を返します。nullを返すことは、これが一般的なリゾルバーであり、任意の型のプロパティを解決するために呼び出すことができることを示します。- 戻り値:
- このリゾルバーが適しているクラスの配列 (または一般的なリゾルバーの場合は
null)
canRead
boolean canRead(EvaluationContext context, @Nullable ObjectSE target, StringSE name) throws AccessException リゾルバーインスタンスが指定されたターゲットオブジェクトの指定されたプロパティにアクセスできるかどうかを判断するために呼び出されます。- パラメーター:
context- アクセスが試行されている評価コンテキストtarget- プロパティがアクセスされるターゲットオブジェクトname- アクセスされるプロパティの名前- 戻り値:
- このリゾルバーがプロパティを読み取れる場合は true
- 例外:
AccessException- プロパティを読み取ることができるかどうかを判断する際に問題がある場合
read
TypedValue read(EvaluationContext context, @Nullable ObjectSE target, StringSE name) throws AccessException 指定されたターゲットオブジェクトからプロパティを読み取るために呼び出されます。canRead(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String)もtrueを返す場合にのみ成功します。- パラメーター:
context- アクセスが試行されている評価コンテキストtarget- プロパティがアクセスされるターゲットオブジェクトname- アクセスされるプロパティの名前- 戻り値:
- 読み込まれたプロパティ値とその型記述子をラップする TypedValue オブジェクト
- 例外:
AccessException- プロパティ値へのアクセスに問題がある場合
canWrite
boolean canWrite(EvaluationContext context, @Nullable ObjectSE target, StringSE name) throws AccessException リゾルバーインスタンスが指定されたターゲットオブジェクトの指定されたプロパティに書き込むことができるかどうかを判断するために呼び出されます。- パラメーター:
context- アクセスが試行されている評価コンテキストtarget- プロパティがアクセスされるターゲットオブジェクトname- アクセスされるプロパティの名前- 戻り値:
- このリゾルバーがプロパティに書き込むことができる場合は true
- 例外:
AccessException- プロパティを書き込むことができるかどうかを判断する際に問題がある場合
write
void write(EvaluationContext context, @Nullable ObjectSE target, StringSE name, @Nullable ObjectSE newValue) throws AccessException 指定されたターゲットオブジェクトのプロパティに書き込むために呼び出されます。canWrite(org.springframework.expression.EvaluationContext, java.lang.Object, java.lang.String)もtrueを返す場合にのみ成功します。- パラメーター:
context- アクセスが試行されている評価コンテキストtarget- プロパティがアクセスされるターゲットオブジェクトname- アクセスされるプロパティの名前newValue- プロパティの新しい値- 例外:
AccessException- プロパティ値への書き込みに問題がある場合