|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.apache.commons.collections4.map.AbstractIterableMap<K,V>
org.apache.commons.collections4.map.AbstractMapDecorator<K,V>
org.apache.commons.collections4.map.DefaultedMap<K,V>
public class DefaultedMap<K,V>
Decorates another Map
returning a default value if the map
does not contain the requested key.
When the get(Object)
method is called with a key that does not
exist in the map, this map will return the default value specified in
the constructor/factory. Only the get method is altered, so the
Map.containsKey(Object)
can be used to determine if a key really
is in the map or not.
The defaulted value is not added to the map.
Compare this behaviour with LazyMap
, which does add the value
to the map (via a Transformer).
For instance:
Map map = new DefaultedMap("NULL"); Object obj = map.get("Surname"); // obj == "NULL"After the above code is executed the map is still empty.
Note that DefaultedMap is not synchronized and is not thread-safe.
If you wish to use this map from multiple threads concurrently, you must use
appropriate synchronization. The simplest approach is to wrap this map
using Collections.synchronizedMap(Map)
. This class may throw
exceptions when accessed by concurrent threads without synchronization.
LazyMap
,
Serialized FormNested Class Summary |
---|
Nested classes/interfaces inherited from interface java.util.Map |
---|
Map.Entry<K,V> |
Constructor Summary | |
---|---|
protected |
DefaultedMap(Map<K,V> map,
Transformer<? super K,? extends V> defaultValueTransformer)
Constructor that wraps (not copies). |
|
DefaultedMap(Transformer<? super K,? extends V> defaultValueTransformer)
Constructs a new empty DefaultedMap that decorates a HashMap . |
|
DefaultedMap(V defaultValue)
Constructs a new empty DefaultedMap that decorates
a HashMap . |
Method Summary | ||
---|---|---|
static
|
defaultedMap(Map<K,V> map,
Factory<? extends V> factory)
Factory method to create a defaulting map. |
|
static
|
defaultedMap(Map<K,V> map,
Transformer<? super K,? extends V> transformer)
Factory method to create a defaulting map. |
|
static
|
defaultedMap(Map<K,V> map,
V defaultValue)
Factory method to create a defaulting map. |
|
V |
get(Object key)
|
Methods inherited from class org.apache.commons.collections4.map.AbstractMapDecorator |
---|
clear, containsKey, containsValue, decorated, entrySet, equals, hashCode, isEmpty, keySet, put, putAll, remove, size, toString, values |
Methods inherited from class org.apache.commons.collections4.map.AbstractIterableMap |
---|
mapIterator |
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
public DefaultedMap(V defaultValue)
DefaultedMap
that decorates
a HashMap
.
The object passed in will be returned by the map whenever an unknown key is requested.
defaultValue
- the default value to return when the key is not foundpublic DefaultedMap(Transformer<? super K,? extends V> defaultValueTransformer)
DefaultedMap
that decorates a HashMap
.
defaultValueTransformer
- transformer to use to generate missing values.protected DefaultedMap(Map<K,V> map, Transformer<? super K,? extends V> defaultValueTransformer)
map
- the map to decorate, must not be nulldefaultValueTransformer
- the value transformer to use
IllegalArgumentException
- if map or transformer is nullMethod Detail |
---|
public static <K,V> DefaultedMap<K,V> defaultedMap(Map<K,V> map, V defaultValue)
The value specified is returned when a missing key is found.
K
- the key typeV
- the value typemap
- the map to decorate, must not be nulldefaultValue
- the default value to return when the key is not found
IllegalArgumentException
- if map is nullpublic static <K,V> DefaultedMap<K,V> defaultedMap(Map<K,V> map, Factory<? extends V> factory)
The factory specified is called when a missing key is found. The result will be returned as the result of the map get(key) method.
K
- the key typeV
- the value typemap
- the map to decorate, must not be nullfactory
- the factory to use to create entries, must not be null
IllegalArgumentException
- if map or factory is nullpublic static <K,V> Map<K,V> defaultedMap(Map<K,V> map, Transformer<? super K,? extends V> transformer)
The transformer specified is called when a missing key is found. The key is passed to the transformer as the input, and the result will be returned as the result of the map get(key) method.
K
- the key typeV
- the value typemap
- the map to decorate, must not be nulltransformer
- the transformer to use as a factory to create entries, must not be null
IllegalArgumentException
- if map or factory is nullpublic V get(Object key)
get
in interface Map<K,V>
get
in interface Get<K,V>
get
in class AbstractMapDecorator<K,V>
Map.get(Object)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |