| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.apache.commons.beanutils.PropertyUtilsBean
public class PropertyUtilsBean
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 default layout of an
 identifying String in parentheses. However the notation for these formats
 and how they are resolved is now (since BeanUtils 1.8.0) controlled by
 the configured Resolver implementation:
 
name) - The specified
     name identifies an individual property of a particular
     JavaBean.  The name of the actual getter or setter method to be used
     is determined using standard JavaBeans instrospection, so that (unless
     overridden by a BeanInfo class, a property named "xyz"
     will have a getter method named getXyz() or (for boolean
     properties only) isXyz(), and a setter method named
     setXyz().name1.name2.name3) The first
     name element is used to select a property getter, as for simple
     references above.  The object returned for this property is then
     consulted, using the same approach, for a property getter for a
     property named name2, and so on.  The property value that
     is ultimately retrieved or modified is the one identified by the
     last name element.name[index]) - The underlying
     property value is assumed to be an array, or this JavaBean is assumed
     to have indexed property getter and setter methods.  The appropriate
     (zero-relative) entry in the array is selected.  List
     objects are now also supported for read/write.  You simply need to define
     a getter that returns the Listname(key)) - The JavaBean
     is assumed to have an property getter and setter methods with an
     additional attribute of type java.lang.String.name1.name2[index].name3(key)) -
     Combining mapped, nested, and indexed references is also
     supported.
Resolver, 
PropertyUtils| Constructor Summary | |
|---|---|
| PropertyUtilsBean()Base constructor | |
| Method Summary | |
|---|---|
|  void | clearDescriptors()Clear any cached property descriptors information for all classes loaded by any class loaders. | 
|  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 BeanInfoclasses). | 
|  Map | describe(Object bean)Return the entire set of properties for which the specified bean provides a read method. | 
|  Object | getIndexedProperty(Object bean,
                                     String name)Return the value of the specified indexed property of the specified bean, with no type conversions. | 
|  Object | getIndexedProperty(Object bean,
                                     String name,
                                     int index)Return the value of the specified indexed property of the specified bean, with no type conversions. | 
| protected static PropertyUtilsBean | getInstance()Return the PropertyUtils bean instance. | 
|  Object | getMappedProperty(Object bean,
                                   String name)Return the value of the specified mapped property of the specified bean, with no type conversions. | 
|  Object | getMappedProperty(Object bean,
                                   String name,
                                   String key)Return the value of the specified mapped property of the specified bean, with no type conversions. | 
|  FastHashMap | getMappedPropertyDescriptors(Class beanClass)Deprecated. This method should not be exposed | 
|  FastHashMap | getMappedPropertyDescriptors(Object bean)Deprecated. This method should not be exposed | 
|  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. | 
|  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. | 
|  PropertyDescriptor | getPropertyDescriptor(Object bean,
                                           String name)Retrieve the property descriptor for the specified property of the specified bean, or return nullif there is no such
 descriptor. | 
|  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. | 
|  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. | 
|  Class | getPropertyEditorClass(Object bean,
                                             String name)Return the Java Class repesenting the property editor class that has been registered for this property (if any). | 
| protected  Object | getPropertyOfMapBean(Map bean,
                                         String propertyName)This method is called by getNestedProperty and setNestedProperty to define what it means to get a property from an object which implements Map. | 
|  Class | getPropertyType(Object bean,
                               String name)Return the Java Class representing the property type of the specified property, or nullif there is no such property for the
 specified bean. | 
|  Method | getReadMethod(PropertyDescriptor descriptor)Return an accessible property getter method for this property, if there is one; otherwise return null. | 
|  Resolver | getResolver()Return the configured Resolverimplementation used by BeanUtils. | 
|  Object | getSimpleProperty(Object bean,
                                   String name)Return the value of the specified simple property of the specified bean, with no type conversions. | 
|  Method | getWriteMethod(PropertyDescriptor descriptor)Return an accessible property setter method for this property, if there is one; otherwise return null. | 
|  boolean | isReadable(Object bean,
                     String name)Return trueif the specified property name identifies
 a readable property on the specified bean; otherwise, returnfalse. | 
|  boolean | isWriteable(Object bean,
                       String name)Return trueif the specified property name identifies
 a writeable property on the specified bean; otherwise, returnfalse. | 
|  void | setIndexedProperty(Object bean,
                                     String name,
                                     int index,
                                     Object value)Set the value of the specified indexed property of the specified bean, with no type conversions. | 
|  void | setIndexedProperty(Object bean,
                                     String name,
                                     Object value)Set the value of the specified indexed property of the specified bean, with no type conversions. | 
|  void | setMappedProperty(Object bean,
                                   String name,
                                   Object value)Set the value of the specified mapped property of the specified bean, with no type conversions. | 
|  void | setMappedProperty(Object bean,
                                   String name,
                                   String key,
                                   Object value)Set the value of the specified mapped property of the specified bean, with no type conversions. | 
|  void | setNestedProperty(Object bean,
                                   String name,
                                   Object value)Set the value of the (possibly nested) property of the specified name, for the specified bean, with no type conversions. | 
|  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. | 
| protected  void | setPropertyOfMapBean(Map bean,
                                         String propertyName,
                                         Object value)This method is called by method setNestedProperty when the current bean is found to be a Map object, and defines how to deal with setting a property on a Map. | 
|  void | setResolver(Resolver resolver)Configure the Resolverimplementation used by BeanUtils. | 
|  void | setSimpleProperty(Object bean,
                                   String name,
                                   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 | 
| Constructor Detail | 
|---|
public PropertyUtilsBean()
| Method Detail | 
|---|
protected static PropertyUtilsBean getInstance()
public Resolver getResolver()
Resolver implementation used by BeanUtils.
 
 The Resolver handles the property name
 expressions and the implementation in use effectively
 controls the dialect of the expression language
 that BeanUtils recongnises.
 
 DefaultResolver is the default implementation used.
public void setResolver(Resolver resolver)
Resolver implementation used by BeanUtils.
 
 The Resolver handles the property name
 expressions and the implementation in use effectively
 controls the dialect of the expression language
 that BeanUtils recongnises.
 
 DefaultResolver is the default implementation used.
resolver - The property expression resolver.public void clearDescriptors()
public 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).  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.
If the origin "bean" is actually a Map, it is assumed
 to contain String-valued simple property names as the keys, pointing
 at the corresponding property values that will be set in the destination
 bean.Note that this method is intended to perform 
 a "shallow copy" of the properties and so complex properties 
 (for example, nested ones) will not be copied.
Note, that this method will not copy a List to a List, or an Object[] to an Object[]. It's specifically for copying JavaBean properties.
dest - Destination bean whose properties are modifiedorig - Origin bean whose properties are retrieved
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if the dest or
  orig argument is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public Map describe(Object bean)
             throws IllegalAccessException,
                    InvocationTargetException,
                    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).
FIXME - Does not account for mapped properties.
bean - Bean whose properties are to be extracted
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public Object getIndexedProperty(Object bean,
                                 String name)
                          throws IllegalAccessException,
                                 InvocationTargetException,
                                 NoSuchMethodException
IllegalArgumentException will be
 thrown.  In addition to supporting the JavaBeans specification, this
 method has been extended to support List objects as well.
bean - Bean whose property is to be extractedname - propertyname[index] of the property value
  to be extracted
IndexOutOfBoundsException - if the specified index
  is outside the valid range for the underlying array or List
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public Object getIndexedProperty(Object bean,
                                 String name,
                                 int index)
                          throws IllegalAccessException,
                                 InvocationTargetException,
                                 NoSuchMethodException
List objects as well.
bean - Bean whose property is to be extractedname - Simple property name of the property value to be extractedindex - Index of the property value to be extracted
IndexOutOfBoundsException - if the specified index
  is outside the valid range for the underlying property
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public Object getMappedProperty(Object bean,
                                String name)
                         throws IllegalAccessException,
                                InvocationTargetException,
                                NoSuchMethodException
IllegalArgumentException will be
 thrown.
bean - Bean whose property is to be extractedname - propertyname(key) of the property value
  to be extracted
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
  propety cannot be found
public Object getMappedProperty(Object bean,
                                String name,
                                String key)
                         throws IllegalAccessException,
                                InvocationTargetException,
                                NoSuchMethodException
bean - Bean whose property is to be extractedname - Mapped property name of the property value to be extractedkey - Key of the property value to be extracted
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
  propety cannot be foundpublic FastHashMap getMappedPropertyDescriptors(Class beanClass)
Return the mapped property descriptors for this bean class.
FIXME - Does not work with DynaBeans.
beanClass - Bean class to be introspected
public FastHashMap getMappedPropertyDescriptors(Object bean)
Return the mapped property descriptors for this bean.
FIXME - Does not work with DynaBeans.
bean - Bean to be introspected
public Object getNestedProperty(Object bean,
                                String name)
                         throws IllegalAccessException,
                                InvocationTargetException,
                                NoSuchMethodException
bean - Bean whose property is to be extractedname - Possibly nested name of the property to be extracted
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
NestedNullException - 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
  propety cannot be found
protected Object getPropertyOfMapBean(Map bean,
                                      String propertyName)
                               throws IllegalArgumentException,
                                      IllegalAccessException,
                                      InvocationTargetException,
                                      NoSuchMethodException
bean - Map beanpropertyName - The property name
IllegalArgumentException - when the propertyName is regarded as
 being invalid.
IllegalAccessException - just in case subclasses override this
 method to try to access real getter methods and find permission is denied.
InvocationTargetException - just in case subclasses override this
 method to try to access real getter methods, and find it throws an
 exception when invoked.
NoSuchMethodException - just in case subclasses override this
 method to try to access real getter methods, and want to fail if
 no simple method is available.
public Object getProperty(Object bean,
                          String name)
                   throws IllegalAccessException,
                          InvocationTargetException,
                          NoSuchMethodException
bean - Bean whose property is to be extractedname - Possibly indexed and/or nested name of the property
  to be extracted
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public 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.  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.
FIXME - Does not work with DynaBeans.
bean - Bean for which a property descriptor is requestedname - Possibly indexed and/or nested name of the property for
  which a property descriptor is requested
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
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
  propety cannot be foundpublic 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.
FIXME - Does not work with DynaBeans.
beanClass - Bean class for which property descriptors are requested
IllegalArgumentException - if beanClass is nullpublic 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.
FIXME - Does not work with DynaBeans.
bean - Bean for which property descriptors are requested
IllegalArgumentException - if bean is null
public 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).  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.
FIXME - Does not work with DynaBeans.
bean - Bean for which a property descriptor is requestedname - Possibly indexed and/or nested name of the property for
  which a property descriptor is requested
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
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
  propety cannot be found
public Class getPropertyType(Object bean,
                             String name)
                      throws IllegalAccessException,
                             InvocationTargetException,
                             NoSuchMethodException
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 requestedname - Possibly indexed and/or nested name of the property for
  which a property descriptor is requested
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
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
  propety cannot be foundpublic Method getReadMethod(PropertyDescriptor descriptor)
Return an accessible property getter method for this property,
 if there is one; otherwise return null.
FIXME - Does not work with DynaBeans.
descriptor - Property descriptor to return a getter for
public Object getSimpleProperty(Object bean,
                                String name)
                         throws IllegalAccessException,
                                InvocationTargetException,
                                NoSuchMethodException
bean - Bean whose property is to be extractedname - Name of the property to be extracted
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
IllegalArgumentException - if the property name
  is nested or indexed
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be foundpublic Method getWriteMethod(PropertyDescriptor descriptor)
Return an accessible property setter method for this property,
 if there is one; otherwise return null.
FIXME - Does not work with DynaBeans.
descriptor - Property descriptor to return a setter for
public boolean isReadable(Object bean,
                          String name)
Return true if the specified property name identifies
 a readable property on the specified bean; otherwise, return
 false.
bean - Bean to be examined (may be a DynaBeanname - Property name to be evaluated
true if the property is readable,
 otherwise false
IllegalArgumentException - if bean
  or name is null
public boolean isWriteable(Object bean,
                           String name)
Return true if the specified property name identifies
 a writeable property on the specified bean; otherwise, return
 false.
bean - Bean to be examined (may be a DynaBeanname - Property name to be evaluated
true if the property is writeable,
 otherwise false
IllegalArgumentException - if bean
  or name is null
public void setIndexedProperty(Object bean,
                               String name,
                               Object value)
                        throws IllegalAccessException,
                               InvocationTargetException,
                               NoSuchMethodException
IllegalArgumentException will be
 thrown.  In addition to supporting the JavaBeans specification, this
 method has been extended to support List objects as well.
bean - Bean whose property is to be modifiedname - propertyname[index] of the property value
  to be modifiedvalue - Value to which the specified property element
  should be set
IndexOutOfBoundsException - if the specified index
  is outside the valid range for the underlying property
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public void setIndexedProperty(Object bean,
                               String name,
                               int index,
                               Object value)
                        throws IllegalAccessException,
                               InvocationTargetException,
                               NoSuchMethodException
List objects as well.
bean - Bean whose property is to be setname - Simple property name of the property value to be setindex - Index of the property value to be setvalue - Value to which the indexed property element is to be set
IndexOutOfBoundsException - if the specified index
  is outside the valid range for the underlying property
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public void setMappedProperty(Object bean,
                              String name,
                              Object value)
                       throws IllegalAccessException,
                              InvocationTargetException,
                              NoSuchMethodException
IllegalArgumentException will be
 thrown.
bean - Bean whose property is to be setname - propertyname(key) of the property value
  to be setvalue - The property value to be set
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
  propety cannot be found
public void setMappedProperty(Object bean,
                              String name,
                              String key,
                              Object value)
                       throws IllegalAccessException,
                              InvocationTargetException,
                              NoSuchMethodException
bean - Bean whose property is to be setname - Mapped property name of the property value to be setkey - Key of the property value to be setvalue - The property value to be set
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
  propety cannot be found
public void setNestedProperty(Object bean,
                              String name,
                              Object value)
                       throws IllegalAccessException,
                              InvocationTargetException,
                              NoSuchMethodException
Example values for parameter "name" are:
bean - Bean whose property is to be modifiedname - Possibly nested name of the property to be modifiedvalue - Value to which the property is to be set
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
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
  propety cannot be found
protected void setPropertyOfMapBean(Map bean,
                                    String propertyName,
                                    Object value)
                             throws IllegalArgumentException,
                                    IllegalAccessException,
                                    InvocationTargetException,
                                    NoSuchMethodException
The standard implementation here is to:
The default behaviour of beanutils 1.7.1 or later is for assigning to "a.b" to mean a.put(b, obj) always. However the behaviour of beanutils version 1.6.0, 1.6.1, 1.7.0 was for "a.b" to mean a.setB(obj) if such a method existed, and a.put(b, obj) otherwise. In version 1.5 it meant a.put(b, obj) always (ie the same as the behaviour in the current version). In versions prior to 1.5 it meant a.setB(obj) always. [yes, this is all very unfortunate]
Users who would like to customise the meaning of "a.b" in method setNestedProperty when a is a Map can create a custom subclass of this class and override this method to implement the behaviour of their choice, such as restoring the pre-1.4 behaviour of this class if they wish. When overriding this method, do not forget to deal with MAPPED_DELIM and INDEXED_DELIM characters in the propertyName.
Note, however, that the recommended solution for objects that implement Map but want their simple properties to come first is for those objects to override their get/put methods to implement that behaviour, and not to solve the problem by modifying the default behaviour of the PropertyUtilsBean class by overriding this method.
bean - Map beanpropertyName - The property namevalue - the property value
IllegalArgumentException - when the propertyName is regarded as
 being invalid.
IllegalAccessException - just in case subclasses override this
 method to try to access real setter methods and find permission is denied.
InvocationTargetException - just in case subclasses override this
 method to try to access real setter methods, and find it throws an
 exception when invoked.
NoSuchMethodException - just in case subclasses override this
 method to try to access real setter methods, and want to fail if
 no simple method is available.
public void setProperty(Object bean,
                        String name,
                        Object value)
                 throws IllegalAccessException,
                        InvocationTargetException,
                        NoSuchMethodException
bean - Bean whose property is to be modifiedname - Possibly indexed and/or nested name of the property
  to be modifiedvalue - Value to which this property is to be set
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found
public void setSimpleProperty(Object bean,
                              String name,
                              Object value)
                       throws IllegalAccessException,
                              InvocationTargetException,
                              NoSuchMethodException
bean - Bean whose property is to be modifiedname - Name of the property to be modifiedvalue - Value to which the property should be set
IllegalAccessException - if the caller does not have
  access to the property accessor method
IllegalArgumentException - if bean or
  name is null
IllegalArgumentException - if the property name is
  nested or indexed
InvocationTargetException - if the property accessor method
  throws an exception
NoSuchMethodException - if an accessor method for this
  propety cannot be found| 
 | ||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||