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.commons.beanutils
Class DynaBeanMapDecorator

    java.lang.Object
      org.apache.commons.beanutils.DynaBeanMapDecorator

All Implemented Interfaces:
  Map

    public class DynaBeanMapDecorator

extends Object
implements Map

Decorates a `DynaBean` to provide `Map` behaviour.

The motivation for this implementation is to provide access to `DynaBean` properties in technologies that are unaware of BeanUtils and `DynaBean`s - such as the expression languages of JSTL and JSF.

This can be achieved either by wrapping the `DynaBean` prior to providing it to the technolody to process or by providing a `Map` accessor method on the DynaBean implementation:

             public Map getMap() {
                 return new DynaBeanMapDecorator(this);
             }

This, for example, could be used in JSTL in the following way to access a DynaBean's `fooProperty`:

- `${myDynaBean.map.fooProperty}`

### Usage

To decorate a `DynaBean` simply instantiate this class with the target `DynaBean`:

- `Map fooMap = new DynaBeanMapDecorator(fooDynaBean);`

The above example creates a read only `Map`. To create a `Map` which can be modified, construct a `DynaBeanMapDecorator` with the read only attribute set to `false`:

- `Map fooMap = new DynaBeanMapDecorator(fooDynaBean, false);`

### Limitations

In this implementation the `entrySet()`, `keySet()` and `values()` methods create an unmodifiable `Set` and it does not support the Map's `clear()` and `remove()` operations.

Since:
  BeanUtils 1.8.0
Version:
  $Revision: 546471 $ $Date: 2007-06-12 13:57:20 +0100 (Tue, 12 Jun 2007) $

Nested Class Summary

Nested classes/interfaces inherited from interface java.util.Map
`Map.Entry`

Constructor Summary
`DynaBeanMapDecorator(DynaBean dynaBean)` Constructs a read only Map for the specified `DynaBean`.
`DynaBeanMapDecorator(DynaBean dynaBean, boolean readOnly)` Construct a Map for the specified `DynaBean`.

Method Summary
`void` | `clear()` clear() operation is not supported.
`boolean` | `containsKey(Object key)` Indicate whether the `DynaBean` contains a specified value for one (or more) of its properties.
`boolean` | `containsValue(Object value)` Indicates whether the decorated `DynaBean` contains a specified value.
`Set` | `entrySet()` Returns the Set of the property/value mappings in the decorated `DynaBean`.
`Object` | `get(Object key)` Return the value for the specified key from the decorated `DynaBean`.
`DynaBean` | `getDynaBean()` Provide access to the underlying `DynaBean` this Map decorates.
`boolean` | `isEmpty()` Indicate whether the decorated `DynaBean` has any properties.
`boolean` | `isReadOnly()` Indicate whether the Map is read only.
`Set` | `keySet()` Returns the Set of the property names in the decorated `DynaBean`.
`Object` | `put(Object key, Object value)` Set the value for the specified property in the decorated `DynaBean`.
`void` | `putAll(Map map)` Copy the contents of a Map to the decorated `DynaBean`.
`Object` | `remove(Object key)` remove() operation is not supported.
`int` | `size()` Returns the number properties in the decorated `DynaBean`.
`Collection` | `values()` Returns the set of property values in the decorated `DynaBean`.

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

Methods inherited from interface java.util.Map
`equals, hashCode`

Constructor Detail

### DynaBeanMapDecorator

    public DynaBeanMapDecorator(DynaBean dynaBean)

  Constructs a read only Map for the specified `DynaBean`.

  Parameters:
    `dynaBean` - The dyna bean being decorated
  Throws:
    `IllegalArgumentException` - if the `DynaBean` is null.

### DynaBeanMapDecorator

    public DynaBeanMapDecorator(DynaBean dynaBean,
                                boolean readOnly)

  Construct a Map for the specified `DynaBean`.

  Parameters:
    `dynaBean` - The dyna bean being decorated
    `readOnly` - `true` if the Mpa is read only otherwise `false`
  Throws:
    `IllegalArgumentException` - if the `DynaBean` is null.

Method Detail

### isReadOnly

    public boolean isReadOnly()

  Indicate whether the Map is read only.

  Returns:
    `true` if the Map is read only, otherwise `false`.

### clear

    public void clear()

  clear() operation is not supported.

  Specified by:
    `clear` in interface `Map`
  Throws:
    `UnsupportedOperationException`

### containsKey

    public boolean containsKey(Object key)

  Indicate whether the `DynaBean` contains a specified value for one (or more) of its properties.

  Specified by:
    `containsKey` in interface `Map`
  Parameters:
    `key` - The `DynaBean`'s property name
  Returns:
    `true` if one of the `DynaBean`'s properties contains a specified value.

### containsValue

    public boolean containsValue(Object value)

  Indicates whether the decorated `DynaBean` contains a specified value.

  Specified by:
    `containsValue` in interface `Map`
  Parameters:
    `value` - The value to check for.
  Returns:
    `true` if one of the the `DynaBean`'s properties contains the specified value, otherwise `false`.

### entrySet

    public Set entrySet()

  Returns the Set of the property/value mappings in the decorated `DynaBean`.

  Each element in the Set is a `Map.Entry` type.

  Specified by:
    `entrySet` in interface `Map`
  Returns:
    An unmodifiable set of the DynaBean property name/value pairs

### get

    public Object get(Object key)

  Return the value for the specified key from the decorated `DynaBean`.

  Specified by:
    `get` in interface `Map`
  Parameters:
    `key` - The `DynaBean`'s property name
  Returns:
    The value for the specified property.

### isEmpty

    public boolean isEmpty()

  Indicate whether the decorated `DynaBean` has any properties.

  Specified by:
    `isEmpty` in interface `Map`
  Returns:
    `true` if the `DynaBean` has no properties, otherwise `false`.

### keySet

    public Set keySet()

  Returns the Set of the property names in the decorated `DynaBean`.

  N.B.For `DynaBean`s whose associated `DynaClass` is a `MutableDynaClass` a new Set is created every time, otherwise the Set is created only once and cached.

  Specified by:
    `keySet` in interface `Map`
  Returns:
    An unmodifiable set of the `DynaBean`s property names.

### put

    public Object put(Object key,
                      Object value)

  Set the value for the specified property in the decorated `DynaBean`.

  Specified by:
    `put` in interface `Map`
  Parameters:
    `key` - The `DynaBean`'s property name
    `value` - The value for the specified property.
  Returns:
    The previous property's value.
  Throws:
    `UnsupportedOperationException` - if `isReadOnly()` is true.

### putAll

    public void putAll(Map map)

  Copy the contents of a Map to the decorated `DynaBean`.

  Specified by:
    `putAll` in interface `Map`
  Parameters:
    `map` - The Map of values to copy.
  Throws:
    `UnsupportedOperationException` - if `isReadOnly()` is true.

### remove

    public Object remove(Object key)

  remove() operation is not supported.

  Specified by:
    `remove` in interface `Map`
  Parameters:
    `key` - The `DynaBean`'s property name
  Returns:
    the value removed
  Throws:
    `UnsupportedOperationException`

### size

    public int size()

  Returns the number properties in the decorated `DynaBean`.

  Specified by:
    `size` in interface `Map`
  Returns:
    The number of properties.

### values

    public Collection values()

  Returns the set of property values in the decorated `DynaBean`.

  Specified by:
    `values` in interface `Map`
  Returns:
    Unmodifiable collection of values.

### getDynaBean

    public DynaBean getDynaBean()

  Provide access to the underlying `DynaBean` this Map decorates.

  Returns:
    the decorated `DynaBean`.

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-2009 The Apache Software Foundation. All Rights Reserved.