org.apache.commons.beanutils
public class BasicDynaClass extends Object implements DynaClass, Serializable
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.
Version: $Revision: 926529 $ $Date: 2010-03-23 11:44:24 +0000 (Tue, 23 Mar 2010) $
| Field Summary | |
|---|---|
| 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. |
| Constructor Summary | |
|---|---|
| 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.
| |
| Method Summary | |
|---|---|
| Class | getDynaBeanClass()
Return the Class object we will use to create new instances in the
newInstance() method. |
| DynaProperty[] | getDynaProperties() Return an array of |
| 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 void | setDynaBeanClass(Class dynaBeanClass)
Set the Class object we will use to create new instances in the
newInstance() method. |
| protected void | setProperties(DynaProperty[] properties)
Set the list of dynamic properties supported by this DynaClass.
|
dynaBeanClass that we will use
for creating new instances.DynaBean implementation class we will use for
creating new instances.properties list.Parameters: name Name of this DynaBean class dynaBeanClass The implementation class for new instances
Parameters: name Name of this DynaBean class dynaBeanClass The implementation class for new intances properties Property descriptors for the supported properties
newInstance() method. This Class MUST
implement the DynaBean interface.
Returns: The class of the DynaBean
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
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
getName() method of java.lang.ClassDynaClass implementation class to support
different dynamic classes, with different sets of properties.
Returns: the name of the 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
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
Parameters: properties List of dynamic properties to be supported