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.
- 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.Class
), which allows the sameDynaClass
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
-
constructorTypes
The method signature of the constructor we will use to create new DynaBean instances. -
constructor
The constructor of thedynaBeanClass
that we will use for creating new 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
-
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
-
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
-
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
-
getName
Return the name of this DynaClass (analogous to thegetName()
method ofjava.lang.Class
), which allows the sameDynaClass
implementation class to support different dynamic classes, with different sets of properties. -
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
-
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
-