⇒ Index (Frames) |  ⇒ Index (No Frames) |  ⇒ Package |  ⇒ Package Tree |  ⇒ Full Tree 
org.apache.commons.collections.map

Class LazyMap

java.lang.Object
|
+--org.apache.commons.collections.map.AbstractMapDecorator
   |
   +--org.apache.commons.collections.map.LazyMap

All Implemented Interfaces:
Map, Map

Known Direct Subclasses:
LazySortedMap


public class LazyMap
extends AbstractMapDecorator
implements Map

Decorates another Map to create objects in the map on demand.

When the get(Object) method is called with a key that does not exist in the map, the factory is used to create the object. The created object will be added to the map using the requested key.

For instance:

 Factory factory = new Factory() {
     public Object create() {
         return new Date();
     }
 }
 Map lazy = Lazy.map(new HashMap(), factory);
 Object obj = lazy.get("NOW");
After the above code is executed, obj will contain a new Date instance. Furthermore, that Date instance is mapped to the "NOW" key in the map.
Since:
Commons Collections 3.0
Authors:
Stephen Colebourne
Paul Jack

Field Summary

Transformer

factory

The factory to use to construct elements

Constructor Summary

LazyMap(Map map, Factory factory)

Constructor that wraps (not copies).

LazyMap(Map map, Transformer factory)

Constructor that wraps (not copies).

Method Summary

static Map

decorate(Map map, Factory factory)

Factory method to create a lazily instantiated map.

static Map

decorate(Map map, Transformer factory)

Factory method to create a lazily instantiated map.

Object

get(Object key)

Field Details

factory

protected final Transformer factory

The factory to use to construct elements

Constructor Details

LazyMap

protected LazyMap(Map map, Factory factory)

Constructor that wraps (not copies).

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

LazyMap

protected LazyMap(Map map, Transformer factory)

Constructor that wraps (not copies).

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

Method Details

decorate

public static Map decorate(Map map, Factory factory)

Factory method to create a lazily instantiated map.

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

decorate

public static Map decorate(Map map, Transformer factory)

Factory method to create a lazily instantiated map.

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

get

public Object get(Object key)

Parameters:
key