K
- the type of keys maintained by this map.V
- the type of mapped values.public abstract class AbstractMultivaluedMap<K,V> extends java.lang.Object implements MultivaluedMap<K,V>, java.io.Serializable
MultivaluedMap
that is backed by a [key, multi-value] store represented
as a Map<K, List<V>>
.Modifier and Type | Field and Description |
---|---|
protected java.util.Map<K,java.util.List<V>> |
store
Backing store for the [key, multi-value] pairs.
|
Constructor and Description |
---|
AbstractMultivaluedMap(java.util.Map<K,java.util.List<V>> store)
Initialize the backing store in the abstract parent multivalued map implementation.
|
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,
java.util.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(java.util.List<V> values)
Define the behavior for adding a
null values to the first position in the value list. |
protected void |
addNull(java.util.List<V> values)
Define the behavior for adding a
null values to the value list. |
void |
clear() |
boolean |
containsKey(java.lang.Object key) |
boolean |
containsValue(java.lang.Object value) |
java.util.Set<java.util.Map.Entry<K,java.util.List<V>>> |
entrySet() |
boolean |
equals(java.lang.Object o) |
boolean |
equalsIgnoreValueOrder(MultivaluedMap<K,V> omap)
Compare the specified map with this map for equality modulo the order of values for each key.
|
java.util.List<V> |
get(java.lang.Object key) |
V |
getFirst(K key)
A shortcut to get the first value of the supplied key.
|
protected java.util.List<V> |
getValues(K key)
Return a non-null list of values for a given key.
|
int |
hashCode() |
boolean |
isEmpty() |
java.util.Set<K> |
keySet() |
java.util.List<V> |
put(K key,
java.util.List<V> value) |
void |
putAll(java.util.Map<? extends K,? extends java.util.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.
|
java.util.List<V> |
remove(java.lang.Object key) |
int |
size() |
java.lang.String |
toString() |
java.util.Collection<java.util.List<V>> |
values() |
public AbstractMultivaluedMap(java.util.Map<K,java.util.List<V>> store)
store
- the backing Map
to be used as a [key, multi-value] store. Must not be null
.java.lang.NullPointerException
- in case the underlying store
parameter is null
.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 ignoresnull
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.putSingle
in interface MultivaluedMap<K,V>
key
- the keyvalue
- the single value of the key. If the value is null
it will be ignored.protected void addNull(java.util.List<V> values)
Define the behavior for adding a null
values to the value list.
null
values are ignored. Overriding implementations may modify
this behavior by providing their own definitions of this method.values
- value list where the null
value addition is being requested.protected void addFirstNull(java.util.List<V> values)
Define the behavior for adding a null
values to the first position in the value list.
null
values are ignored. Overriding implementations may modify
this behavior by providing their own definitions of this method.values
- value list where the null
value addition is being requested.public final void add(K key, V value)
Add a value to the current list of values for the supplied key.
NOTE: This implementation ignoresnull
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.add
in interface MultivaluedMap<K,V>
key
- the keyvalue
- the value to be added.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
.
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.addAll
in interface MultivaluedMap<K,V>
key
- the key.newValues
- the values to be added.java.lang.NullPointerException
- if the supplied array of new values is null
.public final void addAll(K key, java.util.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
.
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.addAll
in interface MultivaluedMap<K,V>
key
- the key.valueList
- the list of values to be added.java.lang.NullPointerException
- if the supplied value list is null
.public final V getFirst(K key)
MultivaluedMap
getFirst
in interface MultivaluedMap<K,V>
key
- the keypublic 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 ignoresnull
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.addFirst
in interface MultivaluedMap<K,V>
key
- the keyvalue
- the value to be added.protected final java.util.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 emptyList
instance is created, registered within the map
to hold the values of the key and returned from the method.key
- the key.null
.public java.lang.String toString()
toString
in class java.lang.Object
public int hashCode()
This implementation delegates the method call to to the the underlying [key, multi-value] store.
public boolean equals(java.lang.Object o)
This implementation delegates the method call to to the the underlying [key, multi-value] store.
public java.util.Collection<java.util.List<V>> values()
public java.util.List<V> remove(java.lang.Object key)
public java.util.Set<K> keySet()
public boolean isEmpty()
public java.util.List<V> get(java.lang.Object key)
public boolean containsValue(java.lang.Object value)
public boolean containsKey(java.lang.Object key)
public boolean equalsIgnoreValueOrder(MultivaluedMap<K,V> omap)
MultivaluedMap
equalsIgnoreValueOrder
in interface MultivaluedMap<K,V>
omap
- map to be compared to this one.