public class

DynaBeanMapDecorator

extends Object
implements Map
java.lang.Object
   ↳ org.apache.commons.beanutils.DynaBeanMapDecorator

Class Overview

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 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 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.

Summary

Public Constructors
DynaBeanMapDecorator(DynaBean dynaBean)
Constructs a read only Map for the specified DynaBean.
DynaBeanMapDecorator(DynaBean dynaBean, boolean readOnly)
Construct a Map for the specified DynaBean.
Public Methods
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.
[Expand]
Inherited Methods
From class java.lang.Object
From interface java.util.Map

Public Constructors

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.

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.

Public Methods

public void clear ()

clear() operation is not supported.

public boolean containsKey (Object key)

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

Parameters
key The DynaBean's property name
Returns
  • true if one of the DynaBean's properties contains a specified value.

public boolean containsValue (Object value)

Indicates whether the decorated DynaBean contains a specified value.

Parameters
value The value to check for.
Returns
  • true if one of the the DynaBean's properties contains the specified value, otherwise false.

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.

Returns
  • An unmodifiable set of the DynaBean property name/value pairs

public Object get (Object key)

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

Parameters
key The DynaBean's property name
Returns
  • The value for the specified property.

public DynaBean getDynaBean ()

Provide access to the underlying DynaBean this Map decorates.

Returns

public boolean isEmpty ()

Indicate whether the decorated DynaBean has any properties.

Returns
  • true if the DynaBean has no properties, otherwise false.

public boolean isReadOnly ()

Indicate whether the Map is read only.

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

public Set keySet ()

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

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

Returns
  • An unmodifiable set of the DynaBeans property names.

public Object put (Object key, Object value)

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

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.

public void putAll (Map map)

Copy the contents of a Map to the decorated DynaBean.

Parameters
map The Map of values to copy.
Throws
UnsupportedOperationException if isReadOnly() is true.

public Object remove (Object key)

remove() operation is not supported.

Parameters
key The DynaBean's property name
Returns
  • the value removed

public int size ()

Returns the number properties in the decorated DynaBean.

Returns
  • The number of properties.

public Collection values ()

Returns the set of property values in the decorated DynaBean.

Returns
  • Unmodifiable collection of values.