Package org.springframework.beans

# Interface BeanWrapper

All Superinterfaces:
  `ConfigurablePropertyAccessor`, `PropertyAccessor`, `PropertyEditorRegistry`, `TypeConverter`

All Known Implementing Classes:
  `BeanWrapperImpl`

public interface BeanWrapper extends ConfigurablePropertyAccessor
The central interface of Spring's low-level JavaBeans infrastructure.

Typically not used directly but rather implicitly via a `BeanFactory` or a `org.springframework.validation.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.

Since:
  13 April 2001
Author:
  Rod Johnson, Juergen Hoeller
See Also:
  - `PropertyAccessor`
  - `PropertyEditorRegistry`
  - `PropertyAccessorFactory.forBeanPropertyAccess(java.lang.Object)`
  - `BeanFactory`
  - `org.springframework.validation.BeanPropertyBindingResult`
  - `org.springframework.validation.DataBinder#initBeanPropertyAccess()`

## Field Summary

### Fields inherited from interface 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`

## Method Summary

Modifier and Type
Method
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 bean instance.
`Object`
`getWrappedInstance()`
Return the bean instance wrapped by this object.
`void`
`setAutoGrowCollectionLimit(int autoGrowCollectionLimit)`
Specify a limit for array and collection auto-growing.

### Methods inherited from interface org.springframework.beans.ConfigurablePropertyAccessor

`getConversionService, isAutoGrowNestedPaths, isExtractOldValueForEditor, setAutoGrowNestedPaths, setConversionService, setExtractOldValueForEditor`

### Methods inherited from interface org.springframework.beans.PropertyAccessor

`getPropertyType, getPropertyTypeDescriptor, getPropertyValue, isReadableProperty, isWritableProperty, setPropertyValue, setPropertyValue, setPropertyValues, setPropertyValues, setPropertyValues, setPropertyValues`

### Methods inherited from interface org.springframework.beans.PropertyEditorRegistry

`findCustomEditor, registerCustomEditor, registerCustomEditor`

### Methods inherited from interface org.springframework.beans.TypeConverter

`convertIfNecessary, convertIfNecessary, convertIfNecessary, convertIfNecessary`

## Method Details

### setAutoGrowCollectionLimit

void setAutoGrowCollectionLimit(int autoGrowCollectionLimit)
Specify a limit for array and collection auto-growing.

Default is unlimited on a plain BeanWrapper.

Since:
  4.1

### getAutoGrowCollectionLimit

int getAutoGrowCollectionLimit()
Return the limit for array and collection auto-growing.

Since:
  4.1

### getWrappedInstance

Object getWrappedInstance()
Return the bean instance wrapped by this object.

### getWrappedClass

Class<?> getWrappedClass()
Return the type of the wrapped bean instance.

### getPropertyDescriptors

PropertyDescriptor[] getPropertyDescriptors()
Obtain the PropertyDescriptors for the wrapped object (as determined by standard JavaBeans introspection).

Returns:
  the PropertyDescriptors for the wrapped object

### getPropertyDescriptor

PropertyDescriptor getPropertyDescriptor(String propertyName) throws InvalidPropertyException
Obtain the property descriptor for a specific property of the wrapped object.

Parameters:
  `propertyName` - the property to obtain the descriptor for (may be a nested path, but not an indexed/mapped property)
Returns:
  the property descriptor for the specified property
Throws:
  `InvalidPropertyException` - if there is no such property