org.apache.commons.beanutils
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 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}
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);
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) $
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. Each element in the Set is a |
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. 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. |
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.
|
Parameters: dynaBean The dyna bean being decorated
Throws: IllegalArgumentException if the DynaBean is null.
Parameters: dynaBean The dyna bean being decorated readOnly true
if the Mpa is read only
otherwise false
Throws: IllegalArgumentException if the DynaBean is null.
Throws: UnsupportedOperationException
Parameters: key The DynaBean's property name
Returns: true
if one of the DynaBean's
properties 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
.
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
Parameters: key The DynaBean's property name
Returns: The value for the specified property.
Returns: true
if the DynaBean has
no properties, otherwise false
.
Returns: true
if the Map is read only,
otherwise false
.
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.
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.
Parameters: map The Map of values to copy.
Throws: UnsupportedOperationException if
isReadOnly()
is true.
Parameters: key The DynaBean's property name
Returns: the value removed
Throws: UnsupportedOperationException
Returns: The number of properties.
Returns: Unmodifiable collection of values.