public class BeanWrapperImpl extends AbstractNestablePropertyAccessor implements BeanWrapper
BeanWrapper
実装。イントロスペクションの結果をキャッシュして効率を高めます。 メモ: JDK の標準 PropertyEditors に加えて適用される org.springframework.beans.propertyeditors
パッケージからデフォルトのプロパティエディターを自動登録します。アプリケーションは、PropertyEditorRegistrySupport.registerCustomEditor(Class, java.beans.PropertyEditor)
メソッドを呼び出して、特定のインスタンスのエディターを登録できます(つまり、アプリケーション間で共有されません)。詳細については、基本クラス PropertyEditorRegistrySupport
を参照してください。
注: Spring 2.5 では、これは(ほとんどすべての目的で)内部クラスです。他のフレームワークパッケージからのアクセスを可能にするために、パブリックになっています。標準のアプリケーションアクセス目的では、代わりに PropertyAccessorFactory.forBeanPropertyAccess(java.lang.Object)
ファクトリメソッドを使用します。
PropertyEditorRegistrySupport.registerCustomEditor(java.lang.Class<?>, java.beans.PropertyEditor)
, AbstractPropertyAccessor.setPropertyValues(java.util.Map<?, ?>)
, AbstractNestablePropertyAccessor.setPropertyValue(java.lang.String, java.lang.Object)
, AbstractNestablePropertyAccessor.getPropertyValue(java.lang.String)
, AbstractNestablePropertyAccessor.getPropertyType(java.lang.String)
, BeanWrapper
, PropertyEditorRegistrySupport
AbstractNestablePropertyAccessor.PropertyHandler, AbstractNestablePropertyAccessor.PropertyTokenHolder
NESTED_PROPERTY_SEPARATOR, NESTED_PROPERTY_SEPARATOR_CHAR, PROPERTY_KEY_PREFIX, PROPERTY_KEY_PREFIX_CHAR, PROPERTY_KEY_SUFFIX, PROPERTY_KEY_SUFFIX_CHAR
コンストラクターと説明 |
---|
BeanWrapperImpl() 新しい空の BeanWrapperImpl を作成します。 |
BeanWrapperImpl(boolean registerDefaultEditors) 新しい空の BeanWrapperImpl を作成します。 |
BeanWrapperImpl(ClassSE<?> clazz) 指定されたクラスの新しいインスタンスをラップして、新しい BeanWrapperImpl を作成します。 |
BeanWrapperImpl(ObjectSE object) 指定されたオブジェクトの新しい BeanWrapperImpl を作成します。 |
BeanWrapperImpl(ObjectSE object, StringSE nestedPath, ObjectSE rootObject) 指定されたオブジェクトの新しい BeanWrapperImpl を作成し、オブジェクトが含まれているネストされたパスを登録します。 |
修飾子と型 | メソッドと説明 |
---|---|
ObjectSE | convertForProperty(ObjectSE value, StringSE propertyName) 指定されたプロパティの指定された値を後者の型に変換します。 |
protected NotWritablePropertyException | createNotWritablePropertyException(StringSE propertyName) 指定されたプロパティの NotWritablePropertyException を作成します。 |
protected org.springframework.beans.BeanWrapperImpl.BeanPropertyHandler | getLocalPropertyHandler(StringSE propertyName) 指定されたローカル propertyName の AbstractNestablePropertyAccessor.PropertyHandler を返します。 |
PropertyDescriptorSE | getPropertyDescriptor(StringSE propertyName) ラップされたオブジェクトの特定のプロパティのプロパティ記述子を取得します。 |
PropertyDescriptorSE[] | getPropertyDescriptors() ラップされたオブジェクトの PropertyDescriptors を取得します(標準の JavaBeans イントロスペクションによって決定されます)。 |
AccessControlContextSE | getSecurityContext() ラップされたインスタンスメソッドの呼び出し中に使用されるセキュリティコンテキストを返します。 |
protected BeanWrapperImpl | newNestedPropertyAccessor(ObjectSE object, StringSE nestedPath) 新しいネストされたプロパティアクセサーインスタンスを作成します。 |
void | setBeanInstance(ObjectSE object) Optional SE をアンラップせずに、Bean インスタンスを保持するように設定します。 |
protected void | setIntrospectionClass(ClassSE<?> clazz) クラスをイントロスペクトに設定します。 |
void | setSecurityContext(AccessControlContextSE acc) ラップされたインスタンスメソッドの呼び出し中に使用されるセキュリティコンテキストを設定します。 |
void | setWrappedInstance(ObjectSE object, StringSE nestedPath, ObjectSE rootObject) 新しいオブジェクトのクラスが置き換えられたオブジェクトのクラスと異なる場合にのみ、ターゲットオブジェクトを切り替えて、キャッシュされたイントロスペクションの結果を置き換えます。 |
convertForProperty, getAutoGrowCollectionLimit, getFinalPath, getNestedPath, getPropertyAccessorForPropertyPath, getPropertyHandler, getPropertyType, getPropertyTypeDescriptor, getPropertyValue, getPropertyValue, getRootClass, getRootInstance, getWrappedClass, getWrappedInstance, isReadableProperty, isWritableProperty, setAutoGrowCollectionLimit, setPropertyValue, setPropertyValue, setPropertyValue, setWrappedInstance, toString
isAutoGrowNestedPaths, isExtractOldValueForEditor, setAutoGrowNestedPaths, setExtractOldValueForEditor, setPropertyValues, setPropertyValues, setPropertyValues, setPropertyValues
convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary
copyCustomEditorsTo, copyDefaultEditorsTo, findCustomEditor, getConversionService, getDefaultEditor, guessPropertyTypeFromEditors, hasCustomEditorForElement, overrideDefaultEditor, registerCustomEditor, registerCustomEditor, registerDefaultEditors, setConversionService, useConfigValueEditors
cloneSE, equalsSE, finalizeSE, getClassSE, hashCodeSE, notifySE, notifyAllSE, waitSE, waitSE, waitSE
getAutoGrowCollectionLimit, getWrappedClass, getWrappedInstance, setAutoGrowCollectionLimit
getConversionService, isAutoGrowNestedPaths, isExtractOldValueForEditor, setAutoGrowNestedPaths, setConversionService, setExtractOldValueForEditor
getPropertyType, getPropertyTypeDescriptor, getPropertyValue, isReadableProperty, isWritableProperty, setPropertyValue, setPropertyValue, setPropertyValues, setPropertyValues, setPropertyValues, setPropertyValues
findCustomEditor, registerCustomEditor, registerCustomEditor
convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary
public BeanWrapperImpl()
public BeanWrapperImpl(boolean registerDefaultEditors)
registerDefaultEditors
- デフォルトのエディターを登録するかどうか (BeanWrapper が型変換を必要としない場合は抑制できます)setWrappedInstance(java.lang.Object, java.lang.String, java.lang.Object)
public BeanWrapperImpl(ObjectSE object)
object
- この BeanWrapper によってラップされたオブジェクト public BeanWrapperImpl(ClassSE<?> clazz)
clazz
- インスタンス化してラップするクラス public void setBeanInstance(ObjectSE object)
Optional
SE をアンラップせずに、Bean インスタンスを保持するように設定します。object
- 実際のターゲットオブジェクト AbstractNestablePropertyAccessor.setWrappedInstance(Object)
public void setWrappedInstance(ObjectSE object, @Nullable StringSE nestedPath, @Nullable ObjectSE rootObject)
AbstractNestablePropertyAccessor
AbstractNestablePropertyAccessor
の setWrappedInstance
object
- 新しいターゲットオブジェクト nestedPath
- オブジェクトのネストされたパス rootObject
- パスの上部にあるルートオブジェクト protected void setIntrospectionClass(ClassSE<?> clazz)
clazz
- イントロスペクトするクラス public void setSecurityContext(@Nullable AccessControlContextSE acc)
@Nullable public AccessControlContextSE getSecurityContext()
@Nullable public ObjectSE convertForProperty(@Nullable ObjectSE value, StringSE propertyName) throws TypeMismatchException
このメソッドは、BeanFactory での最適化のみを目的としています。プログラムによる変換には、convertIfNecessary
メソッドを使用します。
value
- 変換する値 propertyName
- target プロパティ (ネストされたプロパティまたはインデックス付きプロパティはここではサポートされていないことに注意してください)TypeMismatchException
- 型変換が失敗した場合 @Nullable protected org.springframework.beans.BeanWrapperImpl.BeanPropertyHandler getLocalPropertyHandler(StringSE propertyName)
AbstractNestablePropertyAccessor
propertyName
の AbstractNestablePropertyAccessor.PropertyHandler
を返します。現在のコンテキストで利用可能なプロパティに到達するためにのみ使用されます。AbstractNestablePropertyAccessor
の getLocalPropertyHandler
propertyName
- ローカルプロパティの名前 null
が見つからない場合 protected BeanWrapperImpl newNestedPropertyAccessor(ObjectSE object, StringSE nestedPath)
AbstractNestablePropertyAccessor
AbstractNestablePropertyAccessor
の newNestedPropertyAccessor
object
- この PropertyAccessor によってラップされたオブジェクト nestedPath
- オブジェクトのネストされたパス protected NotWritablePropertyException createNotWritablePropertyException(StringSE propertyName)
AbstractNestablePropertyAccessor
NotWritablePropertyException
を作成します。public PropertyDescriptorSE[] getPropertyDescriptors()
BeanWrapper
BeanWrapper
の getPropertyDescriptors
public PropertyDescriptorSE getPropertyDescriptor(StringSE propertyName) throws InvalidPropertyException
BeanWrapper
BeanWrapper
の getPropertyDescriptor
propertyName
- 記述子を取得するプロパティ (ネストされたパスの場合がありますが、インデックス付き / マップされたプロパティはありません)InvalidPropertyException
- そのようなプロパティがない場合