javax.ws.rs.core

## Class AbstractMultivaluedMap<K,V>

- java.lang.Object
- - javax.ws.rs.core.AbstractMultivaluedMap<K,V>

- Type Parameters:
    `K` - the type of keys maintained by this map.
    `V` - the type of mapped values.
  All Implemented Interfaces:
    Map<K,List<V>>, MultivaluedMap<K,V>
  Direct Known Subclasses:
    MultivaluedHashMap

      public abstract class AbstractMultivaluedMap<K,V>
      extends Object
      implements MultivaluedMap<K,V>

  Abstract skeleton implementation of a `MultivaluedMap` that is backed by a [key, multi-value] store represented as a `Map<K, List<V>>`.
  Author:
    Marek Potociar

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface java.util.Map

      `Map.Entry<K,V>`

  - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Map<K,List<V>>` | `store` Backing store for the [key, multi-value] pairs.

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `AbstractMultivaluedMap(Map<K,List<V>> store)` Initialize the backing store in the abstract parent multivalued map implementation.

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add(K key, V value)` Add a value to the current list of values for the supplied key.
    `void` | `addAll(K key, List<V> valueList)` Add all the values from the supplied value list to the current list of values for the supplied key.
    `void` | `addAll(K key, V... newValues)` Add multiple values to the current list of values for the supplied key.
    `void` | `addFirst(K key, V value)` Add a value to the first position in the current list of values for the supplied key.
    `protected void` | `addFirstNull(List<V> values)` Define the behavior for adding a `null` values to the first position in the value list.
    `protected void` | `addNull(List<V> values)` Define the behavior for adding a `null` values to the value list.
    `void` | `clear()`
    `boolean` | `containsKey(Object key)`
    `boolean` | `containsValue(Object value)`
    `Set<Map.Entry<K,List<V>>>` | `entrySet()`
    `boolean` | `equals(Object o)` This implementation delegates the method call to to the the underlying [key, multi-value] store.
    `boolean` | `equalsIgnoreValueOrder(MultivaluedMap<K,V> omap)` Compare the specified map with this map for equality modulo the order of values for each key.
    `List<V>` | `get(Object key)`
    `V` | `getFirst(K key)` A shortcut to get the first value of the supplied key.
    `protected List<V>` | `getValues(K key)` Return a non-null list of values for a given key.
    `int` | `hashCode()` This implementation delegates the method call to to the the underlying [key, multi-value] store.
    `boolean` | `isEmpty()`
    `Set<K>` | `keySet()`
    `List<V>` | `put(K key, List<V> value)`
    `void` | `putAll(Map<? extends K,? extends List<V>> m)`
    `void` | `putSingle(K key, V value)` Set the value for the key to be a one item list consisting of the supplied value.
    `List<V>` | `remove(Object key)`
    `int` | `size()`
    `String` | `toString()`
    `Collection<List<V>>` | `values()`

    - ### Methods inherited from class java.lang.Object

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Field Detail

    - #### store

          protected final Map<K,List<V>> store

      Backing store for the [key, multi-value] pairs.

  - ### Constructor Detail

    - #### AbstractMultivaluedMap

          public AbstractMultivaluedMap(Map<K,List<V>> store)

      Initialize the backing store in the abstract parent multivalued map implementation.
      Parameters:
        `store` - the backing `Map` to be used as a [key, multi-value] store. Must not be `null`.
      Throws:
        `NullPointerException` - in case the underlying `store` parameter is `null`.

  - ### Method Detail

    - #### putSingle

          public final void putSingle(K key,
                       V value)

      Set the value for the key to be a one item list consisting of the supplied value. Any existing values will be replaced.

      NOTE: This implementation ignores `null` values; A supplied value of `null` is ignored and not added to the purged value list. As a result of such operation, empty value list would be registered for the supplied key. Overriding implementations may modify this behavior by redefining the `addNull(java.util.List)` method.
      Specified by:
        `putSingle` in interface `MultivaluedMap<K,V>`
      Parameters:
        `key` - the key
        `value` - the single value of the key. If the value is `null` it will be ignored.

    - #### addNull

          protected void addNull(List<V> values)

      Define the behavior for adding a `null` values to the value list.

      Default implementation is a no-op, i.e. the `null` values are ignored. Overriding implementations may modify this behavior by providing their own definitions of this method.
      Parameters:
        `values` - value list where the `null` value addition is being requested.

    - #### addFirstNull

          protected void addFirstNull(List<V> values)

      Define the behavior for adding a `null` values to the first position in the value list.

      Default implementation is a no-op, i.e. the `null` values are ignored. Overriding implementations may modify this behavior by providing their own definitions of this method.
      Parameters:
        `values` - value list where the `null` value addition is being requested.

    - #### add

          public final void add(K key,
                 V value)

      Add a value to the current list of values for the supplied key.

      NOTE: This implementation ignores `null` values; A supplied value of `null` is ignored and not added to the value list. Overriding implementations may modify this behavior by redefining the `addNull(java.util.List)` method.
      Specified by:
        `add` in interface `MultivaluedMap<K,V>`
      Parameters:
        `key` - the key
        `value` - the value to be added.

    - #### addAll

          public final void addAll(K key,
                    V... newValues)

      Add multiple values to the current list of values for the supplied key. If the supplied array of new values is empty, method returns immediately. Method throws a `NullPointerException` if the supplied array of values is `null`.

      NOTE: This implementation ignores `null` values; Any of the supplied values of `null` is ignored and not added to the value list. Overriding implementations may modify this behavior by redefining the `addNull(java.util.List)` method.
      Specified by:
        `addAll` in interface `MultivaluedMap<K,V>`
      Parameters:
        `key` - the key.
        `newValues` - the values to be added.
      Throws:
        `NullPointerException` - if the supplied array of new values is `null`.

    - #### addAll

          public final void addAll(K key,
                    List<V> valueList)

      Add all the values from the supplied value list to the current list of values for the supplied key. If the supplied value list is empty, method returns immediately. Method throws a `NullPointerException` if the supplied array of values is `null`.

      NOTE: This implementation ignores `null` values; Any `null` value in the supplied value list is ignored and not added to the value list. Overriding implementations may modify this behavior by redefining the `addNull(java.util.List)` method.
      Specified by:
        `addAll` in interface `MultivaluedMap<K,V>`
      Parameters:
        `key` - the key.
        `valueList` - the list of values to be added.
      Throws:
        `NullPointerException` - if the supplied value list is `null`.

    - #### getFirst

          public final V getFirst(K key)

      Description copied from interface: `MultivaluedMap`
      A shortcut to get the first value of the supplied key.
      Specified by:
        `getFirst` in interface `MultivaluedMap<K,V>`
      Parameters:
        `key` - the key
      Returns:
        the first value for the specified key or null if the key is not in the map.

    - #### addFirst

          public final void addFirst(K key,
                      V value)

      Add a value to the first position in the current list of values for the supplied key.

      NOTE: This implementation ignores `null` values; A supplied value of `null` is ignored and not added to the purged value list. Overriding implementations may modify this behavior by redefining the `addFirstNull(java.util.List)` method.
      Specified by:
        `addFirst` in interface `MultivaluedMap<K,V>`
      Parameters:
        `key` - the key
        `value` - the value to be added.

    - #### getValues

          protected final List<V> getValues(K key)

      Return a non-null list of values for a given key. The returned list may be empty.

      If there is no entry for the key in the map, a new empty `List` instance is created, registered within the map to hold the values of the key and returned from the method.
      Parameters:
        `key` - the key.
      Returns:
        value list registered with the key. The method is guaranteed to never return `null`.

    - #### toString

          public String toString()

      Overrides:
        `toString` in class `Object`

    - #### hashCode

          public int hashCode()

      This implementation delegates the method call to to the the underlying [key, multi-value] store.
      Specified by:
        `hashCode` in interface `Map<K,List<V>>`
      Overrides:
        `hashCode` in class `Object`
      Returns:
        a hash code value for the underlying [key, multi-value] store.

    - #### equals

          public boolean equals(Object o)

      This implementation delegates the method call to to the the underlying [key, multi-value] store.
      Specified by:
        `equals` in interface `Map<K,List<V>>`
      Overrides:
        `equals` in class `Object`
      Returns:
        `true` if the specified object is equal to the underlying [key, multi-value] store, `false` otherwise.

    - #### values

          public Collection<List<V>> values()

      Specified by:
        `values` in interface `Map<K,List<V>>`

    - #### size

          public int size()

      Specified by:
        `size` in interface `Map<K,List<V>>`

    - #### remove

          public List<V> remove(Object key)

      Specified by:
        `remove` in interface `Map<K,List<V>>`

    - #### putAll

          public void putAll(Map<? extends K,? extends List<V>> m)

      Specified by:
        `putAll` in interface `Map<K,List<V>>`

    - #### put

          public List<V> put(K key,
                    List<V> value)

      Specified by:
        `put` in interface `Map<K,List<V>>`

    - #### keySet

          public Set<K> keySet()

      Specified by:
        `keySet` in interface `Map<K,List<V>>`

    - #### isEmpty

          public boolean isEmpty()

      Specified by:
        `isEmpty` in interface `Map<K,List<V>>`

    - #### get

          public List<V> get(Object key)

      Specified by:
        `get` in interface `Map<K,List<V>>`

    - #### entrySet

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

      Specified by:
        `entrySet` in interface `Map<K,List<V>>`

    - #### containsValue

          public boolean containsValue(Object value)

      Specified by:
        `containsValue` in interface `Map<K,List<V>>`

    - #### containsKey

          public boolean containsKey(Object key)

      Specified by:
        `containsKey` in interface `Map<K,List<V>>`

    - #### clear

          public void clear()

      Specified by:
        `clear` in interface `Map<K,List<V>>`

    - #### equalsIgnoreValueOrder

          public boolean equalsIgnoreValueOrder(MultivaluedMap<K,V> omap)

      Description copied from interface: `MultivaluedMap`
      Compare the specified map with this map for equality modulo the order of values for each key. Specifically, the values associated with each key are compared as if they were ordered lists.
      Specified by:
        `equalsIgnoreValueOrder` in interface `MultivaluedMap<K,V>`
      Parameters:
        `omap` - map to be compared to this one.
      Returns:
        true if the maps are equal modulo value ordering.

Copyright © 2014. All Rights Reserved.