com.google.common.collect
Class ForwardingMap<K,V>

java.lang.Object
  extended by com.google.common.collect.ForwardingObject
      extended by com.google.common.collect.ForwardingMap<K,V>
All Implemented Interfaces:
Map<K,V>
Direct Known Subclasses:
EnumBiMap, EnumHashBiMap, ForwardingConcurrentMap, ForwardingSortedMap, HashBiMap, ImmutableClassToInstanceMap, MutableClassToInstanceMap

@GwtCompatible
public abstract class ForwardingMap<K,V>
extends ForwardingObject
implements Map<K,V>

A map which forwards all its method calls to another map. Subclasses should override one or more methods to modify the behavior of the backing map as desired per the decorator pattern.

Author:
Kevin Bourrillion, Jared Levy
See Also:
ForwardingObject

Nested Class Summary
 
Nested classes/interfaces inherited from interface java.util.Map
Map.Entry<K,V>
 
Constructor Summary
ForwardingMap()
           
 
Method Summary
 void clear()
           
 boolean containsKey(Object key)
           
 boolean containsValue(Object value)
           
protected  Set<Map.Entry<K,V>> createEntrySet()
          Generates a Set for use by entrySet().
protected  Set<K> createKeySet()
          Generates a Set for use by keySet().
protected  Collection<V> createValues()
          Generates a Collection for use by values().
protected abstract  Map<K,V> delegate()
          Returns the backing delegate instance that methods are forwarded to.
 Set<Map.Entry<K,V>> entrySet()
           
 boolean equals(Object object)
           
 V get(Object key)
           
 int hashCode()
           
 boolean isEmpty()
           
 Set<K> keySet()
           
 V put(K key, V value)
           
 void putAll(Map<? extends K,? extends V> map)
           
 V remove(Object object)
           
 int size()
           
 Collection<V> values()
           
 
Methods inherited from class com.google.common.collect.ForwardingObject
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

ForwardingMap

public ForwardingMap()
Method Detail

delegate

protected abstract Map<K,V> delegate()
Description copied from class: ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override the ForwardingObject method with an abstract method that has a more specific return type, such as ForwardingSet.delegate(). Concrete subclasses override this method to supply the instance being decorated.

Specified by:
delegate in class ForwardingObject

size

public int size()
Specified by:
size in interface Map<K,V>

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map<K,V>

remove

public V remove(Object object)
Specified by:
remove in interface Map<K,V>

clear

public void clear()
Specified by:
clear in interface Map<K,V>

containsKey

public boolean containsKey(Object key)
Specified by:
containsKey in interface Map<K,V>

containsValue

public boolean containsValue(Object value)
Specified by:
containsValue in interface Map<K,V>

get

public V get(Object key)
Specified by:
get in interface Map<K,V>

put

public V put(K key,
             V value)
Specified by:
put in interface Map<K,V>

putAll

public void putAll(Map<? extends K,? extends V> map)
Specified by:
putAll in interface Map<K,V>

keySet

public Set<K> keySet()
Specified by:
keySet in interface Map<K,V>

createKeySet

protected Set<K> createKeySet()
Generates a Set for use by keySet().

ForwardingMap's implementation of keySet() calls this method to generate a collection of values, and then reuses that Set for subsequent invocations. By default, this Set is the result of invoking keySet() on the delegate. Override this method if you want to provide another implementation.

Returns:
A set for use by keySet().

values

public Collection<V> values()
Specified by:
values in interface Map<K,V>

createValues

protected Collection<V> createValues()
Generates a Collection for use by values().

ForwardingMap's implementation of values() calls this method to generate a collection of values, and then reuses that collection for subsequent invocations. By default, this collection is the result of invoking values() on the delegate. Override this method if you want to provide another implementation.

Returns:
A set for use by values().

entrySet

public Set<Map.Entry<K,V>> entrySet()
Specified by:
entrySet in interface Map<K,V>

createEntrySet

protected Set<Map.Entry<K,V>> createEntrySet()
Generates a Set for use by entrySet().

ForwardingMap's implementation of entrySet() calls this method to generate a set of entries, and then reuses that set for subsequent invocations. By default, this set is the result of invoking entrySet() on the delegate. Override this method if you want to provide another implementation.

Returns:
A set for use by entrySet().

equals

public boolean equals(@Nullable
                      Object object)
Specified by:
equals in interface Map<K,V>
Overrides:
equals in class Object

hashCode

public int hashCode()
Specified by:
hashCode in interface Map<K,V>
Overrides:
hashCode in class Object