Class BaseDynaBeanMapDecorator<K>
- Type Parameters:
K
- the type of the keys in the decorated map
- Direct Known Subclasses:
DynaBeanPropertyMapDecorator
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 1.x 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.
- Since:
- 1.9.0
-
Nested Class Summary
-
Constructor Summary
ConstructorDescriptionBaseDynaBeanMapDecorator
(DynaBean dynaBean) Constructs a read only Map for the specifiedDynaBean
.BaseDynaBeanMapDecorator
(DynaBean dynaBean, boolean readOnly) Constructs a Map for the specifiedDynaBean
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
clear()
clear() operation is not supported.boolean
containsKey
(Object key) Indicate whether theDynaBean
contains a specified value for one (or more) of its properties.boolean
containsValue
(Object value) Indicates whether the decoratedDynaBean
contains a specified value.protected abstract K
convertKey
(String propertyName) Converts the name of a property to the key type of this decorator.entrySet()
Returns the Set of the property/value mappings in the decoratedDynaBean
.Gets the value for the specified key from the decoratedDynaBean
.Provide access to the underlyingDynaBean
this Map decorates.boolean
isEmpty()
Indicate whether the decoratedDynaBean
has any properties.boolean
Indicate whether the Map is read only.keySet()
Returns the Set of the property names in the decoratedDynaBean
.Puts the value for the specified property in the decoratedDynaBean
.void
Copy the contents of a Map to the decoratedDynaBean
.remove() operation is not supported.int
size()
Returns the number properties in the decoratedDynaBean
.values()
Returns the set of property values in the decoratedDynaBean
.Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.Map
compute, computeIfAbsent, computeIfPresent, equals, forEach, getOrDefault, hashCode, merge, putIfAbsent, remove, replace, replace, replaceAll
-
Constructor Details
-
BaseDynaBeanMapDecorator
Constructs a read only Map for the specifiedDynaBean
.- Parameters:
dynaBean
- The dyna bean being decorated- Throws:
IllegalArgumentException
- if theDynaBean
is null.
-
BaseDynaBeanMapDecorator
Constructs a Map for the specifiedDynaBean
.- Parameters:
dynaBean
- The dyna bean being decoratedreadOnly
-true
if the Map is read only otherwisefalse
- Throws:
IllegalArgumentException
- if theDynaBean
is null.
-
-
Method Details
-
clear
clear() operation is not supported.- Specified by:
clear
in interfaceMap<K,
Object> - Throws:
UnsupportedOperationException
- This operation is not yet supported
-
containsKey
Indicate whether theDynaBean
contains a specified value for one (or more) of its properties. -
containsValue
Indicates whether the decoratedDynaBean
contains a specified value.- Specified by:
containsValue
in interfaceMap<K,
Object> - Parameters:
value
- The value to check for.- Returns:
true
if one of theDynaBean
's properties contains the specified value, otherwisefalse
.
-
convertKey
Converts the name of a property to the key type of this decorator.- Parameters:
propertyName
- the name of a property- Returns:
- the converted key to be used in the decorated map
-
entrySet
Returns the Set of the property/value mappings in the decorated
DynaBean
.Each element in the Set is a
Map.Entry
type. -
get
Gets the value for the specified key from the decoratedDynaBean
. -
getDynaBean
Provide access to the underlyingDynaBean
this Map decorates.- Returns:
- the decorated
DynaBean
.
-
isEmpty
Indicate whether the decoratedDynaBean
has any properties. -
isReadOnly
Indicate whether the Map is read only.- Returns:
true
if the Map is read only, otherwisefalse
.
-
keySet
Returns the Set of the property names in the decorated
DynaBean
.N.B.For
DynaBean
s whose associatedDynaClass
is aMutableDynaClass
a new Set is created every time, otherwise the Set is created only once and cached. -
put
Puts the value for the specified property in the decoratedDynaBean
. -
putAll
Copy the contents of a Map to the decoratedDynaBean
.- Specified by:
putAll
in interfaceMap<K,
Object> - Parameters:
map
- The Map of values to copy.- Throws:
UnsupportedOperationException
- ifisReadOnly()
is true.
-
remove
remove() operation is not supported. -
size
Returns the number properties in the decoratedDynaBean
. -
values
Returns the set of property values in the decoratedDynaBean
.
-