## 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 `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`, `BeanPropertyBindingResult`, `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
`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.

Methods inherited from interface org.springframework.beans.ConfigurablePropertyAccessor
`getConversionService, isExtractOldValueForEditor, 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`

Method Detail

### getWrappedInstance

    Object getWrappedInstance()

  Return the bean instance wrapped by this object, if any.

  Returns:
    the bean instance, or `null` if none set

### getWrappedClass

    Class getWrappedClass()

  Return the type of the wrapped JavaBean object.

  Returns:
    the type of the wrapped bean instance, or `null` if no wrapped object has been set

### 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 no indexed/mapped property)
  Returns:
    the property descriptor for the specified property
  Throws:
    `InvalidPropertyException` - if there is no such property

### setAutoGrowNestedPaths

    void setAutoGrowNestedPaths(boolean autoGrowNestedPaths)

  Set whether this BeanWrapper should attempt to "auto-grow" a nested path that contains a null value.

  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.

### isAutoGrowNestedPaths

    boolean isAutoGrowNestedPaths()

  Return whether "auto-growing" of nested paths has been activated.

### setAutoGrowCollectionLimit

    void setAutoGrowCollectionLimit(int autoGrowCollectionLimit)

  Specify a limit for array and collection auto-growing.

  Default is unlimited on a plain BeanWrapper.

### getAutoGrowCollectionLimit

    int getAutoGrowCollectionLimit()

  Return the limit for array and collection auto-growing.