クラス 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)BeanWrapperPropertyEditorRegistrySupport
ネストされたクラスの要約
ネストされたクラス修飾子と型クラス説明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新しい空のアクセサーを作成します。protectedAbstractNestablePropertyAccessor(boolean registerDefaultEditors) 新しい空のアクセサーを作成します。protectedAbstractNestablePropertyAccessor(ClassSE<?> clazz) 指定したクラスの新しいインスタンスをラップして、新しいアクセサーを作成します。protected指定されたオブジェクトの新しいアクセサーを作成します。protectedAbstractNestablePropertyAccessor(ObjectSE object, StringSE nestedPath, ObjectSE rootObject) 指定されたオブジェクトの新しいアクセサーを作成し、オブジェクトが含まれているネストされたパスを登録します。protectedAbstractNestablePropertyAccessor(ObjectSE object, StringSE nestedPath, AbstractNestablePropertyAccessor parent) 指定されたオブジェクトの新しいアクセサーを作成し、オブジェクトが含まれているネストされたパスを登録します。メソッドのサマリー
修飾子と型メソッド説明protected ObjectSEconvertForProperty(StringSE propertyName, ObjectSE oldValue, ObjectSE newValue, TypeDescriptor td) protected abstract NotWritablePropertyExceptioncreateNotWritablePropertyException(StringSE propertyName) 指定されたプロパティのNotWritablePropertyExceptionを作成します。int配列およびコレクションの自動拡張の制限を返します。protected StringSEgetFinalPath(AbstractNestablePropertyAccessor pa, StringSE nestedPath) パスの最後のコンポーネントを取得します。protected abstract AbstractNestablePropertyAccessor.PropertyHandlergetLocalPropertyHandler(StringSE propertyName) 指定されたローカルpropertyNameのAbstractNestablePropertyAccessor.PropertyHandlerを返します。final StringSEこのアクセサーによってラップされたオブジェクトのネストされたパスを返します。protected AbstractNestablePropertyAccessorgetPropertyAccessorForPropertyPath(StringSE propertyPath) 再帰的にナビゲートして、ネストされたプロパティパスのプロパティアクセサーを返します。getPropertyHandler(StringSE propertyName) 指定されたpropertyNameのAbstractNestablePropertyAccessor.PropertyHandlerを返し、必要に応じてナビゲートします。ClassSE<?>getPropertyType(StringSE propertyName) 指定されたプロパティパスのプロパティ型を決定します。getPropertyTypeDescriptor(StringSE propertyName) 指定されたプロパティの型記述子を返します。できれば読み取りメソッドから、書き込みメソッドにフォールバックしてください。getPropertyValue(StringSE propertyName) 実際にプロパティの値を取得します。protected ObjectSEfinal ClassSE<?>このアクセサーのパスの先頭にあるルートオブジェクトのクラスを返します。final ObjectSEこのアクセサーのパスの先頭にあるルートオブジェクトを返します。final ClassSE<?>final ObjectSEbooleanisReadableProperty(StringSE propertyName) 指定したプロパティが読み取り可能かどうかを判断します。booleanisWritableProperty(StringSE propertyName) 指定されたプロパティが書き込み可能かどうかを判断します。protected abstract AbstractNestablePropertyAccessornewNestedPropertyAccessor(ObjectSE object, StringSE nestedPath) 新しいネストされたプロパティアクセサーインスタンスを作成します。voidsetAutoGrowCollectionLimit(int autoGrowCollectionLimit) 配列およびコレクションの自動拡張の制限を指定します。voidsetPropertyValue(StringSE propertyName, ObjectSE value) 実際にプロパティ値を設定します。protected voidvoid指定した値を現在のプロパティ値として設定します。voidsetWrappedInstance(ObjectSE object) 新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。voidsetWrappedInstance(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, setDefaultEditorRegistrar, 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