Class AbstractMapDecorator<K,V>

java.lang.Object
org.apache.openjpa.lib.util.collections.AbstractIterableMap<K,V>
org.apache.openjpa.lib.util.collections.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:
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
  • Constructor Details

    • AbstractMapDecorator

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

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

    • decorated

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

      public void clear()
      See Also:
    • containsKey

      public boolean containsKey(Object key)
    • containsValue

      public boolean containsValue(Object value)
    • entrySet

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

      public V get(Object key)
    • isEmpty

      public boolean isEmpty()
    • keySet

      public 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:
    • putAll

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

      public V remove(Object key)
    • size

      public int size()
    • values

      public Collection<V> values()
    • equals

      public boolean equals(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
    • toString

      public String toString()
      Overrides:
      toString in class Object