org.apache.commons.beanutils
Class BeanUtils

java.lang.Object
  extended by org.apache.commons.beanutils.BeanUtils
Direct Known Subclasses:
LocaleBeanUtils

public class BeanUtils
extends Object

Utility methods for populating JavaBeans properties via reflection.

The implementations are provided by BeanUtilsBean. These static utility methods use the default instance. More sophisticated behaviour can be provided by using a BeanUtilsBean instance.

Version:
$Revision: 690380 $ $Date: 2008-08-29 21:04:38 +0100 (Fri, 29 Aug 2008) $
Author:
Craig R. McClanahan, Ralph Schaer, Chris Audley, Rey Francois, Gregor Rayman
See Also:
BeanUtilsBean

Constructor Summary
BeanUtils()
           
 
Method Summary
static Object cloneBean(Object bean)
          Clone a bean based on the available property getters and setters, even if the bean class itself does not implement Cloneable.
static void copyProperties(Object dest, Object orig)
          Copy property values from the origin bean to the destination bean for all cases where the property names are the same.
static void copyProperty(Object bean, String name, Object value)
          Copy the specified property value to the specified destination bean, performing any type conversion that is required.
static Map createCache()
          Create a cache.
static Map describe(Object bean)
          Return the entire set of properties for which the specified bean provides a read method.
static String[] getArrayProperty(Object bean, String name)
          Return the value of the specified array property of the specified bean, as a String array.
static boolean getCacheFast(Map map)
          Return whether a Map is fast
static int getDebug()
          Deprecated. BeanUtils now uses commons-logging for all log messages. Use your favorite logging tool to configure logging for this class.
static String getIndexedProperty(Object bean, String name)
          Return the value of the specified indexed property of the specified bean, as a String.
static String getIndexedProperty(Object bean, String name, int index)
          Return the value of the specified indexed property of the specified bean, as a String.
static String getMappedProperty(Object bean, String name)
          Return the value of the specified indexed property of the specified bean, as a String.
static String getMappedProperty(Object bean, String name, String key)
          Return the value of the specified mapped property of the specified bean, as a String.
static String getNestedProperty(Object bean, String name)
          Return the value of the (possibly nested) property of the specified name, for the specified bean, as a String.
static String getProperty(Object bean, String name)
          Return the value of the specified property of the specified bean, no matter which property reference format is used, as a String.
static String getSimpleProperty(Object bean, String name)
          Return the value of the specified simple property of the specified bean, converted to a String.
static boolean initCause(Throwable throwable, Throwable cause)
          If we're running on JDK 1.4 or later, initialize the cause for the given throwable.
static void populate(Object bean, Map properties)
          Populate the JavaBeans properties of the specified bean, based on the specified name/value pairs.
static void setCacheFast(Map map, boolean fast)
          Set whether fast on a Map
static void setDebug(int newDebug)
          Deprecated. BeanUtils now uses commons-logging for all log messages. Use your favorite logging tool to configure logging for this class.
static void setProperty(Object bean, String name, Object value)
          Set the specified property value, performing type conversions as required to conform to the type of the destination property.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

BeanUtils

public BeanUtils()
Method Detail

getDebug

public static int getDebug()
Deprecated. BeanUtils now uses commons-logging for all log messages. Use your favorite logging tool to configure logging for this class.

The debug static property is no longer used

Returns:
debug property

setDebug

public static void setDebug(int newDebug)
Deprecated. BeanUtils now uses commons-logging for all log messages. Use your favorite logging tool to configure logging for this class.

The debug static property is no longer used

Parameters:
newDebug - debug property

cloneBean

public static Object cloneBean(Object bean)
                        throws IllegalAccessException,
                               InstantiationException,
                               InvocationTargetException,
                               NoSuchMethodException

Clone a bean based on the available property getters and setters, even if the bean class itself does not implement Cloneable.

For more details see BeanUtilsBean.

Parameters:
bean - Bean to be cloned
Returns:
the cloned bean
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InstantiationException - if a new instance of the bean's class cannot be instantiated
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.cloneBean(java.lang.Object)

copyProperties

public static void copyProperties(Object dest,
                                  Object orig)
                           throws IllegalAccessException,
                                  InvocationTargetException

Copy property values from the origin bean to the destination bean for all cases where the property names are the same.

For more details see BeanUtilsBean.

Parameters:
dest - Destination bean whose properties are modified
orig - Origin bean whose properties are retrieved
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
IllegalArgumentException - if the dest or orig argument is null or if the dest property type is different from the source type and the relevant converter has not been registered.
InvocationTargetException - if the property accessor method throws an exception
See Also:
BeanUtilsBean.copyProperties(java.lang.Object, java.lang.Object)

copyProperty

public static void copyProperty(Object bean,
                                String name,
                                Object value)
                         throws IllegalAccessException,
                                InvocationTargetException

Copy the specified property value to the specified destination bean, performing any type conversion that is required.

For more details see BeanUtilsBean.

Parameters:
bean - Bean on which setting is to be performed
name - Property name (can be nested/indexed/mapped/combo)
value - Value to be set
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
See Also:
BeanUtilsBean.copyProperty(java.lang.Object, java.lang.String, java.lang.Object)

describe

public static Map describe(Object bean)
                    throws IllegalAccessException,
                           InvocationTargetException,
                           NoSuchMethodException

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

For more details see BeanUtilsBean.

Parameters:
bean - Bean whose properties are to be extracted
Returns:
Map of property descriptors
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.describe(java.lang.Object)

getArrayProperty

public static String[] getArrayProperty(Object bean,
                                        String name)
                                 throws IllegalAccessException,
                                        InvocationTargetException,
                                        NoSuchMethodException

Return the value of the specified array property of the specified bean, as a String array.

For more details see BeanUtilsBean.

Parameters:
bean - Bean whose property is to be extracted
name - Name of the property to be extracted
Returns:
The array property value
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getArrayProperty(java.lang.Object, java.lang.String)

getIndexedProperty

public static String getIndexedProperty(Object bean,
                                        String name)
                                 throws IllegalAccessException,
                                        InvocationTargetException,
                                        NoSuchMethodException

Return the value of the specified indexed property of the specified bean, as a String.

For more details see BeanUtilsBean.

Parameters:
bean - Bean whose property is to be extracted
name - propertyname[index] of the property value to be extracted
Returns:
The indexed property's value, converted to a String
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getIndexedProperty(Object, String)

getIndexedProperty

public static String getIndexedProperty(Object bean,
                                        String name,
                                        int index)
                                 throws IllegalAccessException,
                                        InvocationTargetException,
                                        NoSuchMethodException
Return the value of the specified indexed property of the specified bean, as a String. The index is specified as a method parameter and must *not* be included in the property name expression

For more details see BeanUtilsBean.

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's value, converted to a String
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getIndexedProperty(Object, String, int)

getMappedProperty

public static String getMappedProperty(Object bean,
                                       String name)
                                throws IllegalAccessException,
                                       InvocationTargetException,
                                       NoSuchMethodException

Return the value of the specified indexed property of the specified bean, as a String.

For more details see BeanUtilsBean.

Parameters:
bean - Bean whose property is to be extracted
name - propertyname(index) of the property value to be extracted
Returns:
The mapped property's value, converted to a String
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getMappedProperty(Object, String)

getMappedProperty

public static String getMappedProperty(Object bean,
                                       String name,
                                       String key)
                                throws IllegalAccessException,
                                       InvocationTargetException,
                                       NoSuchMethodException

Return the value of the specified mapped property of the specified bean, as a String.

For more details see BeanUtilsBean.

Parameters:
bean - Bean whose property is to be extracted
name - Simple property name of the property value to be extracted
key - Lookup key of the property value to be extracted
Returns:
The mapped property's value, converted to a String
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getMappedProperty(Object, String, String)

getNestedProperty

public static String getNestedProperty(Object bean,
                                       String name)
                                throws IllegalAccessException,
                                       InvocationTargetException,
                                       NoSuchMethodException

Return the value of the (possibly nested) property of the specified name, for the specified bean, as a String.

For more details see BeanUtilsBean.

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

getProperty

public static String getProperty(Object bean,
                                 String name)
                          throws IllegalAccessException,
                                 InvocationTargetException,
                                 NoSuchMethodException

Return the value of the specified property of the specified bean, no matter which property reference format is used, as a String.

For more details see BeanUtilsBean.

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's value, converted to a String
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getProperty(java.lang.Object, java.lang.String)

getSimpleProperty

public static String getSimpleProperty(Object bean,
                                       String name)
                                throws IllegalAccessException,
                                       InvocationTargetException,
                                       NoSuchMethodException

Return the value of the specified simple property of the specified bean, converted to a String.

For more details see BeanUtilsBean.

Parameters:
bean - Bean whose property is to be extracted
name - Name of the property to be extracted
Returns:
The property's value, converted to a String
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
NoSuchMethodException - if an accessor method for this property cannot be found
See Also:
BeanUtilsBean.getSimpleProperty(java.lang.Object, java.lang.String)

populate

public static void populate(Object bean,
                            Map properties)
                     throws IllegalAccessException,
                            InvocationTargetException

Populate the JavaBeans properties of the specified bean, based on the specified name/value pairs.

For more details see BeanUtilsBean.

Parameters:
bean - JavaBean whose properties are being populated
properties - Map keyed by property name, with the corresponding (String or String[]) value(s) to be set
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
See Also:
BeanUtilsBean.populate(java.lang.Object, java.util.Map)

setProperty

public static void setProperty(Object bean,
                               String name,
                               Object value)
                        throws IllegalAccessException,
                               InvocationTargetException

Set the specified property value, performing type conversions as required to conform to the type of the destination property.

For more details see BeanUtilsBean.

Parameters:
bean - Bean on which setting is to be performed
name - Property name (can be nested/indexed/mapped/combo)
value - Value to be set
Throws:
IllegalAccessException - if the caller does not have access to the property accessor method
InvocationTargetException - if the property accessor method throws an exception
See Also:
BeanUtilsBean.setProperty(java.lang.Object, java.lang.String, java.lang.Object)

initCause

public static boolean initCause(Throwable throwable,
                                Throwable cause)
If we're running on JDK 1.4 or later, initialize the cause for the given throwable.

Parameters:
throwable - The throwable.
cause - The cause of the throwable.
Returns:
true if the cause was initialized, otherwise false.
Since:
1.8.0

createCache

public static Map createCache()
Create a cache.

Returns:
a new cache
Since:
1.8.0

getCacheFast

public static boolean getCacheFast(Map map)
Return whether a Map is fast

Parameters:
map - The map
Returns:
Whether it is fast or not.
Since:
1.8.0

setCacheFast

public static void setCacheFast(Map map,
                                boolean fast)
Set whether fast on a Map

Parameters:
map - The map
fast - Whether it should be fast or not.
Since:
1.8.0


Copyright © 2000-2008 The Apache Software Foundation. All Rights Reserved.