Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.apache.commons.beanutils
Class BasicDynaClass

    java.lang.Object
      |
      +--org.apache.commons.beanutils.BasicDynaClass

All Implemented Interfaces:
  DynaClass, java.io.Serializable

Direct Known Subclasses:
  LazyDynaClass

public class BasicDynaClass
extends java.lang.Object
implements DynaClass, java.io.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: 556229 $ $Date: 2007-07-14 07:11:19 +0100 (Sat, 14 Jul 2007) $
Author:
  Craig McClanahan
See Also:
  Serialized Form

Field Summary
`protected java.lang.reflect.Constructor` | `constructor` The constructor of the `dynaBeanClass` that we will use for creating new instances.
`protected static java.lang.Class[]` | `constructorTypes` The method signature of the constructor we will use to create new DynaBean instances.
`protected java.lang.Object[]` | `constructorValues` The argument values to be passed to the constructore we will use to create new DynaBean instances.
`protected java.lang.Class` | `dynaBeanClass` The `DynaBean` implementation class we will use for creating new instances.
`protected java.lang.String` | `name` The "name" of this DynaBean class.
`protected DynaProperty[]` | `properties` The set of dynamic properties that are part of this DynaClass.
`protected java.util.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(java.lang.String name, java.lang.Class dynaBeanClass)` Construct a new BasicDynaClass with the specified parameters.
`BasicDynaClass(java.lang.String name, java.lang.Class dynaBeanClass, DynaProperty[] properties)` Construct a new BasicDynaClass with the specified parameters.

Method Summary
`java.lang.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(java.lang.String name)` Return a property descriptor for the specified property, if it exists; otherwise, return `null`.
`java.lang.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(java.lang.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.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### constructor

    protected transient java.lang.reflect.Constructor constructor

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

### constructorTypes

    protected static java.lang.Class[] constructorTypes

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

### constructorValues

    protected java.lang.Object[] constructorValues

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

### dynaBeanClass

    protected java.lang.Class dynaBeanClass

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

### name

    protected java.lang.String name

  The "name" of this DynaBean class.

### properties

    protected DynaProperty[] properties

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

### propertiesMap

    protected java.util.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.

Constructor Detail

### BasicDynaClass

    public BasicDynaClass()

  Construct a new BasicDynaClass with default parameters.

### BasicDynaClass

    public BasicDynaClass(java.lang.String name,
                          java.lang.Class dynaBeanClass)

  Construct a new BasicDynaClass with the specified parameters.
  Parameters:
    `name` - Name of this DynaBean class
    `dynaBeanClass` - The implementation class for new instances

### BasicDynaClass

    public BasicDynaClass(java.lang.String name,
                          java.lang.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

Method Detail

### getName

    public java.lang.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.
  Specified by:
    `getName` in interface `DynaClass`
  Returns:
    the name of the DynaClass

### getDynaProperty

    public DynaProperty getDynaProperty(java.lang.String name)

  Return a property descriptor for the specified property, if it exists; otherwise, return `null`.
  Specified by:
    `getDynaProperty` in interface `DynaClass`
  Parameters:
    `name` - Name of the dynamic property for which a descriptor is requested
  Returns:
    The descriptor for the specified property
  Throws:
    `java.lang.IllegalArgumentException` - if no property name is specified

### getDynaProperties

    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?

  Specified by:
    `getDynaProperties` in interface `DynaClass`
  Returns:
    the set of properties for this DynaClass

### newInstance

    public DynaBean newInstance()
                         throws java.lang.IllegalAccessException,
                                java.lang.InstantiationException

  Instantiate and return a new DynaBean instance, associated with this DynaClass.
  Specified by:
    `newInstance` in interface `DynaClass`
  Returns:
    A new `DynaBean` instance
  Throws:
    `java.lang.IllegalAccessException` - if the Class or the appropriate constructor is not accessible
    `java.lang.InstantiationException` - if this Class represents an abstract class, an array class, a primitive type, or void; or if instantiation fails for some other reason

### getDynaBeanClass

    public java.lang.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:
    The class of the `DynaBean`

### setDynaBeanClass

    protected void setDynaBeanClass(java.lang.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:
    `java.lang.IllegalArgumentException` - if the specified Class does not implement the `DynaBean` interface

### setProperties

    protected void setProperties(DynaProperty[] properties)

  Set the list of dynamic properties supported by this DynaClass.
  Parameters:
    `properties` - List of dynamic properties to be supported

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Copyright © 2000-2007 The Apache Software Foundation. All Rights Reserved.