org.apache.commons.beanutils

## Class DynaBeanMapDecorator

- java.lang.Object
- - org.apache.commons.beanutils.BaseDynaBeanMapDecorator<Object>
  - - org.apache.commons.beanutils.DynaBeanMapDecorator

- All Implemented Interfaces:
    Map<Object,Object>

  Deprecated.
  Use `DynaBeanPropertyMapDecorator` instead. When adding generics it turned out that it was not possible to use the correct type parameters without breaking backwards compatibility. Therefore, class `DynaBeanPropertyMapDecorator` was introduced as a replacement.

      @Deprecated
      public class DynaBeanMapDecorator
      extends BaseDynaBeanMapDecorator<Object>

  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.

For reasons of backwards compatibility, the generic types of this `Map` implementation are `<Object, Object>`. However, the keys of the map are typically strings.

Since:
  BeanUtils 1.8.0
Version:
  $Id: DynaBeanMapDecorator.java 1540186 2013-11-08 21:08:30Z oheger $

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface java.util.Map

      `Map.Entry<K,V>`

  - ### Constructor Summary

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

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `protected Object` | `convertKey(String propertyName)` Deprecated. Converts the name of a property to the key type of this decorator.

    - ### Methods inherited from class org.apache.commons.beanutils.BaseDynaBeanMapDecorator

      `clear, containsKey, containsValue, entrySet, get, getDynaBean, isEmpty, isReadOnly, keySet, put, putAll, remove, size, values`

    - ### 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,
                              boolean readOnly)

      Deprecated.
      Construct a Map for the specified `DynaBean`.
      Parameters:
        `dynaBean` - The dyna bean being decorated
        `readOnly` - `true` if the Map is read only otherwise `false`
      Throws:
        `IllegalArgumentException` - if the `DynaBean` is null.

    - #### DynaBeanMapDecorator

          public DynaBeanMapDecorator(DynaBean dynaBean)

      Deprecated.
      Constructs a read only Map for the specified `DynaBean`.
      Parameters:
        `dynaBean` - The dyna bean being decorated
      Throws:
        `IllegalArgumentException` - if the `DynaBean` is null.

  - ### Method Detail

    - #### convertKey

          protected Object convertKey(String propertyName)

      Deprecated.
      Description copied from class: `BaseDynaBeanMapDecorator`
      Converts the name of a property to the key type of this decorator.
      Specified by:
        `convertKey` in class `BaseDynaBeanMapDecorator<Object>`
      Parameters:
        `propertyName` - the name of a property
      Returns:
        the converted key to be used in the decorated map

Copyright © 2000–2014 The Apache Software Foundation. All rights reserved.