Class AbstractMapDecorator<K,​V>

  • Type Parameters:
    K - the type of the keys in the map
    V - the type of the values in the map
    All Implemented Interfaces:
    java.util.Map<K,​V>, IterableMap<K,​V>
    Direct Known Subclasses:
    AbstractOrderedMapDecorator, AbstractSortedMapDecorator

    public abstract class AbstractMapDecorator<K,​V>
    extends AbstractIterableMap<K,​V>
    Provides a base decorator that enables additional functionality to be added to a Map via decoration.

    Methods are forwarded directly to the decorated map.

    This implementation does not perform any special processing with entrySet(), keySet() or values(). Instead it simply returns the set/collection from the wrapped map. This may be undesirable, for example if you are trying to write a validating implementation it would provide a loophole around the validation. But, you might want that loophole, so this class is kept simple.

    Since:
    3.0
    • 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 
      Modifier Constructor Description
      protected AbstractMapDecorator()
      Constructor only used in deserialization, do not use otherwise.
      protected AbstractMapDecorator​(java.util.Map<K,​V> map)
      Constructor that wraps (not copies).
    • Method Summary

      All Methods Instance 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.Map<K,​V> decorated()
      Gets the map being decorated.
      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)
      Note that the return type is Object, rather than V as in the Map interface.
      void putAll​(java.util.Map<? extends K,​? extends V> mapToCopy)  
      V remove​(java.lang.Object key)  
      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

      • AbstractMapDecorator

        protected AbstractMapDecorator()
        Constructor only used in deserialization, do not use otherwise.
        Since:
        3.1
      • AbstractMapDecorator

        protected AbstractMapDecorator​(java.util.Map<K,​V> map)
        Constructor that wraps (not copies).
        Parameters:
        map - the map to decorate, must not be null
        Throws:
        java.lang.NullPointerException - if the map is null
    • Method Detail

      • decorated

        protected java.util.Map<K,​V> decorated()
        Gets the map being decorated.
        Returns:
        the decorated map
      • clear

        public void clear()
        See Also:
        Map.clear()
      • containsKey

        public boolean containsKey​(java.lang.Object key)
      • containsValue

        public boolean containsValue​(java.lang.Object value)
      • entrySet

        public java.util.Set<java.util.Map.Entry<K,​V>> entrySet()
      • get

        public V get​(java.lang.Object key)
      • isEmpty

        public boolean isEmpty()
      • keySet

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

        public V put​(K key,
                     V value)
        Description copied from interface: IterableMap
        Note that the return type is Object, rather than V as in the Map interface. See the class Javadoc for further info.
        Parameters:
        key - key with which the specified value is to be associated
        value - value to be associated with the specified key
        Returns:
        the previous value associated with key, or null if there was no mapping for key. (A null return can also indicate that the map previously associated null with key, if the implementation supports null values.)
        See Also:
        Map.put(Object, Object)
      • putAll

        public void putAll​(java.util.Map<? extends K,​? extends V> mapToCopy)
        Parameters:
        mapToCopy - mappings to be stored in this map
        See Also:
        Map.putAll(Map)
      • remove

        public V remove​(java.lang.Object key)
      • size

        public int size()
      • values

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