Package org.apache.commons.beanutils

## Class PropertyUtils

- java.lang.Object
- - org.apache.commons.beanutils.PropertyUtils

    public class PropertyUtils
    extends java.lang.Object

Utility methods for using Java Reflection APIs to facilitate generic property getter and setter operations on Java objects.

The implementations for these methods are provided by `PropertyUtilsBean`. For more details see `PropertyUtilsBean`.

Version:
  $Id$
See Also:
  `PropertyUtilsBean`, `Resolver`

### Field Summary

Fields
`static char` `INDEXED_DELIM` Deprecated. The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
`static char` `INDEXED_DELIM2` Deprecated. The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
`static char` `MAPPED_DELIM` Deprecated. The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
`static char` `MAPPED_DELIM2` Deprecated. The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
`static char` `NESTED_DELIM` Deprecated. The notation used for property name expressions is now dependant on the `Resolver` implementation being used.

### Constructor Summary

Constructors
`PropertyUtils()`

### Method Summary

All Methods Static Methods Concrete Methods Deprecated Methods
`static void` `addBeanIntrospector​(BeanIntrospector introspector)` Adds a `BeanIntrospector`.
`static void` `clearDescriptors()` Clear any cached property descriptors information for all classes loaded by any class loaders.
`static void` `copyProperties​(java.lang.Object dest, java.lang.Object orig)` Copy property values from the "origin" bean to the "destination" bean for all cases where the property names are the same (even though the actual getter and setter methods might have been customized via `BeanInfo` classes).
`static java.util.Map<java.lang.String,​java.lang.Object>` `describe​(java.lang.Object bean)` Return the entire set of properties for which the specified bean provides a read method.
`static int` `getDebug()` Deprecated. The `debug` static property is no longer used
`static java.lang.Object` `getIndexedProperty​(java.lang.Object bean, java.lang.String name)` Return the value of the specified indexed property of the specified bean, with no type conversions.
`static java.lang.Object` `getIndexedProperty​(java.lang.Object bean, java.lang.String name, int index)` Return the value of the specified indexed property of the specified bean, with no type conversions.
`static java.lang.Object` `getMappedProperty​(java.lang.Object bean, java.lang.String name)` Return the value of the specified mapped property of the specified bean, with no type conversions.
`static java.lang.Object` `getMappedProperty​(java.lang.Object bean, java.lang.String name, java.lang.String key)` Return the value of the specified mapped property of the specified bean, with no type conversions.
`static org.apache.commons.collections.FastHashMap` `getMappedPropertyDescriptors​(java.lang.Class<?> beanClass)` Deprecated. This method should not be exposed
`static org.apache.commons.collections.FastHashMap` `getMappedPropertyDescriptors​(java.lang.Object bean)` Deprecated. This method should not be exposed
`static java.lang.Object` `getNestedProperty​(java.lang.Object bean, java.lang.String name)` Return the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions.
`static java.lang.Object` `getProperty​(java.lang.Object bean, java.lang.String name)` Return the value of the specified property of the specified bean, no matter which property reference format is used, with no type conversions.
`static java.beans.PropertyDescriptor` `getPropertyDescriptor​(java.lang.Object bean, java.lang.String name)` Retrieve the property descriptor for the specified property of the specified bean, or return `null` if there is no such descriptor.
`static java.beans.PropertyDescriptor[]` `getPropertyDescriptors​(java.lang.Class<?> beanClass)` Retrieve the property descriptors for the specified class, introspecting and caching them the first time a particular bean class is encountered.
`static java.beans.PropertyDescriptor[]` `getPropertyDescriptors​(java.lang.Object bean)` Retrieve the property descriptors for the specified bean, introspecting and caching them the first time a particular bean class is encountered.
`static java.lang.Class<?>` `getPropertyEditorClass​(java.lang.Object bean, java.lang.String name)` Return the Java Class repesenting the property editor class that has been registered for this property (if any).
`static java.lang.Class<?>` `getPropertyType​(java.lang.Object bean, java.lang.String name)` Return the Java Class representing the property type of the specified property, or `null` if there is no such property for the specified bean.
`static java.lang.reflect.Method` `getReadMethod​(java.beans.PropertyDescriptor descriptor)` Return an accessible property getter method for this property, if there is one; otherwise return `null`.
`static java.lang.Object` `getSimpleProperty​(java.lang.Object bean, java.lang.String name)` Return the value of the specified simple property of the specified bean, with no type conversions.
`static java.lang.reflect.Method` `getWriteMethod​(java.beans.PropertyDescriptor descriptor)` Return an accessible property setter method for this property, if there is one; otherwise return `null`.
`static boolean` `isReadable​(java.lang.Object bean, java.lang.String name)` Return `true` if the specified property name identifies a readable property on the specified bean; otherwise, return `false`.
`static boolean` `isWriteable​(java.lang.Object bean, java.lang.String name)` Return `true` if the specified property name identifies a writeable property on the specified bean; otherwise, return `false`.
`static boolean` `removeBeanIntrospector​(BeanIntrospector introspector)` Removes the specified `BeanIntrospector`.
`static void` `resetBeanIntrospectors()` Resets the registered `BeanIntrospector` objects to the initial default state.
`static void` `setDebug​(int newDebug)` Deprecated. The `debug` static property is no longer used
`static void` `setIndexedProperty​(java.lang.Object bean, java.lang.String name, int index, java.lang.Object value)` Sets the value of the specified indexed property of the specified bean, with no type conversions.
`static void` `setIndexedProperty​(java.lang.Object bean, java.lang.String name, java.lang.Object value)` Sets the value of the specified indexed property of the specified bean, with no type conversions.
`static void` `setMappedProperty​(java.lang.Object bean, java.lang.String name, java.lang.Object value)` Sets the value of the specified mapped property of the specified bean, with no type conversions.
`static void` `setMappedProperty​(java.lang.Object bean, java.lang.String name, java.lang.String key, java.lang.Object value)` Sets the value of the specified mapped property of the specified bean, with no type conversions.
`static void` `setNestedProperty​(java.lang.Object bean, java.lang.String name, java.lang.Object value)` Sets the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions.
`static void` `setProperty​(java.lang.Object bean, java.lang.String name, java.lang.Object value)` Set the value of the specified property of the specified bean, no matter which property reference format is used, with no type conversions.
`static void` `setSimpleProperty​(java.lang.Object bean, java.lang.String name, java.lang.Object value)` Set the value of the specified simple property of the specified bean, with no type conversions.

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### INDEXED_DELIM

    @Deprecated
    public static final char INDEXED_DELIM

Deprecated.
The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
The delimiter that preceeds the zero-relative subscript for an indexed reference.

See Also:
  Constant Field Values

#### INDEXED_DELIM2

    @Deprecated
    public static final char INDEXED_DELIM2

Deprecated.
The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
The delimiter that follows the zero-relative subscript for an indexed reference.

See Also:
  Constant Field Values

#### MAPPED_DELIM

    @Deprecated
    public static final char MAPPED_DELIM

Deprecated.
The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
The delimiter that preceeds the key of a mapped property.

See Also:
  Constant Field Values

#### MAPPED_DELIM2

    @Deprecated
    public static final char MAPPED_DELIM2

Deprecated.
The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
The delimiter that follows the key of a mapped property.

See Also:
  Constant Field Values

#### NESTED_DELIM

    @Deprecated
    public static final char NESTED_DELIM

Deprecated.
The notation used for property name expressions is now dependant on the `Resolver` implementation being used.
The delimiter that separates the components of a nested reference.

See Also:
  Constant Field Values

### Constructor Detail

#### PropertyUtils

    public PropertyUtils()

### Method Detail

#### getDebug

    @Deprecated
    public static int getDebug()

Deprecated.
The `debug` static property is no longer used
The `debug` static property is no longer used

Returns:
  debug property

#### setDebug

    @Deprecated
    public static void setDebug​(int newDebug)

Deprecated.
The `debug` static property is no longer used
The `debug` static property is no longer used

Parameters:
  `newDebug` - debug property

#### clearDescriptors

    public static void clearDescriptors()

Clear any cached property descriptors information for all classes loaded by any class loaders. This is useful in cases where class loaders are thrown away to implement class reloading.

For more details see `PropertyUtilsBean`.

See Also:
  `PropertyUtilsBean.clearDescriptors()`

#### resetBeanIntrospectors

    public static void resetBeanIntrospectors()

Resets the registered `BeanIntrospector` objects to the initial default state.

Since:
  1.9

#### addBeanIntrospector

    public static void addBeanIntrospector​(BeanIntrospector introspector)

Adds a `BeanIntrospector`. This object is invoked when the property descriptors of a class need to be obtained.

Parameters:
  `introspector` - the `BeanIntrospector` to be added (must not be null
Throws:
  `java.lang.IllegalArgumentException` - if the argument is null
Since:
  1.9

#### removeBeanIntrospector

    public static boolean removeBeanIntrospector​(BeanIntrospector introspector)

Removes the specified `BeanIntrospector`.

Parameters:
  `introspector` - the `BeanIntrospector` to be removed
Returns:
  true if the `BeanIntrospector` existed and could be removed, false otherwise
Since:
  1.9

#### copyProperties

    public static void copyProperties​(java.lang.Object dest,
                                      java.lang.Object orig)
                               throws java.lang.IllegalAccessException,
                                      java.lang.reflect.InvocationTargetException,
                                      java.lang.NoSuchMethodException

Copy property values from the "origin" bean to the "destination" bean for all cases where the property names are the same (even though the actual getter and setter methods might have been customized via `BeanInfo` classes).

For more details see `PropertyUtilsBean`.

Parameters:
  `dest` - Destination bean whose properties are modified
  `orig` - Origin bean whose properties are retrieved
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if the `dest` or `orig` argument is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.copyProperties(java.lang.Object, java.lang.Object)`

#### describe

    public static java.util.Map<java.lang.String,​java.lang.Object> describe​(java.lang.Object bean)
                                                                           throws java.lang.IllegalAccessException,
                                                                                  java.lang.reflect.InvocationTargetException,
                                                                                  java.lang.NoSuchMethodException

Return the entire set of properties for which the specified bean provides a read method.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose properties are to be extracted
Returns:
  The set of properties for the bean
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.describe(java.lang.Object)`

#### getIndexedProperty

    public static java.lang.Object getIndexedProperty​(java.lang.Object bean,
                                                      java.lang.String name)
                                               throws java.lang.IllegalAccessException,
                                                      java.lang.reflect.InvocationTargetException,
                                                      java.lang.NoSuchMethodException

Return the value of the specified indexed property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - `propertyname[index]` of the property value to be extracted
Returns:
  the indexed property value
Throws:
  `java.lang.IndexOutOfBoundsException` - if the specified index is outside the valid range for the underlying property
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getIndexedProperty(Object,String)`

#### getIndexedProperty

    public static java.lang.Object getIndexedProperty​(java.lang.Object bean,
                                                      java.lang.String name,
                                                      int index)
                                               throws java.lang.IllegalAccessException,
                                                      java.lang.reflect.InvocationTargetException,
                                                      java.lang.NoSuchMethodException

Return the value of the specified indexed property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - Simple property name of the property value to be extracted
  `index` - Index of the property value to be extracted
Returns:
  the indexed property value
Throws:
  `java.lang.IndexOutOfBoundsException` - if the specified index is outside the valid range for the underlying property
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getIndexedProperty(Object,String, int)`

#### getMappedProperty

    public static java.lang.Object getMappedProperty​(java.lang.Object bean,
                                                     java.lang.String name)
                                              throws java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.NoSuchMethodException

Return the value of the specified mapped property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - `propertyname(key)` of the property value to be extracted
Returns:
  the mapped property value
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getMappedProperty(Object,String)`

#### getMappedProperty

    public static java.lang.Object getMappedProperty​(java.lang.Object bean,
                                                     java.lang.String name,
                                                     java.lang.String key)
                                              throws java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.NoSuchMethodException

Return the value of the specified mapped property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - Mapped property name of the property value to be extracted
  `key` - Key of the property value to be extracted
Returns:
  the mapped property value
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getMappedProperty(Object,String, String)`

#### getMappedPropertyDescriptors

    @Deprecated
    public static org.apache.commons.collections.FastHashMap getMappedPropertyDescriptors​(java.lang.Class<?> beanClass)

Deprecated.
This method should not be exposed

Return the mapped property descriptors for this bean class.

For more details see `PropertyUtilsBean`.

Parameters:
  `beanClass` - Bean class to be introspected
Returns:
  the mapped property descriptors
See Also:
  `PropertyUtilsBean.getMappedPropertyDescriptors(Class)`

#### getMappedPropertyDescriptors

    @Deprecated
    public static org.apache.commons.collections.FastHashMap getMappedPropertyDescriptors​(java.lang.Object bean)

Deprecated.
This method should not be exposed

Return the mapped property descriptors for this bean.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean to be introspected
Returns:
  the mapped property descriptors
See Also:
  `PropertyUtilsBean.getMappedPropertyDescriptors(Object)`

#### getNestedProperty

    public static java.lang.Object getNestedProperty​(java.lang.Object bean,
                                                     java.lang.String name)
                                              throws java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.NoSuchMethodException

Return the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - Possibly nested name of the property to be extracted
Returns:
  the nested property value
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `NestedNullException` - if a nested reference to a property returns null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getNestedProperty(java.lang.Object, java.lang.String)`

#### getProperty

    public static java.lang.Object getProperty​(java.lang.Object bean,
                                               java.lang.String name)
                                        throws java.lang.IllegalAccessException,
                                               java.lang.reflect.InvocationTargetException,
                                               java.lang.NoSuchMethodException

Return the value of the specified property of the specified bean, no matter which property reference format is used, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - Possibly indexed and/or nested name of the property to be extracted
Returns:
  the property value
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getProperty(java.lang.Object, java.lang.String)`

#### getPropertyDescriptor

    public static java.beans.PropertyDescriptor getPropertyDescriptor​(java.lang.Object bean,
                                                                      java.lang.String name)
                                                               throws java.lang.IllegalAccessException,
                                                                      java.lang.reflect.InvocationTargetException,
                                                                      java.lang.NoSuchMethodException

Retrieve the property descriptor for the specified property of the specified bean, or return `null` if there is no such descriptor.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean for which a property descriptor is requested
  `name` - Possibly indexed and/or nested name of the property for which a property descriptor is requested
Returns:
  the property descriptor
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.IllegalArgumentException` - if a nested reference to a property returns null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getPropertyDescriptor(java.lang.Object, java.lang.String)`

#### getPropertyDescriptors

    public static java.beans.PropertyDescriptor[] getPropertyDescriptors​(java.lang.Class<?> beanClass)

Retrieve the property descriptors for the specified class, introspecting and caching them the first time a particular bean class is encountered.

For more details see `PropertyUtilsBean`.

Parameters:
  `beanClass` - Bean class for which property descriptors are requested
Returns:
  the property descriptors
Throws:
  `java.lang.IllegalArgumentException` - if `beanClass` is null
See Also:
  `PropertyUtilsBean.getPropertyDescriptors(Class)`

#### getPropertyDescriptors

    public static java.beans.PropertyDescriptor[] getPropertyDescriptors​(java.lang.Object bean)

Retrieve the property descriptors for the specified bean, introspecting and caching them the first time a particular bean class is encountered.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean for which property descriptors are requested
Returns:
  the property descriptors
Throws:
  `java.lang.IllegalArgumentException` - if `bean` is null
See Also:
  `PropertyUtilsBean.getPropertyDescriptors(Object)`

#### getPropertyEditorClass

    public static java.lang.Class<?> getPropertyEditorClass​(java.lang.Object bean,
                                                            java.lang.String name)
                                                     throws java.lang.IllegalAccessException,
                                                            java.lang.reflect.InvocationTargetException,
                                                            java.lang.NoSuchMethodException

Return the Java Class repesenting the property editor class that has been registered for this property (if any).

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean for which a property descriptor is requested
  `name` - Possibly indexed and/or nested name of the property for which a property descriptor is requested
Returns:
  the property editor class
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.IllegalArgumentException` - if a nested reference to a property returns null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getPropertyEditorClass(Object,String)`

#### getPropertyType

    public static java.lang.Class<?> getPropertyType​(java.lang.Object bean,
                                                     java.lang.String name)
                                              throws java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.NoSuchMethodException

Return the Java Class representing the property type of the specified property, or `null` if there is no such property for the specified bean.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean for which a property descriptor is requested
  `name` - Possibly indexed and/or nested name of the property for which a property descriptor is requested
Returns:
  The property type
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.IllegalArgumentException` - if a nested reference to a property returns null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getPropertyType(Object, String)`

#### getReadMethod

    public static java.lang.reflect.Method getReadMethod​(java.beans.PropertyDescriptor descriptor)

Return an accessible property getter method for this property, if there is one; otherwise return `null`.

For more details see `PropertyUtilsBean`.

Parameters:
  `descriptor` - Property descriptor to return a getter for
Returns:
  The read method
See Also:
  `PropertyUtilsBean.getReadMethod(PropertyDescriptor)`

#### getSimpleProperty

    public static java.lang.Object getSimpleProperty​(java.lang.Object bean,
                                                     java.lang.String name)
                                              throws java.lang.IllegalAccessException,
                                                     java.lang.reflect.InvocationTargetException,
                                                     java.lang.NoSuchMethodException

Return the value of the specified simple property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be extracted
  `name` - Name of the property to be extracted
Returns:
  The property value
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.IllegalArgumentException` - if the property name is nested or indexed
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.getSimpleProperty(java.lang.Object, java.lang.String)`

#### getWriteMethod

    public static java.lang.reflect.Method getWriteMethod​(java.beans.PropertyDescriptor descriptor)

Return an accessible property setter method for this property, if there is one; otherwise return `null`.

For more details see `PropertyUtilsBean`.

Parameters:
  `descriptor` - Property descriptor to return a setter for
Returns:
  The write method
See Also:
  `PropertyUtilsBean.getWriteMethod(PropertyDescriptor)`

#### isReadable

    public static boolean isReadable​(java.lang.Object bean,
                                     java.lang.String name)

Return `true` if the specified property name identifies a readable property on the specified bean; otherwise, return `false`.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean to be examined (may be a `DynaBean`
  `name` - Property name to be evaluated
Returns:
  `true` if the property is readable, otherwise `false`
Throws:
  `java.lang.IllegalArgumentException` - if `bean` or `name` is `null`
Since:
  BeanUtils 1.6
See Also:
  `PropertyUtilsBean.isReadable(java.lang.Object, java.lang.String)`

#### isWriteable

    public static boolean isWriteable​(java.lang.Object bean,
                                      java.lang.String name)

Return `true` if the specified property name identifies a writeable property on the specified bean; otherwise, return `false`.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean to be examined (may be a `DynaBean`
  `name` - Property name to be evaluated
Returns:
  `true` if the property is writeable, otherwise `false`
Throws:
  `java.lang.IllegalArgumentException` - if `bean` or `name` is `null`
Since:
  BeanUtils 1.6
See Also:
  `PropertyUtilsBean.isWriteable(java.lang.Object, java.lang.String)`

#### setIndexedProperty

    public static void setIndexedProperty​(java.lang.Object bean,
                                          java.lang.String name,
                                          java.lang.Object value)
                                   throws java.lang.IllegalAccessException,
                                          java.lang.reflect.InvocationTargetException,
                                          java.lang.NoSuchMethodException

Sets the value of the specified indexed property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be modified
  `name` - `propertyname[index]` of the property value to be modified
  `value` - Value to which the specified property element should be set
Throws:
  `java.lang.IndexOutOfBoundsException` - if the specified index is outside the valid range for the underlying property
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setIndexedProperty(Object, String, Object)`

#### setIndexedProperty

    public static void setIndexedProperty​(java.lang.Object bean,
                                          java.lang.String name,
                                          int index,
                                          java.lang.Object value)
                                   throws java.lang.IllegalAccessException,
                                          java.lang.reflect.InvocationTargetException,
                                          java.lang.NoSuchMethodException

Sets the value of the specified indexed property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be set
  `name` - Simple property name of the property value to be set
  `index` - Index of the property value to be set
  `value` - Value to which the indexed property element is to be set
Throws:
  `java.lang.IndexOutOfBoundsException` - if the specified index is outside the valid range for the underlying property
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setIndexedProperty(Object, String, Object)`

#### setMappedProperty

    public static void setMappedProperty​(java.lang.Object bean,
                                         java.lang.String name,
                                         java.lang.Object value)
                                  throws java.lang.IllegalAccessException,
                                         java.lang.reflect.InvocationTargetException,
                                         java.lang.NoSuchMethodException

Sets the value of the specified mapped property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be set
  `name` - `propertyname(key)` of the property value to be set
  `value` - The property value to be set
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setMappedProperty(Object, String, Object)`

#### setMappedProperty

    public static void setMappedProperty​(java.lang.Object bean,
                                         java.lang.String name,
                                         java.lang.String key,
                                         java.lang.Object value)
                                  throws java.lang.IllegalAccessException,
                                         java.lang.reflect.InvocationTargetException,
                                         java.lang.NoSuchMethodException

Sets the value of the specified mapped property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be set
  `name` - Mapped property name of the property value to be set
  `key` - Key of the property value to be set
  `value` - The property value to be set
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setMappedProperty(Object, String, String, Object)`

#### setNestedProperty

    public static void setNestedProperty​(java.lang.Object bean,
                                         java.lang.String name,
                                         java.lang.Object value)
                                  throws java.lang.IllegalAccessException,
                                         java.lang.reflect.InvocationTargetException,
                                         java.lang.NoSuchMethodException

Sets the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be modified
  `name` - Possibly nested name of the property to be modified
  `value` - Value to which the property is to be set
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.IllegalArgumentException` - if a nested reference to a property returns null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setNestedProperty(java.lang.Object, java.lang.String, java.lang.Object)`

#### setProperty

    public static void setProperty​(java.lang.Object bean,
                                   java.lang.String name,
                                   java.lang.Object value)
                            throws java.lang.IllegalAccessException,
                                   java.lang.reflect.InvocationTargetException,
                                   java.lang.NoSuchMethodException

Set the value of the specified property of the specified bean, no matter which property reference format is used, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be modified
  `name` - Possibly indexed and/or nested name of the property to be modified
  `value` - Value to which this property is to be set
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setProperty(java.lang.Object, java.lang.String, java.lang.Object)`

#### setSimpleProperty

    public static void setSimpleProperty​(java.lang.Object bean,
                                         java.lang.String name,
                                         java.lang.Object value)
                                  throws java.lang.IllegalAccessException,
                                         java.lang.reflect.InvocationTargetException,
                                         java.lang.NoSuchMethodException

Set the value of the specified simple property of the specified bean, with no type conversions.

For more details see `PropertyUtilsBean`.

Parameters:
  `bean` - Bean whose property is to be modified
  `name` - Name of the property to be modified
  `value` - Value to which the property should be set
Throws:
  `java.lang.IllegalAccessException` - if the caller does not have access to the property accessor method
  `java.lang.IllegalArgumentException` - if `bean` or `name` is null
  `java.lang.IllegalArgumentException` - if the property name is nested or indexed
  `java.lang.reflect.InvocationTargetException` - if the property accessor method throws an exception
  `java.lang.NoSuchMethodException` - if an accessor method for this propety cannot be found
See Also:
  `PropertyUtilsBean.setSimpleProperty(java.lang.Object, java.lang.String, java.lang.Object)`