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.
Modifier and Type | Field and Description |
---|---|
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<String,DynaProperty> |
propertiesMap
The set of dynamic properties that are part of this DynaClass,
keyed by the property name.
|
Constructor and Description |
---|
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.
|
Modifier and Type | Method and Description |
---|---|
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.Class , which
allows the same DynaClass 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.
|
protected transient Constructor<?> constructor
dynaBeanClass
that we will use
for creating new instances.protected static Class<?>[] constructorTypes
protected Object[] constructorValues
protected Class<?> dynaBeanClass
DynaBean
implementation class we will use for
creating new instances.protected DynaProperty[] properties
protected HashMap<String,DynaProperty> propertiesMap
properties
list.public BasicDynaClass()
public BasicDynaClass(String name, Class<?> dynaBeanClass)
name
- Name of this DynaBean classdynaBeanClass
- The implementation class for new instancespublic BasicDynaClass(String name, Class<?> dynaBeanClass, DynaProperty[] properties)
name
- Name of this DynaBean classdynaBeanClass
- The implementation class for new intancesproperties
- Property descriptors for the supported propertiespublic String getName()
getName()
method of java.lang.Class
, which
allows the same DynaClass
implementation class to support
different dynamic classes, with different sets of properties.public DynaProperty getDynaProperty(String name)
null
.getDynaProperty
in interface DynaClass
name
- Name of the dynamic property for which a descriptor
is requestedIllegalArgumentException
- if no property name is specifiedpublic 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?
getDynaProperties
in interface DynaClass
public DynaBean newInstance() throws IllegalAccessException, InstantiationException
newInstance
in interface DynaClass
DynaBean
instanceIllegalAccessException
- 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 reasonpublic Class<?> getDynaBeanClass()
newInstance()
method. This Class MUST
implement the DynaBean
interface.DynaBean
protected void setDynaBeanClass(Class<?> dynaBeanClass)
newInstance()
method. This Class MUST
implement the DynaBean
interface.dynaBeanClass
- The new Class objectIllegalArgumentException
- if the specified Class does not
implement the DynaBean
interfaceprotected void setProperties(DynaProperty[] properties)
properties
- List of dynamic properties to be supportedCopyright © 2000–2016 The Apache Software Foundation. All rights reserved.