Class ForwardingMap<K,​V>

  • All Implemented Interfaces:
    java.util.Map<K,​V>
    Direct Known Subclasses:
    StandardBiMap

    public abstract class ForwardingMap<K,​V>
    extends java.lang.Object
    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 extends java.lang.Object,​V extends java.lang.Object>
    • Constructor Summary

      Constructors 
      Constructor Description
      ForwardingMap()  
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      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()  
      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.lang.String toString()  
      java.util.Collection<V> values()  
      • Methods inherited from class java.lang.Object

        clone, finalize, getClass, notify, notifyAll, wait, wait, wait
      • Methods inherited from interface java.util.Map

        compute, computeIfAbsent, computeIfPresent, forEach, getOrDefault, merge, putIfAbsent, remove, replace, replace, replaceAll
    • Constructor Detail

      • ForwardingMap

        public ForwardingMap()
    • Method Detail

      • delegate

        protected abstract java.util.Map<K,​V> delegate()
      • 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()
        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 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()
        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 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()
        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 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
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object