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 BasicDynaBean

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

All Implemented Interfaces:
  DynaBean, java.io.Serializable

public class BasicDynaBean
extends java.lang.Object
implements DynaBean, java.io.Serializable

Minimal implementation of the `DynaBean` interface. Can be used as a convenience base class for more sophisticated implementations.

IMPLEMENTATION NOTE - Instances of this class that are accessed from multiple threads simultaneously need to be synchronized.

IMPLEMENTATION NOTE - Instances of this class can be successfully serialized and deserialized ONLY if all property values are `Serializable`.

Version:
  $Revision: 555824 $ $Date: 2007-07-13 01:27:15 +0100 (Fri, 13 Jul 2007) $
Author:
  Craig McClanahan
See Also:
  Serialized Form

Field Summary
`protected DynaClass` | `dynaClass` The `DynaClass` "base class" that this DynaBean is associated with.
`protected java.util.HashMap` | `values` The set of property values for this DynaBean, keyed by property name.

Constructor Summary
`BasicDynaBean(DynaClass dynaClass)` Construct a new `DynaBean` associated with the specified `DynaClass` instance.

Method Summary
`boolean` | `contains(java.lang.String name, java.lang.String key)` Does the specified mapped property contain a value for the specified key value?
`java.lang.Object` | `get(java.lang.String name)` Return the value of a simple property with the specified name.
`java.lang.Object` | `get(java.lang.String name, int index)` Return the value of an indexed property with the specified name.
`java.lang.Object` | `get(java.lang.String name, java.lang.String key)` Return the value of a mapped property with the specified name, or `null` if there is no value for the specified key.
`DynaClass` | `getDynaClass()` Return the `DynaClass` instance that describes the set of properties available for this DynaBean.
`protected DynaProperty` | `getDynaProperty(java.lang.String name)` Return the property descriptor for the specified property name.
`java.util.Map` | `getMap()` Return a Map representation of this DynaBean.
`protected boolean` | `isAssignable(java.lang.Class dest, java.lang.Class source)` Is an object of the source class assignable to the destination class?
`void` | `remove(java.lang.String name, java.lang.String key)` Remove any existing value for the specified key on the specified mapped property.
`void` | `set(java.lang.String name, int index, java.lang.Object value)` Set the value of an indexed property with the specified name.
`void` | `set(java.lang.String name, java.lang.Object value)` Set the value of a simple property with the specified name.
`void` | `set(java.lang.String name, java.lang.String key, java.lang.Object value)` Set the value of a mapped property with the specified name.

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

Field Detail

### dynaClass

    protected DynaClass dynaClass

  The `DynaClass` "base class" that this DynaBean is associated with.

### values

    protected java.util.HashMap values

  The set of property values for this DynaBean, keyed by property name.

Constructor Detail

### BasicDynaBean

    public BasicDynaBean(DynaClass dynaClass)

  Construct a new `DynaBean` associated with the specified `DynaClass` instance.
  Parameters:
    `dynaClass` - The DynaClass we are associated with

Method Detail

### getMap

    public java.util.Map getMap()

  Return a Map representation of this DynaBean. This, for example, could be used in JSTL in the following way to access a DynaBean's `fooProperty`:
  - `${myDynaBean.map.fooProperty}`
  Returns:
    a Map representation of this DynaBean

### contains

    public boolean contains(java.lang.String name,
                            java.lang.String key)

  Does the specified mapped property contain a value for the specified key value?
  Specified by:
    `contains` in interface `DynaBean`
  Parameters:
    `name` - Name of the property to check
    `key` - Name of the key to check
  Returns:
    `true`if the mapped property contains a value for the specified key, otherwise `false```
  Throws:
    `java.lang.IllegalArgumentException` - if there is no property of the specified name

### get

    public java.lang.Object get(java.lang.String name)

  Return the value of a simple property with the specified name.
  Specified by:
    `get` in interface `DynaBean`
  Parameters:
    `name` - Name of the property whose value is to be retrieved
  Returns:
    The property's value
  Throws:
    `java.lang.IllegalArgumentException` - if there is no property of the specified name

### get

    public java.lang.Object get(java.lang.String name,
                                int index)

  Return the value of an indexed property with the specified name.
  Specified by:
    `get` in interface `DynaBean`
  Parameters:
    `name` - Name of the property whose value is to be retrieved
    `index` - Index of the value to be retrieved
  Returns:
    The indexed property's value
  Throws:
    `java.lang.IllegalArgumentException` - if there is no property of the specified name
    `java.lang.IllegalArgumentException` - if the specified property exists, but is not indexed
    `java.lang.IndexOutOfBoundsException` - if the specified index is outside the range of the underlying property
    `NullPointerException` - if no array or List has been initialized for this property

### get

    public java.lang.Object get(java.lang.String name,
                                java.lang.String key)

  Return the value of a mapped property with the specified name, or `null` if there is no value for the specified key.
  Specified by:
    `get` in interface `DynaBean`
  Parameters:
    `name` - Name of the property whose value is to be retrieved
    `key` - Key of the value to be retrieved
  Returns:
    The mapped property's value
  Throws:
    `java.lang.IllegalArgumentException` - if there is no property of the specified name
    `java.lang.IllegalArgumentException` - if the specified property exists, but is not mapped

### getDynaClass

    public DynaClass getDynaClass()

  Return the `DynaClass` instance that describes the set of properties available for this DynaBean.
  Specified by:
    `getDynaClass` in interface `DynaBean`
  Returns:
    The associated DynaClass

### remove

    public void remove(java.lang.String name,
                       java.lang.String key)

  Remove any existing value for the specified key on the specified mapped property.
  Specified by:
    `remove` in interface `DynaBean`
  Parameters:
    `name` - Name of the property for which a value is to be removed
    `key` - Key of the value to be removed
  Throws:
    `java.lang.IllegalArgumentException` - if there is no property of the specified name

### set

    public void set(java.lang.String name,
                    java.lang.Object value)

  Set the value of a simple property with the specified name.
  Specified by:
    `set` in interface `DynaBean`
  Parameters:
    `name` - Name of the property whose value is to be set
    `value` - Value to which this property is to be set
  Throws:
    `ConversionException` - if the specified value cannot be converted to the type required for this property
    `java.lang.IllegalArgumentException` - if there is no property of the specified name
    `NullPointerException` - if an attempt is made to set a primitive property to null

### set

    public void set(java.lang.String name,
                    int index,
                    java.lang.Object value)

  Set the value of an indexed property with the specified name.
  Specified by:
    `set` in interface `DynaBean`
  Parameters:
    `name` - Name of the property whose value is to be set
    `index` - Index of the property to be set
    `value` - Value to which this property is to be set
  Throws:
    `ConversionException` - if the specified value cannot be converted to the type required for this property
    `java.lang.IllegalArgumentException` - if there is no property of the specified name
    `java.lang.IllegalArgumentException` - if the specified property exists, but is not indexed
    `java.lang.IndexOutOfBoundsException` - if the specified index is outside the range of the underlying property

### set

    public void set(java.lang.String name,
                    java.lang.String key,
                    java.lang.Object value)

  Set the value of a mapped property with the specified name.
  Specified by:
    `set` in interface `DynaBean`
  Parameters:
    `name` - Name of the property whose value is to be set
    `key` - Key of the property to be set
    `value` - Value to which this property is to be set
  Throws:
    `ConversionException` - if the specified value cannot be converted to the type required for this property
    `java.lang.IllegalArgumentException` - if there is no property of the specified name
    `java.lang.IllegalArgumentException` - if the specified property exists, but is not mapped

### getDynaProperty

    protected DynaProperty getDynaProperty(java.lang.String name)

  Return the property descriptor for the specified property name.
  Parameters:
    `name` - Name of the property for which to retrieve the descriptor
  Returns:
    The property descriptor
  Throws:
    `java.lang.IllegalArgumentException` - if this is not a valid property name for our DynaClass

### isAssignable

    protected boolean isAssignable(java.lang.Class dest,
                                   java.lang.Class source)

  Is an object of the source class assignable to the destination class?
  Parameters:
    `dest` - Destination class
    `source` - Source class
  Returns:
    `true` if the source class is assignable to the destination class, otherwise `false`

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.