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 DynaBeans.
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 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
ConstructorsConstructorDescriptionBaseDynaBeanMapDecorator(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 TypeMethodDescriptionvoidclear()clear() operation is not supported.booleancontainsKey(Object key) Indicate whether theDynaBeancontains a specified value for one (or more) of its properties.booleancontainsValue(Object value) Indicates whether the decoratedDynaBeancontains a specified value.protected abstract KconvertKey(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 underlyingDynaBeanthis Map decorates.booleanisEmpty()Indicate whether the decoratedDynaBeanhas any properties.booleanIndicate 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.voidCopy the contents of a Map to the decoratedDynaBean.remove() operation is not supported.intsize()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, waitMethods 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 theDynaBeanis null.
-
BaseDynaBeanMapDecorator
Constructs a Map for the specifiedDynaBean.- Parameters:
dynaBean- The dyna bean being decoratedreadOnly-trueif the Map is read only otherwisefalse- Throws:
IllegalArgumentException- if theDynaBeanis null.
-
-
Method Details
-
clear
clear() operation is not supported.- Specified by:
clearin interfaceMap<K,Object> - Throws:
UnsupportedOperationException- This operation is not yet supported
-
containsKey
Indicate whether theDynaBeancontains a specified value for one (or more) of its properties. -
containsValue
Indicates whether the decoratedDynaBeancontains a specified value.- Specified by:
containsValuein interfaceMap<K,Object> - Parameters:
value- The value to check for.- Returns:
trueif 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.Entrytype. -
get
Gets the value for the specified key from the decoratedDynaBean. -
getDynaBean
Provide access to the underlyingDynaBeanthis Map decorates.- Returns:
- the decorated
DynaBean.
-
isEmpty
Indicate whether the decoratedDynaBeanhas any properties. -
isReadOnly
Indicate whether the Map is read only.- Returns:
trueif the Map is read only, otherwisefalse.
-
keySet
Returns the Set of the property names in the decorated
DynaBean.N.B.For
DynaBeans whose associatedDynaClassis aMutableDynaClassa 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:
putAllin 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.
-