public class

DefaultedMap

extends AbstractMapDecorator
implements Serializable Map<K, V>
java.lang.Object
   ↳ org.apache.commons.collections.map.AbstractMapDecorator
     ↳ org.apache.commons.collections.map.DefaultedMap

Class Overview

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 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 synchronizedMap(Map). This class may throw exceptions when accessed by concurrent threads without synchronization.

See Also

Summary

Fields
protected final Object value The transformer to use if the map does not contain a key
[Expand]
Inherited Fields
From class org.apache.commons.collections.map.AbstractMapDecorator
Public Constructors
DefaultedMap(Object defaultValue)
Constructs a new empty DefaultedMap that decorates a HashMap.
Protected Constructors
DefaultedMap(Map map, Object value)
Constructor that wraps (not copies).
Public Methods
static Map decorate(Map map, Transformer factory)
Factory method to create a defaulting map.
static Map decorate(Map map, Factory factory)
Factory method to create a defaulting map.
static Map decorate(Map map, Object defaultValue)
Factory method to create a defaulting map.
Object get(Object key)
[Expand]
Inherited Methods
From class org.apache.commons.collections.map.AbstractMapDecorator
From class java.lang.Object
From interface java.util.Map

Fields

protected final Object value

The transformer to use if the map does not contain a key

Public Constructors

public DefaultedMap (Object defaultValue)

Constructs a new empty DefaultedMap that decorates a HashMap.

The object passed in will be returned by the map whenever an unknown key is requested.

Parameters
defaultValue the default value to return when the key is not found

Protected Constructors

protected DefaultedMap (Map map, Object value)

Constructor that wraps (not copies).

Parameters
map the map to decorate, must not be null
value the value to use
Throws
IllegalArgumentException if map or transformer is null

Public Methods

public static Map decorate (Map map, Transformer factory)

Factory method to create a defaulting map.

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.

Parameters
map the map to decorate, must not be null
factory the factory to use, must not be null
Throws
IllegalArgumentException if map or factory is null

public static Map decorate (Map map, Factory factory)

Factory method to create a defaulting map.

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.

Parameters
map the map to decorate, must not be null
factory the factory to use, must not be null
Throws
IllegalArgumentException if map or factory is null

public static Map decorate (Map map, Object defaultValue)

Factory method to create a defaulting map.

The value specified is returned when a missing key is found.

Parameters
map the map to decorate, must not be null
defaultValue the default value to return when the key is not found
Throws
IllegalArgumentException if map is null

public Object get (Object key)