@GwtCompatible public abstract class ForwardingListMultimap<K,V> extends ForwardingMultimap<K,V> implements ListMultimap<K,V>
A list multimap which forwards all its method calls to another list multimap. Subclasses should override one or more methods to modify the behavior of the backing multimap as desired per the decorator pattern.
Modifier | Constructor and Description |
---|---|
protected |
ForwardingListMultimap()
Constructor for use by subclasses.
|
Modifier and Type | Method and Description |
---|---|
protected abstract ListMultimap<K,V> |
delegate()
Returns the backing delegate instance that methods are forwarded to.
|
List<V> |
get(K key)
Returns a view collection of the values associated with
key in this multimap, if any. |
List<V> |
removeAll(Object key)
Removes all values associated with the key
key . |
List<V> |
replaceValues(K key,
Iterable<? extends V> values)
Stores a collection of values with the same key, replacing any existing values for that key.
|
asMap, clear, containsEntry, containsKey, containsValue, entries, equals, hashCode, isEmpty, keys, keySet, put, putAll, putAll, remove, size, values
toString
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
asMap, equals
protected ForwardingListMultimap()
Constructor for use by subclasses.
protected abstract ListMultimap<K,V> delegate()
ForwardingObject
Returns the backing delegate instance that methods are forwarded to. Abstract subclasses generally override this method with an abstract method that has a more specific return type, such as ForwardingSet.delegate()
. Concrete subclasses override this method to supply the instance being decorated.
delegate
in class ForwardingMultimap<K,V>
public List<V> get(@Nullable K key)
Multimap
Returns a view collection of the values associated with key
in this multimap, if any. Note that when containsKey(key)
is false, this returns an empty collection, not null
.
Changes to the returned collection will update the underlying multimap, and vice versa.
public List<V> removeAll(@Nullable Object key)
Multimap
Removes all values associated with the key key
.
Once this method returns, key
will not be mapped to any values, so it will not appear in Multimap.keySet()
, Multimap.asMap()
, or any other views.
removeAll
in interface ListMultimap<K,V>
removeAll
in interface Multimap<K,V>
removeAll
in class ForwardingMultimap<K,V>
public List<V> replaceValues(K key, Iterable<? extends V> values)
Multimap
Stores a collection of values with the same key, replacing any existing values for that key.
If values
is empty, this is equivalent to removeAll(key)
.
replaceValues
in interface ListMultimap<K,V>
replaceValues
in interface Multimap<K,V>
replaceValues
in class ForwardingMultimap<K,V>