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

## org.apache.struts.action
Class DynaActionFormClass

    java.lang.Object
      |
      +--org.apache.struts.action.DynaActionFormClass

All Implemented Interfaces:
  org.apache.commons.beanutils.DynaClass, java.io.Serializable

public class DynaActionFormClass
extends java.lang.Object
implements org.apache.commons.beanutils.DynaClass, java.io.Serializable

Implementation of `DynaClass` for `DynaActionForm` classes that allow developers to define ActionForms without having to individually code all of the classes. NOTE - This class is only used in the internal implementation of dynamic action form beans. Applications never need to consult this documentation.

Since:
  Struts 1.1
Version:
  $Revision: 1.1 $ $Date: 2003/08/22 08:14:18 $
Author:
  Craig McClanahan
See Also:
  Serialized Form

Field Summary
`protected java.lang.Class` | `beanClass` The `DynaActionForm` implementation `Class` which we will use to create new bean instances.
`protected FormBeanConfig` | `config` The form bean configuration information for this class.
`protected static java.util.HashMap` | `dynaClasses` The set of `DynaActionFormClass` instances that have ever been created, keyed by the form bean name.
`protected static java.lang.String` | `lock` The lockable object we can synchronize on, even if dynaClasses is null,
`protected java.lang.String` | `name` The "dynamic class name" for this `DynaClass`.
`protected org.apache.commons.beanutils.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
`private` | `DynaActionFormClass(FormBeanConfig config)` Construct a new DynaActionFormClass for the specified form bean configuration.

Method Summary
`static void` | `clear()` Clear our cache of DynaActionFormClass instances.
`static DynaActionFormClass` | `createDynaActionFormClass(FormBeanConfig config)` Create (if necessary) and return a new `DynaActionFormClass` instance for the specified form bean configuration instance.
`protected java.lang.Class` | `getBeanClass()` Return the implementation class we are using to construct new instances, re-introspecting our `FormBeanConfig` if necessary (that is, after being deserialized, since `beanClass` is marked transient.
`org.apache.commons.beanutils.DynaProperty[]` | `getDynaProperties()` Return an array of `DynaProperty`s for the properties currently defined in this DynaClass.
`org.apache.commons.beanutils.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.
`protected void` | `introspect(FormBeanConfig config)` Introspect our form bean configuration to identify the supported properties.
`org.apache.commons.beanutils.DynaBean` | `newInstance()` Instantiate and return a new `DynaActionForm` instance, associated with this `DynaActionFormClass`.
`java.lang.String` | `toString()` Render a String representation of this object.

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

Field Detail

### beanClass

    protected transient java.lang.Class beanClass

  The `DynaActionForm` implementation `Class` which we will use to create new bean instances.

### config

    protected FormBeanConfig config

  The form bean configuration information for this class.

### name

    protected java.lang.String name

  The "dynamic class name" for this `DynaClass`.

### properties

    protected org.apache.commons.beanutils.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.

### dynaClasses

    protected static transient java.util.HashMap dynaClasses

  The set of `DynaActionFormClass` instances that have ever been created, keyed by the form bean name.

### lock

    protected static java.lang.String lock

  The lockable object we can synchronize on, even if dynaClasses is null,

Constructor Detail

### DynaActionFormClass

    private DynaActionFormClass(FormBeanConfig config)

  Construct a new DynaActionFormClass for the specified form bean configuration. This constructor is private; DynaActionFormClass instances will be created as needed via calls to the static `createDynaActionFormClass()` method.

Parameters:
  `config` - The FormBeanConfig instance describing the properties of the bean to be created
Throws:
  `java.lang.IllegalArgumentException` - if the bean implementation class specified in the configuration is not DynaActionForm (or a subclass of DynaActionForm)

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 `org.apache.commons.beanutils.DynaClass`

### getDynaProperty

    public org.apache.commons.beanutils.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 `org.apache.commons.beanutils.DynaClass`
  Parameters:
    `name` - Name of the dynamic property for which a descriptor is requested
  Throws:
    `java.lang.IllegalArgumentException` - if no property name is specified

### getDynaProperties

    public org.apache.commons.beanutils.DynaProperty[] getDynaProperties()

  Return an array of `DynaProperty`s 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 `org.apache.commons.beanutils.DynaClass`

### newInstance

    public org.apache.commons.beanutils.DynaBean newInstance()
                                                      throws java.lang.IllegalAccessException,
                                                             java.lang.InstantiationException

  Instantiate and return a new `DynaActionForm` instance, associated with this `DynaActionFormClass`. The properties of the returned `DynaActionForm` will have been initialized to the default values specified in the form bean configuration information.

  Specified by:
    `newInstance` in interface `org.apache.commons.beanutils.DynaClass`
  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

### toString

    public java.lang.String toString()

  Render a String representation of this object.

  Overrides:
    `toString` in class `java.lang.Object`

### clear

    public static void clear()

  Clear our cache of DynaActionFormClass instances.

### createDynaActionFormClass

    public static DynaActionFormClass createDynaActionFormClass(FormBeanConfig config)

  Create (if necessary) and return a new `DynaActionFormClass` instance for the specified form bean configuration instance.

  Parameters:
    `config` - The FormBeanConfig instance describing the properties of the bean to be created
  Throws:
    `java.lang.IllegalArgumentException` - if the bean implementation class specified in the configuration is not DynaActionForm (or a subclass of DynaActionForm)

### getBeanClass

    protected java.lang.Class getBeanClass()

  Return the implementation class we are using to construct new instances, re-introspecting our `FormBeanConfig` if necessary (that is, after being deserialized, since `beanClass` is marked transient.

### introspect

    protected void introspect(FormBeanConfig config)

  Introspect our form bean configuration to identify the supported properties.

  Parameters:
    `config` - The FormBeanConfig instance describing the properties of the bean to be created
  Throws:
    `java.lang.IllegalArgumentException` - if the bean implementation class specified in the configuration is not DynaActionForm (or a subclass of DynaActionForm)

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

Copyright © 2000-2003 - Apache Software Foundation