org.jboss.webbeans.util.collections
Class ForwardingMap<K,V>

java.lang.Object
  extended by org.jboss.webbeans.util.collections.ForwardingObject
      extended by org.jboss.webbeans.util.collections.ForwardingMap<K,V>
All Implemented Interfaces:
java.util.Map<K,V>
Direct Known Subclasses:
ConcurrentCache, ForwardingConcurrentMap, ListHashMultiMap, SetHashMultiMap

public abstract class ForwardingMap<K,V>
extends ForwardingObject
implements java.util.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
java.util.Map.Entry<K,V>
 
Constructor Summary
ForwardingMap()
           
 
Method Summary
 void clear()
           
 boolean containsKey(java.lang.Object key)
           
 boolean containsValue(java.lang.Object value)
           
protected  java.util.Set<java.util.Map.Entry<K,V>> createEntrySet()
          Generates a Set for use by entrySet().
protected  java.util.Set<K> createKeySet()
          Generates a Set for use by keySet().
protected  java.util.Collection<V> createValues()
          Generates a Collection for use by values().
protected abstract  java.util.Map<K,V> delegate()
          Returns the backing delegate instance that methods are forwarded to.
 java.util.Set<java.util.Map.Entry<K,V>> entrySet()
          
 boolean equals(java.lang.Object object)
           
 V get(java.lang.Object key)
           
 int hashCode()
           
 boolean isEmpty()
           
 java.util.Set<K> keySet()
          
 V put(K key, V value)
           
 void putAll(java.util.Map<? extends K,? extends V> map)
           
 V remove(java.lang.Object object)
           
 int size()
           
 java.util.Collection<V> values()
          
 
Methods inherited from class org.jboss.webbeans.util.collections.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 java.util.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 java.util.Map<K,V>

isEmpty

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

remove

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

clear

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

containsKey

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

containsValue

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

get

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

put

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

putAll

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

keySet

public java.util.Set<K> keySet()

The returned set's removeAll and retainAll methods always throw a NullPointerException when given a null collection.

Specified by:
keySet in interface java.util.Map<K,V>

createKeySet

protected java.util.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 essentially 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 java.util.Collection<V> values()

The returned collection's removeAll and retainAll methods always throw a NullPointerException when given a null collection.

Specified by:
values in interface java.util.Map<K,V>

createValues

protected java.util.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 essentially 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 java.util.Set<java.util.Map.Entry<K,V>> entrySet()

The returned set's removeAll and retainAll methods always throw a NullPointerException when given a null collection.

Specified by:
entrySet in interface java.util.Map<K,V>

createEntrySet

protected java.util.Set<java.util.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 essentially 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(java.lang.Object object)
Specified by:
equals in interface java.util.Map<K,V>
Overrides:
equals in class java.lang.Object

hashCode

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


Copyright © 2011. All Rights Reserved.