public interface BeanWrapper extends ConfigurablePropertyAccessor
Typically not used directly but rather implicitly via a
BeanFactory
or a
DataBinder
.
Provides operations to analyze and manipulate standard JavaBeans: the ability to get and set property values (individually or in bulk), get property descriptors, and query the readability/writability of properties.
This interface supports nested properties enabling the setting of properties on subproperties to an unlimited depth.
A BeanWrapper's default for the "extractOldValueForEditor" setting is "false", to avoid side effects caused by getter method invocations. Turn this to "true" to expose present property values to custom editors.
PropertyAccessor
,
PropertyEditorRegistry
,
PropertyAccessorFactory.forBeanPropertyAccess(java.lang.Object)
,
BeanFactory
,
BeanPropertyBindingResult
,
DataBinder.initBeanPropertyAccess()
NESTED_PROPERTY_SEPARATOR, NESTED_PROPERTY_SEPARATOR_CHAR, PROPERTY_KEY_PREFIX, PROPERTY_KEY_PREFIX_CHAR, PROPERTY_KEY_SUFFIX, PROPERTY_KEY_SUFFIX_CHAR
Modifier and Type | Method and Description |
---|---|
int |
getAutoGrowCollectionLimit()
Return the limit for array and collection auto-growing.
|
PropertyDescriptor |
getPropertyDescriptor(String propertyName)
Obtain the property descriptor for a specific property
of the wrapped object.
|
PropertyDescriptor[] |
getPropertyDescriptors()
Obtain the PropertyDescriptors for the wrapped object
(as determined by standard JavaBeans introspection).
|
Class |
getWrappedClass()
Return the type of the wrapped JavaBean object.
|
Object |
getWrappedInstance()
Return the bean instance wrapped by this object, if any.
|
boolean |
isAutoGrowNestedPaths()
Return whether "auto-growing" of nested paths has been activated.
|
void |
setAutoGrowCollectionLimit(int autoGrowCollectionLimit)
Specify a limit for array and collection auto-growing.
|
void |
setAutoGrowNestedPaths(boolean autoGrowNestedPaths)
Set whether this BeanWrapper should attempt to "auto-grow" a nested path that contains a null value.
|
getConversionService, isExtractOldValueForEditor, setConversionService, setExtractOldValueForEditor
getPropertyType, getPropertyTypeDescriptor, getPropertyValue, isReadableProperty, isWritableProperty, setPropertyValue, setPropertyValue, setPropertyValues, setPropertyValues, setPropertyValues, setPropertyValues
findCustomEditor, registerCustomEditor, registerCustomEditor
convertIfNecessary, convertIfNecessary, convertIfNecessary
Object getWrappedInstance()
null
if none setClass getWrappedClass()
null
if no wrapped object has been setPropertyDescriptor[] getPropertyDescriptors()
PropertyDescriptor getPropertyDescriptor(String propertyName) throws InvalidPropertyException
propertyName
- the property to obtain the descriptor for
(may be a nested path, but no indexed/mapped property)InvalidPropertyException
- if there is no such propertyvoid setAutoGrowNestedPaths(boolean autoGrowNestedPaths)
If "true", a null path location will be populated with a default object value and traversed
instead of resulting in a NullValueInNestedPathException
. Turning this flag on also
enables auto-growth of collection elements when accessing an out-of-bounds index.
Default is "false" on a plain BeanWrapper.
boolean isAutoGrowNestedPaths()
void setAutoGrowCollectionLimit(int autoGrowCollectionLimit)
Default is unlimited on a plain BeanWrapper.
int getAutoGrowCollectionLimit()