Package org.apache.commons.beanutils

## Class DynaBeanMapDecorator

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

All Implemented Interfaces:
  `java.util.Map<java.lang.Object,​java.lang.Object>`

    @Deprecated
    public class DynaBeanMapDecorator
    extends BaseDynaBeanMapDecorator<java.lang.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.

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$

### Nested Class Summary

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

`java.util.Map.Entry<K extends java.lang.Object,​V extends java.lang.Object>`

### Constructor Summary

Constructors
`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

All Methods Instance Methods Concrete Methods Deprecated Methods
`protected java.lang.Object` `convertKey​(java.lang.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

`compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll`

### 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:
  `java.lang.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:
  `java.lang.IllegalArgumentException` - if the `DynaBean` is null.

### Method Detail

#### convertKey

    protected java.lang.Object convertKey​(java.lang.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<java.lang.Object>`
Parameters:
  `propertyName` - the name of a property
Returns:
  the converted key to be used in the decorated map