Class BaseDynaBeanMapDecorator<K>
- Type Parameters:
K
- the type of the keys in the decorated map
- Direct Known Subclasses:
DynaBeanMapDecorator
,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 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:
- BeanUtils 1.9.0
- Version:
- $Id$
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionprivate static class
Map.Entry implementation. -
Field Summary
Fields -
Constructor Summary
ConstructorsConstructorDescriptionBaseDynaBeanMapDecorator
(DynaBean dynaBean) Constructs a read only Map for the specifiedDynaBean
.BaseDynaBeanMapDecorator
(DynaBean dynaBean, boolean readOnly) Construct 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
.Return the value for the specified key from the decoratedDynaBean
.Provide access to the underlyingDynaBean
this Map decorates.private DynaProperty[]
Convenience method to retrieve theDynaProperty
s for thisDynaClass
.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
.Set 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
.private String
Convenience method to convert an Object to a String.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
-
Field Details
-
dynaBean
-
readOnly
private final boolean readOnly -
keySet
-
-
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
Construct 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
-
isReadOnly
public boolean isReadOnly()Indicate whether the Map is read only.- Returns:
true
if the Map is read only, otherwisefalse
.
-
clear
public void clear()clear() operation is not supported.- Specified by:
clear
in interfaceMap<K,
Object> - Throws:
UnsupportedOperationException
-
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 the theDynaBean
's properties contains the specified value, otherwisefalse
.
-
entrySet
Returns the Set of the property/value mappings in the decorated
DynaBean
.Each element in the Set is a
Map.Entry
type. -
get
Return the value for the specified key from the decoratedDynaBean
. -
isEmpty
public boolean isEmpty()Indicate whether the decoratedDynaBean
has any properties. -
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
Set 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
public int size()Returns the number properties in the decoratedDynaBean
. -
values
Returns the set of property values in the decoratedDynaBean
. -
getDynaBean
Provide access to the underlyingDynaBean
this Map decorates.- Returns:
- the decorated
DynaBean
.
-
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
-
getDynaProperties
Convenience method to retrieve theDynaProperty
s for thisDynaClass
.- Returns:
- The an array of the
DynaProperty
s.
-
toString
Convenience method to convert an Object to a String.- Parameters:
obj
- The Object to convert- Returns:
- String representation of the object
-