public class

BasicDynaClass

extends Object
implements Serializable DynaClass
java.lang.Object
   ↳ org.apache.commons.beanutils.BasicDynaClass
Known Direct Subclasses

Class Overview

Minimal implementation of the DynaClass interface. Can be used as a convenience base class for more sophisticated implementations.

*

IMPLEMENTATION NOTE - The DynaBean implementation class supplied to our constructor MUST have a one-argument constructor of its own that accepts a DynaClass. This is used to associate the DynaBean instance with this DynaClass.

Summary

Fields
protected Constructor constructor The constructor of the dynaBeanClass that we will use for creating new instances.
protected static Class[] constructorTypes The method signature of the constructor we will use to create new DynaBean instances.
protected Object[] constructorValues The argument values to be passed to the constructore we will use to create new DynaBean instances.
protected Class dynaBeanClass The DynaBean implementation class we will use for creating new instances.
protected String name The "name" of this DynaBean class.
protected DynaProperty[] properties The set of dynamic properties that are part of this DynaClass.
protected HashMap propertiesMap The set of dynamic properties that are part of this DynaClass, keyed by the property name.
Public Constructors
BasicDynaClass()
Construct a new BasicDynaClass with default parameters.
BasicDynaClass(String name, Class dynaBeanClass)
Construct a new BasicDynaClass with the specified parameters.
BasicDynaClass(String name, Class dynaBeanClass, DynaProperty[] properties)
Construct a new BasicDynaClass with the specified parameters.
Public Methods
Class getDynaBeanClass()
Return the Class object we will use to create new instances in the newInstance() method.
DynaProperty[] getDynaProperties()

Return an array of ProperyDescriptors for the properties currently defined in this DynaClass.

DynaProperty getDynaProperty(String name)
Return a property descriptor for the specified property, if it exists; otherwise, return null.
String getName()
Return the name of this DynaClass (analogous to the getName() method of java.lang.ClassDynaClass implementation class to support different dynamic classes, with different sets of properties.
DynaBean newInstance()
Instantiate and return a new DynaBean instance, associated with this DynaClass.
Protected Methods
void setDynaBeanClass(Class dynaBeanClass)
Set the Class object we will use to create new instances in the newInstance() method.
void setProperties(DynaProperty[] properties)
Set the list of dynamic properties supported by this DynaClass.
[Expand]
Inherited Methods
From class java.lang.Object
From interface org.apache.commons.beanutils.DynaClass

Fields

protected Constructor constructor

The constructor of the dynaBeanClass that we will use for creating new instances.

protected static Class[] constructorTypes

The method signature of the constructor we will use to create new DynaBean instances.

protected Object[] constructorValues

The argument values to be passed to the constructore we will use to create new DynaBean instances.

protected Class dynaBeanClass

The DynaBean implementation class we will use for creating new instances.

protected String name

The "name" of this DynaBean class.

protected DynaProperty[] properties

The set of dynamic properties that are part of this DynaClass.

protected HashMap propertiesMap

The set of dynamic properties that are part of this DynaClass, keyed by the property name. Individual descriptor instances will be the same instances as those in the properties list.

Public Constructors

public BasicDynaClass ()

Construct a new BasicDynaClass with default parameters.

public BasicDynaClass (String name, Class dynaBeanClass)

Construct a new BasicDynaClass with the specified parameters.

Parameters
name Name of this DynaBean class
dynaBeanClass The implementation class for new instances

public BasicDynaClass (String name, Class dynaBeanClass, DynaProperty[] properties)

Construct a new BasicDynaClass with the specified parameters.

Parameters
name Name of this DynaBean class
dynaBeanClass The implementation class for new intances
properties Property descriptors for the supported properties

Public Methods

public Class getDynaBeanClass ()

Return the Class object we will use to create new instances in the newInstance() method. This Class MUST implement the DynaBean interface.

Returns

public DynaProperty[] getDynaProperties ()

Return an array of ProperyDescriptors for the properties currently defined in this DynaClass. If no properties are defined, a zero-length array will be returned.

FIXME - Should we really be implementing getBeanInfo() instead, which returns property descriptors and a bunch of other stuff?

Returns
  • the set of properties for this DynaClass

public DynaProperty getDynaProperty (String name)

Return a property descriptor for the specified property, if it exists; otherwise, return null.

Parameters
name Name of the dynamic property for which a descriptor is requested
Returns
  • The descriptor for the specified property
Throws
IllegalArgumentException if no property name is specified

public String getName ()

Return the name of this DynaClass (analogous to the getName() method of java.lang.ClassDynaClass implementation class to support different dynamic classes, with different sets of properties.

Returns
  • the name of the DynaClass

public DynaBean newInstance ()

Instantiate and return a new DynaBean instance, associated with this DynaClass.

Returns
  • A new DynaBean instance
Throws
IllegalAccessException if the Class or the appropriate constructor is not accessible
InstantiationException if this Class represents an abstract class, an array class, a primitive type, or void; or if instantiation fails for some other reason

Protected Methods

protected void setDynaBeanClass (Class dynaBeanClass)

Set the Class object we will use to create new instances in the newInstance() method. This Class MUST implement the DynaBean interface.

Parameters
dynaBeanClass The new Class object
Throws
IllegalArgumentException if the specified Class does not implement the DynaBean interface

protected void setProperties (DynaProperty[] properties)

Set the list of dynamic properties supported by this DynaClass.

Parameters
properties List of dynamic properties to be supported