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 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}
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.
Constructor and Description |
---|
DynaBeanMapDecorator(DynaBean dynaBean)
Constructs a read only Map for the specified
DynaBean . |
DynaBeanMapDecorator(DynaBean dynaBean,
boolean readOnly)
Construct a Map for the specified
DynaBean . |
Modifier and Type | Method and Description |
---|---|
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 . |
public DynaBeanMapDecorator(DynaBean dynaBean)
DynaBean
.dynaBean
- The dyna bean being decoratedIllegalArgumentException
- if the DynaBean
is null.public DynaBeanMapDecorator(DynaBean dynaBean, boolean readOnly)
DynaBean
.dynaBean
- The dyna bean being decoratedreadOnly
- true
if the Mpa is read only
otherwise false
IllegalArgumentException
- if the DynaBean
is null.public boolean isReadOnly()
true
if the Map is read only,
otherwise false
.public void clear()
clear
in interface Map
UnsupportedOperationException
public boolean containsKey(Object key)
DynaBean
contains a specified
value for one (or more) of its properties.containsKey
in interface Map
key
- The DynaBean
's property nametrue
if one of the DynaBean
's
properties contains a specified value.public boolean containsValue(Object value)
DynaBean
contains
a specified value.containsValue
in interface Map
value
- The value to check for.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.
public Object get(Object key)
DynaBean
.public boolean isEmpty()
DynaBean
has
any properties.public Set keySet()
Returns the Set of the property
names in the decorated DynaBean
.
N.B.For DynaBean
s whose associated DynaClass
is a MutableDynaClass
a new Set is created every
time, otherwise the Set is created only once and cached.
public Object put(Object key, Object value)
DynaBean
.put
in interface Map
key
- The DynaBean
's property namevalue
- The value for the specified property.UnsupportedOperationException
- if
isReadOnly()
is true.public void putAll(Map map)
DynaBean
.putAll
in interface Map
map
- The Map of values to copy.UnsupportedOperationException
- if
isReadOnly()
is true.public Object remove(Object key)
remove
in interface Map
key
- The DynaBean
's property nameUnsupportedOperationException
public int size()
DynaBean
.public Collection values()
DynaBean
.Copyright © 2000-2014 The Apache Software Foundation. All Rights Reserved.