org.apache.commons.beanutils
クラス 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. Much of this code was originally included in BeanUtils, but has been separated because of the volume of code involved.

In general, the objects that are examined and modified using these methods are expected to conform to the property getter and setter method naming conventions described in the JavaBeans Specification (Version 1.0.1). No data type conversions are performed, and there are no usage of any PropertyEditor classes that have been registered, although a convenient way to access the registered classes themselves is included.

For the purposes of this class, five formats for referencing a particular property value of a bean are defined, with the layout of an identifying String in parentheses:

バージョン:
$Revision: 1.15 $ $Date: 2001/12/15 19:19:24 $
作成者:
Craig R. McClanahan, Ralph Schaer, Chris Audley, Rey Fran?is, Gregor Ra?an, Jan Sorensen

フィールドの概要
private static int debug
          The debugging detail level for this component.
private static org.apache.commons.collections.FastHashMap descriptorsCache
          The cache of PropertyDescriptor arrays for beans we have already introspected, keyed by the java.lang.Class of this object.
static char INDEXED_DELIM
          The delimiter that preceeds the zero-relative subscript for an indexed reference.
static char INDEXED_DELIM2
          The delimiter that follows the zero-relative subscript for an indexed reference.
static char MAPPED_DELIM
          The delimiter that preceeds the key of a mapped property.
static char MAPPED_DELIM2
          The delimiter that follows the key of a mapped property.
private static org.apache.commons.collections.FastHashMap mappedDescriptorsCache
           
static char NESTED_DELIM
          The delimiter that separates the components of a nested reference.
 
コンストラクタの概要
PropertyUtils()
           
 
メソッドの概要
(パッケージプライベート) static void ()
           
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 describe(java.lang.Object bean)
          Return the entire set of properties for which the specified bean provides a read method.
static int getDebug()
           
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.Object bean)
          Return the mapped property descriptors for this bean.
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.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 void setDebug(int newDebug)
           
static void setIndexedProperty(java.lang.Object bean, java.lang.String name, int index, java.lang.Object value)
          Set 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)
          Set 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)
          Set 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)
          Set 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)
          Set 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.
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, registerNatives, toString, wait, wait, wait
 

フィールドの詳細

INDEXED_DELIM

public static final char INDEXED_DELIM
The delimiter that preceeds the zero-relative subscript for an indexed reference.

INDEXED_DELIM2

public static final char INDEXED_DELIM2
The delimiter that follows the zero-relative subscript for an indexed reference.

MAPPED_DELIM

public static final char MAPPED_DELIM
The delimiter that preceeds the key of a mapped property.

MAPPED_DELIM2

public static final char MAPPED_DELIM2
The delimiter that follows the key of a mapped property.

NESTED_DELIM

public static final char NESTED_DELIM
The delimiter that separates the components of a nested reference.

debug

private static int debug
The debugging detail level for this component.

descriptorsCache

private static org.apache.commons.collections.FastHashMap descriptorsCache
The cache of PropertyDescriptor arrays for beans we have already introspected, keyed by the java.lang.Class of this object.

mappedDescriptorsCache

private static org.apache.commons.collections.FastHashMap mappedDescriptorsCache
コンストラクタの詳細

PropertyUtils

public PropertyUtils()
メソッドの詳細

getDebug

public static int getDebug()

setDebug

public static void setDebug(int newDebug)

static void ()

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.

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). No conversions are performed on the actual property values -- it is assumed that the values retrieved from the origin bean are assignment-compatible with the types expected by the destination bean.
パラメータ:
dest - Destination bean whose properties are modified
orig - Origin bean whose properties are retrieved
例外:
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

describe

public static java.util.Map 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. This map contains the unconverted property values for all properties for which a read method is provided (i.e. where the getReadMethod() returns non-null).
パラメータ:
bean - Bean whose properties are to be extracted
例外:
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

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. The zero-relative index of the required value must be included (in square brackets) as a suffix to the property name, or IllegalArgumentException will be thrown.
パラメータ:
bean - Bean whose property is to be extracted
name - propertyname[index] of the property value to be extracted
例外:
java.lang.ArrayIndexOutOfBoundsException - if the specified index is outside the valid range for the underlying array
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

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.
パラメータ:
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
例外:
java.lang.ArrayIndexOutOfBoundsException - if the specified index is outside the valid range for the underlying array
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

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. The key of the required value must be included (in brackets) as a suffix to the property name, or IllegalArgumentException will be thrown.
パラメータ:
bean - Bean whose property is to be extracted
name - propertyname(key) of the property value to be extracted
例外:
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

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.
パラメータ:
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
例外:
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

getMappedPropertyDescriptors

public static org.apache.commons.collections.FastHashMap getMappedPropertyDescriptors(java.lang.Object bean)
Return the mapped property descriptors for this bean.
パラメータ:
bean - Bean to be introspected

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.
パラメータ:
bean - Bean whose property is to be extracted
name - Possibly nested name of the property to be extracted
例外:
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

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.
パラメータ:
bean - Bean whose property is to be extracted
name - Possibly indexed and/or nested name of the property to be extracted
例外:
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

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. This method resolves indexed and nested property references in the same manner as other methods in this class, except that if the last (or only) name element is indexed, the descriptor for the last resolved property itself is returned.
パラメータ:
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
例外:
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

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.
パラメータ:
bean - Bean for which property descriptors are requested
例外:
java.lang.IllegalArgumentException - if bean is null

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). This method follows the same name resolution rules used by getPropertyDescriptor(), so if the last element of a name reference is indexed, the property editor for the underlying property's class is returned.

Note that null will be returned if there is no property, or if there is no registered property editor class. Because this return value is ambiguous, you should determine the existence of the property itself by other means.

パラメータ:
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
例外:
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

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. This method follows the same name resolution rules used by getPropertyDescriptor(), so if the last element of a name reference is indexed, the type of the property itself will be returned. If the last (or only) element has no property with the specified name, null is returned.
パラメータ:
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
例外:
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

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.
パラメータ:
descriptor - Property descriptor to return a getter for

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.
パラメータ:
bean - Bean whose property is to be extracted
name - Name of the property to be extracted
例外:
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

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.
パラメータ:
descriptor - Property descriptor to return a setter for

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
Set the value of the specified indexed property of the specified bean, with no type conversions. The zero-relative index of the required value must be included (in square brackets) as a suffix to the property name, or IllegalArgumentException will be thrown.
パラメータ:
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
例外:
java.lang.ArrayIndexOutOfBoundsException - if the specified index is outside the valid range for the underlying array
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

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
Set the value of the specified indexed property of the specified bean, with no type conversions.
パラメータ:
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
例外:
java.lang.ArrayIndexOutOfBoundsException - if the specified index is outside the valid range for the underlying array
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

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
Set the value of the specified mapped property of the specified bean, with no type conversions. The key of the value to set must be included (in brackets) as a suffix to the property name, or IllegalArgumentException will be thrown.
パラメータ:
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
例外:
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

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
Set the value of the specified mapped property of the specified bean, with no type conversions.
パラメータ:
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
例外:
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

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
Set the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions.
パラメータ:
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
例外:
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

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.
パラメータ:
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
例外:
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

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.
パラメータ:
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
例外:
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


Copyright (c) 2001 - Apache Software Foundation