Class DynaBeanPropertyMapDecorator

java.lang.Object
org.apache.commons.beanutils2.BaseDynaBeanMapDecorator<String>
org.apache.commons.beanutils2.DynaBeanPropertyMapDecorator
All Implemented Interfaces:
Map<String,Object>

Decorates a DynaBean to provide Map behavior.

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

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

 
         public Map<String, Object> getMap() {
             return new DynaBeanPropertyMapDecorator(this);
         }
 

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

  • ${myDynaBean.<strong>map</strong>.fooProperty}

Usage

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

  • Map&lt;String, Object&gt; fooMap = new DynaBeanPropertyMapDecorator(fooDynaBean);

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

  • Map<String, Object> fooMap = new DynaBeanPropertyMapDecorator(fooDynaBean, false);

Limitations

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

Since:
1.9.0