Package org.apache.commons.beanutils

## Interface DynaClass

All Known Subinterfaces:
  `MutableDynaClass`

All Known Implementing Classes:
  `BasicDynaClass`, `LazyDynaClass`, `LazyDynaMap`, `ResultSetDynaClass`, `RowSetDynaClass`, `WrapDynaClass`

    public interface DynaClass

A DynaClass is a simulation of the functionality of `java.lang.Class` for classes implementing the `DynaBean` interface. DynaBean instances that share the same DynaClass all have the same set of available properties, along with any associated data types, read-only states, and write-only states.

Version:
  $Id$

### Method Summary

All Methods Instance Methods Abstract Methods
`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.Class</code), which allows the same <code>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.

### Method Detail

#### getName

    java.lang.String getName()

Return the name of this DynaClass (analogous to the `getName()` method of `java.lang.Class</code), which allows the same <code>DynaClass` implementation class to support different dynamic classes, with different sets of properties.

Returns:
  the name of the DynaClass

#### getDynaProperty

    DynaProperty getDynaProperty​(java.lang.String name)

Return a property descriptor for the specified property, if it exists; otherwise, return `null`.

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

    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?

Returns:
  the set of properties for this DynaClass

#### newInstance

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

Instantiate and return a new DynaBean instance, associated with this 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