Package org.apache.commons.beanutils
Class BasicDynaClass
java.lang.Object
org.apache.commons.beanutils.BasicDynaClass
- All Implemented Interfaces:
Serializable
,DynaClass
- Direct Known Subclasses:
LazyDynaClass
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:
- $Id$
- See Also:
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected Constructor
<?> The constructor of thedynaBeanClass
that we will use for creating new instances.protected static Class<?>[]
The method signature of the constructor we will use to create new DynaBean instances.protected Object[]
The argument values to be passed to the constructore we will use to create new DynaBean instances.protected Class
<?> TheDynaBean
implementation class we will use for creating new instances.protected String
The "name" of this DynaBean class.protected DynaProperty[]
The set of dynamic properties that are part of this DynaClass.protected HashMap
<String, DynaProperty> The set of dynamic properties that are part of this DynaClass, keyed by the property name. -
Constructor Summary
ConstructorsConstructorDescriptionConstruct 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
Modifier and TypeMethodDescriptionClass
<?> Return the Class object we will use to create new instances in thenewInstance()
method.Return an array ofProperyDescriptors
for the properties currently defined in this DynaClass.getDynaProperty
(String name) Return a property descriptor for the specified property, if it exists; otherwise, returnnull
.getName()
Return the name of this DynaClass (analogous to thegetName()
method ofjava.lang.Classinvalid input: '<'/code), which allows the same
DynaClass
implementation class to support different dynamic classes, with different sets of properties.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 thenewInstance()
method.protected void
setProperties
(DynaProperty[] properties) Set the list of dynamic properties supported by this DynaClass.
-
Field Details
-
constructor
The constructor of thedynaBeanClass
that we will use for creating new instances. -
constructorTypes
The method signature of the constructor we will use to create new DynaBean instances. -
constructorValues
The argument values to be passed to the constructore we will use to create new DynaBean instances. -
dynaBeanClass
TheDynaBean
implementation class we will use for creating new instances. -
name
The "name" of this DynaBean class. -
properties
The set of dynamic properties that are part of this DynaClass. -
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 theproperties
list.
-
-
Constructor Details
-
BasicDynaClass
public BasicDynaClass()Construct a new BasicDynaClass with default parameters. -
BasicDynaClass
Construct a new BasicDynaClass with the specified parameters.- Parameters:
name
- Name of this DynaBean classdynaBeanClass
- The implementation class for new instances
-
BasicDynaClass
Construct a new BasicDynaClass with the specified parameters.- Parameters:
name
- Name of this DynaBean classdynaBeanClass
- The implementation class for new intancesproperties
- Property descriptors for the supported properties
-
-
Method Details
-
getName
Return the name of this DynaClass (analogous to thegetName()
method ofjava.lang.Classinvalid input: '<'/code), which allows the same
DynaClass
implementation class to support different dynamic classes, with different sets of properties. -
getDynaProperty
Return a property descriptor for the specified property, if it exists; otherwise, returnnull
.- Specified by:
getDynaProperty
in interfaceDynaClass
- 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
-
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?- Specified by:
getDynaProperties
in interfaceDynaClass
- Returns:
- the set of properties for this DynaClass
-
newInstance
Instantiate and return a new DynaBean instance, associated with this DynaClass.- Specified by:
newInstance
in interfaceDynaClass
- Returns:
- A new
DynaBean
instance - Throws:
IllegalAccessException
- if the Class or the appropriate constructor is not accessibleInstantiationException
- if this Class represents an abstract class, an array class, a primitive type, or void; or if instantiation fails for some other reason
-
getDynaBeanClass
Return the Class object we will use to create new instances in thenewInstance()
method. This Class MUST implement theDynaBean
interface.- Returns:
- The class of the
DynaBean
-
setDynaBeanClass
Set the Class object we will use to create new instances in thenewInstance()
method. This Class MUST implement theDynaBean
interface.- Parameters:
dynaBeanClass
- The new Class object- Throws:
IllegalArgumentException
- if the specified Class does not implement theDynaBean
interface
-
setProperties
Set the list of dynamic properties supported by this DynaClass.- Parameters:
properties
- List of dynamic properties to be supported
-