K
- the type of the keys in the decorated mappublic abstract class BaseDynaBeanMapDecorator<K> extends Object implements Map<K,Object>
A base class for decorators providing Map
behavior on
DynaBean
s.
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 rather technical base class implements the methods of the
Map
interface on top of a DynaBean
. It was introduced
to handle generic parameters in a meaningful way without breaking
backwards compatibility of the DynaBeanMapDecorator
class: A
map wrapping a DynaBean
should be of type Map<String, Object>
.
However, when using these generic parameters in DynaBeanMapDecorator
this would be an incompatible change (as method signatures would have to
be adapted). To solve this problem, this generic base class is added
which allows specifying the key type as parameter. This makes it easy to
have a new subclass using the correct generic parameters while
DynaBeanMapDecorator
could still remain with compatible
parameters.
Constructor and Description |
---|
BaseDynaBeanMapDecorator(DynaBean dynaBean)
Constructs a read only Map for the specified
DynaBean . |
BaseDynaBeanMapDecorator(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. |
protected abstract K |
convertKey(String propertyName)
Converts the name of a property to the key type of this decorator.
|
Set<Map.Entry<K,Object>> |
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<K> |
keySet()
Returns the Set of the property
names in the decorated
DynaBean . |
Object |
put(K key,
Object value)
Set the value for the specified property in
the decorated
DynaBean . |
void |
putAll(Map<? extends K,? extends Object> 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<Object> |
values()
Returns the set of property values in the
decorated
DynaBean . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
public BaseDynaBeanMapDecorator(DynaBean dynaBean)
DynaBean
.dynaBean
- The dyna bean being decoratedIllegalArgumentException
- if the DynaBean
is null.public BaseDynaBeanMapDecorator(DynaBean dynaBean, boolean readOnly)
DynaBean
.dynaBean
- The dyna bean being decoratedreadOnly
- true
if the Map 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<K,Object>
UnsupportedOperationException
public boolean containsKey(Object key)
DynaBean
contains a specified
value for one (or more) of its properties.public boolean containsValue(Object value)
DynaBean
contains
a specified value.containsValue
in interface Map<K,Object>
value
- The value to check for.true
if one of the the DynaBean
's
properties contains the specified value, otherwise
false
.public Set<Map.Entry<K,Object>> 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 Set<K> 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(K key, Object value)
DynaBean
.public void putAll(Map<? extends K,? extends Object> map)
DynaBean
.putAll
in interface Map<K,Object>
map
- The Map of values to copy.UnsupportedOperationException
- if
isReadOnly()
is true.public Collection<Object> values()
DynaBean
.public DynaBean getDynaBean()
DynaBean
this Map decorates.DynaBean
.protected abstract K convertKey(String propertyName)
propertyName
- the name of a propertyCopyright © 2000–2019 The Apache Software Foundation. All rights reserved.