org.apache.commons.beanutils

Class 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:
$Revision: 555845 $ $Date: 2007-07-13 03:52:05 +0100 (Fri, 13 Jul 2007) $
Authors:
Craig R. McClanahan
Ralph Schaer
Chris Audley
Rey Francois
Gregor Rayman
Jan Sorensen
Scott Sanders
See Also:
PropertyUtilsBean, Resolver

Field Summary

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.
private static int
debug
Deprecated. The debug static property is no longer used

Method Summary

static void
clearDescriptors()
Clear any cached property descriptors information for all classes loaded by any class loaders.
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 (even though the actual getter and setter methods might have been customized via BeanInfo classes).
static Map
describe(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 Object
getIndexedProperty(Object bean, String name)
Return the value of the specified indexed property of the specified bean, with no type conversions.
static Object
getIndexedProperty(Object bean, String name, int index)
Return the value of the specified indexed property of the specified bean, with no type conversions.
static Object
getMappedProperty(Object bean, String name)
Return the value of the specified mapped property of the specified bean, with no type conversions.
static Object
getMappedProperty(Object bean, String name, String key)
Return the value of the specified mapped property of the specified bean, with no type conversions.
static FastHashMap
getMappedPropertyDescriptors(Class beanClass)
Deprecated. This method should not be exposed
static FastHashMap
getMappedPropertyDescriptors(Object bean)
Deprecated. This method should not be exposed
static Object
getNestedProperty(Object bean, String name)
Return the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions.
static Object
getProperty(Object bean, 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 PropertyDescriptor
getPropertyDescriptor(Object bean, String name)
Retrieve the property descriptor for the specified property of the specified bean, or return null if there is no such descriptor.
static PropertyDescriptor[]
getPropertyDescriptors(Class beanClass)
Retrieve the property descriptors for the specified class, introspecting and caching them the first time a particular bean class is encountered.
static PropertyDescriptor[]
getPropertyDescriptors(Object bean)
Retrieve the property descriptors for the specified bean, introspecting and caching them the first time a particular bean class is encountered.
static Class
getPropertyEditorClass(Object bean, String name)
Return the Java Class repesenting the property editor class that has been registered for this property (if any).
static Class
getPropertyType(Object bean, 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 Method
getReadMethod(PropertyDescriptor descriptor)
Return an accessible property getter method for this property, if there is one; otherwise return null.
static Object
getSimpleProperty(Object bean, String name)
Return the value of the specified simple property of the specified bean, with no type conversions.
static Method
getWriteMethod(PropertyDescriptor descriptor)
Return an accessible property setter method for this property, if there is one; otherwise return null.
static boolean
isReadable(Object bean, String name)
Return true if the specified property name identifies a readable property on the specified bean; otherwise, return false.
static boolean
isWriteable(Object bean, String name)
Return true if the specified property name identifies a writeable property on the specified bean; otherwise, return false.
static void
setDebug(int newDebug)
Deprecated. The debug static property is no longer used
static void
setIndexedProperty(Object bean, String name, Object value)
Sets the value of the specified indexed property of the specified bean, with no type conversions.
static void
setIndexedProperty(Object bean, String name, int index, Object value)
Sets the value of the specified indexed property of the specified bean, with no type conversions.
static void
setMappedProperty(Object bean, String name, Object value)
Sets the value of the specified mapped property of the specified bean, with no type conversions.
static void
setMappedProperty(Object bean, String name, String key, Object value)
Sets the value of the specified mapped property of the specified bean, with no type conversions.
static void
setNestedProperty(Object bean, String name, 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(Object bean, String name, 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(Object bean, String name, Object value)
Set the value of the specified simple property of the specified bean, with no type conversions.

Field Details

INDEXED_DELIM

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.
Field Value:
'['

INDEXED_DELIM2

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.
Field Value:
']'

MAPPED_DELIM

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.
Field Value:
'('

MAPPED_DELIM2

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.
Field Value:
')'

NESTED_DELIM

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.
Field Value:
'.'

debug

private static int debug

Deprecated. The debug static property is no longer used

The debugging detail level for this component. Note that this static variable will have unexpected side-effects if this class is deployed in a shared classloader within a container. However as it is actually completely ignored by this class due to its deprecated status, it doesn't do any actual harm.

Method Details

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.


copyProperties

public static void copyProperties(Object dest,
                                  Object orig)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

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 PropertyUtilsBean.

Parameters:
bean - Bean whose properties are to be extracted
Returns:
The set of properties for the bean

getDebug

public static int getDebug()

Deprecated. The debug static property is no longer used

The debug static property is no longer used
Returns:
debug property

getIndexedProperty

public static Object getIndexedProperty(Object bean,
                                        String name)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getIndexedProperty

public static Object getIndexedProperty(Object bean,
                                        String name,
                                        int index)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getMappedProperty

public static Object getMappedProperty(Object bean,
                                       String name)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getMappedProperty

public static Object getMappedProperty(Object bean,
                                       String name,
                                       String key)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getMappedPropertyDescriptors

public static FastHashMap getMappedPropertyDescriptors(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

getMappedPropertyDescriptors

public static FastHashMap getMappedPropertyDescriptors(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

getNestedProperty

public static Object 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, 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

getProperty

public static Object 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, 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

getPropertyDescriptor

public static PropertyDescriptor getPropertyDescriptor(Object bean,
                                                       String name)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getPropertyDescriptors

public static PropertyDescriptor[] getPropertyDescriptors(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

getPropertyDescriptors

public static PropertyDescriptor[] getPropertyDescriptors(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

getPropertyEditorClass

public static Class getPropertyEditorClass(Object bean,
                                           String name)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getPropertyType

public static Class getPropertyType(Object bean,
                                    String name)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getReadMethod

public static Method getReadMethod(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

getSimpleProperty

public static Object getSimpleProperty(Object bean,
                                       String name)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

getWriteMethod

public static Method getWriteMethod(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

isReadable

public static boolean isReadable(Object bean,
                                 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.

Returns:
true if the property is readable, otherwise false
Since:
BeanUtils 1.6

isWriteable

public static boolean isWriteable(Object bean,
                                  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.

Returns:
true if the property is writeable, otherwise false
Since:
BeanUtils 1.6

setDebug

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

setIndexedProperty

public static void setIndexedProperty(Object bean,
                                      String name,
                                      Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

setIndexedProperty

public static void setIndexedProperty(Object bean,
                                      String name,
                                      int index,
                                      Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

setMappedProperty

public static void setMappedProperty(Object bean,
                                     String name,
                                     Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

setMappedProperty

public static void setMappedProperty(Object bean,
                                     String name,
                                     String key,
                                     Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

setNestedProperty

public static void setNestedProperty(Object bean,
                                     String name,
                                     Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

setProperty

public static void setProperty(Object bean,
                               String name,
                               Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

setSimpleProperty

public static void setSimpleProperty(Object bean,
                                     String name,
                                     Object value)
            throws IllegalAccessException,
                   InvocationTargetException,
                   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

Copyright (c) 2001-2007 - Apache Software Foundation