クラス AbstractNestablePropertyAccessor
java.lang.ObjectSE
org.springframework.beans.PropertyEditorRegistrySupport
org.springframework.beans.TypeConverterSupport
org.springframework.beans.AbstractPropertyAccessor
org.springframework.beans.AbstractNestablePropertyAccessor
- 実装されたすべてのインターフェース:
ConfigurablePropertyAccessor
、PropertyAccessor
、PropertyEditorRegistry
、TypeConverter
- 既知の直属サブクラス
BeanWrapperImpl
,DirectFieldAccessor
すべての典型的な使用例に必要なインフラストラクチャを提供する基本的な
ConfigurablePropertyAccessor
。 このアクセサーは、必要に応じて、コレクションと配列の値を対応するターゲットコレクションまたは配列に変換します。コレクションまたは配列を処理するカスタムプロパティエディターは、配列自体が割り当て可能でない場合、String 配列がこのような形式に変換されるため、PropertyEditor の setValue
を介して、または setAsText
を介してコンマ区切りの String に対して記述できます。
- 導入:
- 4.2
- 作成者:
- Juergen Hoeller, Stephane Nicoll, Rod Johnson, Rob Harrop, Sam Brannen
- 関連事項:
PropertyEditorRegistrySupport.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
AbstractPropertyAccessor.setPropertyValues(java.util.Map<?, ?>)
setPropertyValue(java.lang.String, java.lang.Object)
getPropertyValue(java.lang.String)
getPropertyType(java.lang.String)
BeanWrapper
PropertyEditorRegistrySupport
ネストされたクラスのサマリー
修飾子と型クラス説明protected static class
特定のプロパティのハンドラー。protected static class
プロパティトークンの格納に使用されるホルダークラス。フィールドサマリー
インターフェース org.springframework.beans.PropertyAccessor から継承されたフィールド
NESTED_PROPERTY_SEPARATOR, NESTED_PROPERTY_SEPARATOR_CHAR, PROPERTY_KEY_PREFIX, PROPERTY_KEY_PREFIX_CHAR, PROPERTY_KEY_SUFFIX, PROPERTY_KEY_SUFFIX_CHAR
コンストラクターのサマリー
修飾子コンストラクター説明protected
新しい空のアクセサーを作成します。protected
AbstractNestablePropertyAccessor
(boolean registerDefaultEditors) 新しい空のアクセサーを作成します。protected
AbstractNestablePropertyAccessor
(ClassSE<?> clazz) 指定したクラスの新しいインスタンスをラップして、新しいアクセサーを作成します。protected
指定されたオブジェクトの新しいアクセサーを作成します。protected
AbstractNestablePropertyAccessor
(ObjectSE object, StringSE nestedPath, ObjectSE rootObject) 指定されたオブジェクトの新しいアクセサーを作成し、オブジェクトが含まれているネストされたパスを登録します。protected
AbstractNestablePropertyAccessor
(ObjectSE object, StringSE nestedPath, AbstractNestablePropertyAccessor parent) 指定されたオブジェクトの新しいアクセサーを作成し、オブジェクトが含まれているネストされたパスを登録します。メソッドのサマリー
修飾子と型メソッド説明protected ObjectSE
convertForProperty
(StringSE propertyName, ObjectSE oldValue, ObjectSE newValue, TypeDescriptor td) protected abstract NotWritablePropertyException
createNotWritablePropertyException
(StringSE propertyName) 指定されたプロパティのNotWritablePropertyException
を作成します。int
配列およびコレクションの自動拡張の制限を返します。protected StringSE
getFinalPath
(AbstractNestablePropertyAccessor pa, StringSE nestedPath) パスの最後のコンポーネントを取得します。protected abstract AbstractNestablePropertyAccessor.PropertyHandler
getLocalPropertyHandler
(StringSE propertyName) 指定されたローカルpropertyName
のAbstractNestablePropertyAccessor.PropertyHandler
を返します。final StringSE
このアクセサーによってラップされたオブジェクトのネストされたパスを返します。protected AbstractNestablePropertyAccessor
getPropertyAccessorForPropertyPath
(StringSE propertyPath) 再帰的にナビゲートして、ネストされたプロパティパスのプロパティアクセサーを返します。getPropertyHandler
(StringSE propertyName) 指定されたpropertyName
のAbstractNestablePropertyAccessor.PropertyHandler
を返し、必要に応じてナビゲートします。ClassSE<?>
getPropertyType
(StringSE propertyName) 指定されたプロパティパスのプロパティ型を決定します。getPropertyTypeDescriptor
(StringSE propertyName) 指定されたプロパティの型記述子を返します。できれば読み取りメソッドから、書き込みメソッドにフォールバックしてください。getPropertyValue
(StringSE propertyName) 実際にプロパティの値を取得します。protected ObjectSE
final ClassSE<?>
このアクセサーのパスの先頭にあるルートオブジェクトのクラスを返します。final ObjectSE
このアクセサーのパスの先頭にあるルートオブジェクトを返します。final ClassSE<?>
final ObjectSE
boolean
isReadableProperty
(StringSE propertyName) 指定したプロパティが読み取り可能かどうかを判断します。boolean
isWritableProperty
(StringSE propertyName) 指定されたプロパティが書き込み可能かどうかを判断します。protected abstract AbstractNestablePropertyAccessor
newNestedPropertyAccessor
(ObjectSE object, StringSE nestedPath) 新しいネストされたプロパティアクセサーインスタンスを作成します。void
setAutoGrowCollectionLimit
(int autoGrowCollectionLimit) 配列およびコレクションの自動拡張の制限を指定します。void
setPropertyValue
(StringSE propertyName, ObjectSE value) 実際にプロパティ値を設定します。protected void
void
指定した値を現在のプロパティ値として設定します。void
setWrappedInstance
(ObjectSE object) 新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。void
setWrappedInstance
(ObjectSE object, StringSE nestedPath, ObjectSE rootObject) 新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。toString()
クラス org.springframework.beans.AbstractPropertyAccessor から継承されたメソッド
isAutoGrowNestedPaths, isExtractOldValueForEditor, setAutoGrowNestedPaths, setExtractOldValueForEditor, setPropertyValues, setPropertyValues, setPropertyValues, setPropertyValues
クラス org.springframework.beans.TypeConverterSupport から継承されたメソッド
convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary
クラス org.springframework.beans.PropertyEditorRegistrySupport から継承されたメソッド
copyCustomEditorsTo, copyDefaultEditorsTo, findCustomEditor, getConversionService, getDefaultEditor, guessPropertyTypeFromEditors, hasCustomEditorForElement, overrideDefaultEditor, registerCustomEditor, registerCustomEditor, registerDefaultEditors, setConversionService, useConfigValueEditors
クラス java.lang.ObjectSE から継承されたメソッド
clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, wait, waitSE, waitSE
インターフェース org.springframework.beans.ConfigurablePropertyAccessor から継承されたメソッド
getConversionService, setConversionService
インターフェース org.springframework.beans.PropertyEditorRegistry から継承されたメソッド
findCustomEditor, registerCustomEditor, registerCustomEditor
インターフェース org.springframework.beans.TypeConverter から継承されたメソッド
convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary
コンストラクターの詳細
AbstractNestablePropertyAccessor
protected AbstractNestablePropertyAccessor()新しい空のアクセサーを作成します。ラップされたインスタンスは後で設定する必要があります。デフォルトのエディターを登録します。AbstractNestablePropertyAccessor
protected AbstractNestablePropertyAccessor(boolean registerDefaultEditors) 新しい空のアクセサーを作成します。ラップされたインスタンスは後で設定する必要があります。- パラメーター:
registerDefaultEditors
- デフォルトのエディターを登録するかどうか (アクセサーが型変換を必要としない場合は抑制できます)- 関連事項:
AbstractNestablePropertyAccessor
指定されたオブジェクトの新しいアクセサーを作成します。- パラメーター:
object
- このアクセサーによってラップされたオブジェクト
AbstractNestablePropertyAccessor
指定したクラスの新しいインスタンスをラップして、新しいアクセサーを作成します。- パラメーター:
clazz
- インスタンス化してラップするクラス
AbstractNestablePropertyAccessor
protected AbstractNestablePropertyAccessor(ObjectSE object, StringSE nestedPath, ObjectSE rootObject) 指定されたオブジェクトの新しいアクセサーを作成し、オブジェクトが含まれているネストされたパスを登録します。- パラメーター:
object
- このアクセサーによってラップされたオブジェクトnestedPath
- オブジェクトのネストされたパスrootObject
- パスの上部にあるルートオブジェクト
AbstractNestablePropertyAccessor
protected AbstractNestablePropertyAccessor(ObjectSE object, StringSE nestedPath, AbstractNestablePropertyAccessor parent) 指定されたオブジェクトの新しいアクセサーを作成し、オブジェクトが含まれているネストされたパスを登録します。- パラメーター:
object
- このアクセサーによってラップされたオブジェクトnestedPath
- オブジェクトのネストされたパスparent
- 含まれるアクセサー (null
であってはなりません)
メソッドの詳細
setAutoGrowCollectionLimit
public void setAutoGrowCollectionLimit(int autoGrowCollectionLimit) 配列およびコレクションの自動拡張の制限を指定します。プレーンアクセサーのデフォルトは無制限です。
getAutoGrowCollectionLimit
public int getAutoGrowCollectionLimit()配列およびコレクションの自動拡張の制限を返します。setWrappedInstance
新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。- パラメーター:
object
- 新しいターゲットオブジェクト
setWrappedInstance
public void setWrappedInstance(ObjectSE object, @Nullable StringSE nestedPath, @Nullable ObjectSE rootObject) 新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。- パラメーター:
object
- 新しいターゲットオブジェクトnestedPath
- オブジェクトのネストされたパスrootObject
- パスの上部にあるルートオブジェクト
getWrappedInstance
getWrappedClass
getNestedPath
このアクセサーによってラップされたオブジェクトのネストされたパスを返します。getRootInstance
このアクセサーのパスの先頭にあるルートオブジェクトを返します。- 関連事項:
getRootClass
このアクセサーのパスの先頭にあるルートオブジェクトのクラスを返します。- 関連事項:
setPropertyValue
クラスからコピーされた説明:AbstractPropertyAccessor
実際にプロパティ値を設定します。- 次で指定:
- インターフェース
PropertyAccessor
のsetPropertyValue
- 次で指定:
- クラス
AbstractPropertyAccessor
のsetPropertyValue
- パラメーター:
propertyName
- 値を設定するプロパティの名前value
- 新しい価値- 例外:
InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合PropertyAccessException
- プロパティは有効であるが、アクセサーメソッドが失敗したか、型の不一致が発生した場合BeansException
setPropertyValue
インターフェースからコピーされた説明:PropertyAccessor
指定した値を現在のプロパティ値として設定します。- 次で指定:
- インターフェース
PropertyAccessor
のsetPropertyValue
- オーバーライド:
- クラス
AbstractPropertyAccessor
のsetPropertyValue
- パラメーター:
pv
- 新しいプロパティ値を含むオブジェクト- 例外:
InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが書き込み可能でない場合PropertyAccessException
- プロパティは有効であるが、アクセサーメソッドが失敗したか、型の不一致が発生した場合BeansException
setPropertyValue
protected void setPropertyValue(AbstractNestablePropertyAccessor.PropertyTokenHolder tokens, PropertyValue pv) throws BeansException getPropertyType
クラスからコピーされた説明:PropertyEditorRegistrySupport
指定されたプロパティパスのプロパティ型を決定します。必須の型が指定されていない場合に
PropertyEditorRegistrySupport.findCustomEditor(java.lang.Class<?>, java.lang.String)
によって呼び出され、プロパティパスを指定しただけでも型固有のエディターを検索できるようにします。デフォルトの実装は、常に
null
を返します。BeanWrapperImpl は、BeanWrapper インターフェースで定義されている標準のgetPropertyType
メソッドでこれをオーバーライドします。- 次で指定:
- インターフェース
PropertyAccessor
のgetPropertyType
- オーバーライド:
- クラス
AbstractPropertyAccessor
のgetPropertyType
- パラメーター:
propertyName
- 型を決定するプロパティパス- 戻り値:
- プロパティの型、または判別できない場合は
null
- 例外:
PropertyAccessException
- プロパティは有効だったが、アクセサーメソッドが失敗した場合BeansException
- 関連事項:
getPropertyTypeDescriptor
@Nullable public TypeDescriptor getPropertyTypeDescriptor(StringSE propertyName) throws BeansException インターフェースからコピーされた説明:PropertyAccessor
指定されたプロパティの型記述子を返します。できれば読み取りメソッドから、書き込みメソッドにフォールバックしてください。- パラメーター:
propertyName
- チェックするプロパティ (ネストされたパスおよび / またはインデックス付き / マップされたプロパティ)- 戻り値:
- 特定のプロパティのプロパティ型、または決定できない場合は
null
- 例外:
PropertyAccessException
- プロパティは有効だったが、アクセサーメソッドが失敗した場合BeansException
isReadableProperty
インターフェースからコピーされた説明:PropertyAccessor
指定したプロパティが読み取り可能かどうかを判断します。プロパティが存在しない場合、
false
を返します。- パラメーター:
propertyName
- チェックするプロパティ (ネストされたパスおよび / またはインデックス付き / マップされたプロパティ)- 戻り値:
- プロパティが読み取り可能かどうか
isWritableProperty
インターフェースからコピーされた説明:PropertyAccessor
指定されたプロパティが書き込み可能かどうかを判断します。プロパティが存在しない場合、
false
を返します。- パラメーター:
propertyName
- チェックするプロパティ (ネストされたパスおよび / またはインデックス付き / マップされたプロパティ)- 戻り値:
- プロパティが書き込み可能かどうか
convertForProperty
@Nullable protected ObjectSE convertForProperty(StringSE propertyName, @Nullable ObjectSE oldValue, @Nullable ObjectSE newValue, TypeDescriptor td) throws TypeMismatchException getPropertyValue
クラスからコピーされた説明:AbstractPropertyAccessor
実際にプロパティの値を取得します。- 次で指定:
- インターフェース
PropertyAccessor
のgetPropertyValue
- 次で指定:
- クラス
AbstractPropertyAccessor
のgetPropertyValue
- パラメーター:
propertyName
- 値を取得するプロパティの名前- 戻り値:
- プロパティの値
- 例外:
InvalidPropertyException
- そのようなプロパティがない場合、またはプロパティが読めない場合PropertyAccessException
- プロパティは有効だったが、アクセサーメソッドが失敗した場合BeansException
getPropertyValue
@Nullable protected ObjectSE getPropertyValue(AbstractNestablePropertyAccessor.PropertyTokenHolder tokens) throws BeansException getPropertyHandler
@Nullable protected AbstractNestablePropertyAccessor.PropertyHandler getPropertyHandler(StringSE propertyName) throws BeansException 指定されたpropertyName
のAbstractNestablePropertyAccessor.PropertyHandler
を返し、必要に応じてナビゲートします。例外をスローするのではなく、見つからない場合はnull
を返します。- パラメーター:
propertyName
- 記述子を取得するプロパティ- 戻り値:
- 指定されたプロパティのプロパティ記述子、または見つからない場合は
null
- 例外:
BeansException
- イントロスペクションが失敗した場合
getLocalPropertyHandler
@Nullable protected abstract AbstractNestablePropertyAccessor.PropertyHandler getLocalPropertyHandler(StringSE propertyName) 指定されたローカルpropertyName
のAbstractNestablePropertyAccessor.PropertyHandler
を返します。現在のコンテキストで利用可能なプロパティに到達するためにのみ使用されます。- パラメーター:
propertyName
- ローカルプロパティの名前- 戻り値:
- そのプロパティのハンドラー、または
null
が見つからない場合
newNestedPropertyAccessor
protected abstract AbstractNestablePropertyAccessor newNestedPropertyAccessor(ObjectSE object, StringSE nestedPath) 新しいネストされたプロパティアクセサーインスタンスを作成します。サブクラスでオーバーライドして、PropertyAccessor サブクラスを作成できます。- パラメーター:
object
- この PropertyAccessor によってラップされたオブジェクトnestedPath
- オブジェクトのネストされたパス- 戻り値:
- ネストされた PropertyAccessor インスタンス
createNotWritablePropertyException
protected abstract NotWritablePropertyException createNotWritablePropertyException(StringSE propertyName) 指定されたプロパティのNotWritablePropertyException
を作成します。getFinalPath
パスの最後のコンポーネントを取得します。ネストされていない場合にも機能します。- パラメーター:
pa
- 作業するプロパティアクセサーnestedPath
- ネストされていることがわかっているプロパティパス- 戻り値:
- パスの最後のコンポーネント (ターゲット Bean のプロパティ)
getPropertyAccessorForPropertyPath
protected AbstractNestablePropertyAccessor getPropertyAccessorForPropertyPath(StringSE propertyPath) 再帰的にナビゲートして、ネストされたプロパティパスのプロパティアクセサーを返します。- パラメーター:
propertyPath
- ネストできるプロパティパス- 戻り値:
- ターゲット Bean のプロパティアクセサー
toString