org.apache.commons.collections.map

Class LazyMap

Implemented Interfaces:
Map, Serializable
Known Direct Subclasses:
LazySortedMap

public class LazyMap
extends AbstractMapDecorator
implements Map, Serializable

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.

This class is Serializable from Commons Collections 3.1.

Version:
$Revision: 1.7 $ $Date: 2004/05/07 23:30:33 $
Authors:
Stephen Colebourne
Paul Jack
Since:
Commons Collections 3.0

Field Summary

protected Transformer
factory
The factory to use to construct elements

Fields inherited from class org.apache.commons.collections.map.AbstractMapDecorator

map

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)

Methods inherited from class org.apache.commons.collections.map.AbstractMapDecorator

clear, containsKey, containsValue, entrySet, equals, get, getMap, hashCode, isEmpty, keySet, put, putAll, remove, size, toString, values

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

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

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

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

get

public Object get(Object key)
Overrides:
get in interface AbstractMapDecorator

Copyright © 2001-2006 Apache Software Foundation. All Rights Reserved.