|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.modeshape.common.collection.AbstractMultimap<K,V>
K
- the key typeV
- the value typepublic abstract class AbstractMultimap<K,V>
A Multimap
implementation that uses an ArrayList
to store the values associated with a key. This implementation
allows duplicates.
Nested Class Summary | |
---|---|
protected class |
AbstractMultimap.EntriesCollection
|
protected class |
AbstractMultimap.EntryIterator
|
protected class |
AbstractMultimap.ValueIterator
|
protected class |
AbstractMultimap.ValuesCollection
|
protected class |
AbstractMultimap.WrappedCollection
|
protected class |
AbstractMultimap.WrappedKeySet
|
protected class |
AbstractMultimap.WrappedList
|
protected class |
AbstractMultimap.WrappedMap
|
protected class |
AbstractMultimap.WrappedSortedKeySet
|
Constructor Summary | |
---|---|
protected |
AbstractMultimap(Map<K,Collection<V>> entries)
|
Method Summary | |
---|---|
Map<K,Collection<V>> |
asMap()
Return a map view that associates each key with the corresponding values in the multimap. |
void |
clear()
Remove all key-value pairs from this multimap. |
boolean |
containsEntry(Object key,
Object value)
Determine whether this multimap contains the supplied key-value pair. |
boolean |
containsKey(K key)
Determine whether this multimap associates any values with the supplied key. |
boolean |
containsValue(Object value)
Determine whether this multimap associates at least one key with the supplied value. |
protected abstract Collection<V> |
createCollection()
|
protected Iterator<Map.Entry<K,V>> |
createEntryIterator()
Return an iterator over all entries in this multimap. |
protected Collection<V> |
createUnmodifiable(Collection<V> original)
|
protected abstract Collection<V> |
createUnmodifiableEmptyCollection()
|
Collection<Map.Entry<K,V>> |
entries()
Return a collection of all key-value pairs. |
boolean |
equals(Object obj)
|
Collection<V> |
get(K key)
Get the collection of values that are associated with the supplied key. |
protected Collection<V> |
getOrCreateCollection(K key)
|
int |
hashCode()
|
boolean |
isEmpty()
|
Set<K> |
keySet()
Return the set of keys in this multimap. |
boolean |
put(K key,
V value)
Associate the supplied value with the given key, returning true if the size of this multimap was increased. |
protected Map<K,Collection<V>> |
rawData()
|
boolean |
remove(K key,
V value)
Remove the supplied key-value pair from this multi-map. |
Collection<V> |
removeAll(K key)
Remove all of the key-value pairs that use the supplied key, returning the collection of values. |
protected boolean |
removeAllValuesForKey(Object key)
|
int |
size()
Return the number of key-value pairs in this multimap. |
String |
toString()
|
Collection<V> |
values()
Return a collection of all values in this multimap. |
protected Collection<V> |
wrapCollection(K key,
Collection<V> values)
|
protected Set<K> |
wrapKeySet()
|
protected List<V> |
wrapList(K key,
List<V> values)
|
protected Map<K,Collection<V>> |
wrapMap(Map<K,Collection<V>> map)
|
Methods inherited from class java.lang.Object |
---|
clone, finalize, getClass, notify, notifyAll, wait, wait, wait |
Constructor Detail |
---|
protected AbstractMultimap(Map<K,Collection<V>> entries)
Method Detail |
---|
protected Map<K,Collection<V>> rawData()
protected abstract Collection<V> createCollection()
protected abstract Collection<V> createUnmodifiableEmptyCollection()
protected Collection<V> createUnmodifiable(Collection<V> original)
public int size()
size
in interface Multimap<K,V>
Multimap.size()
public boolean isEmpty()
isEmpty
in interface Multimap<K,V>
Multimap.isEmpty()
public boolean containsKey(K key)
containsKey
in interface Multimap<K,V>
key
- the key
true
if there is at least one value associated with the supplied key, or false
otherwiseMultimap.containsKey(java.lang.Object)
public boolean containsValue(Object value)
containsValue
in interface Multimap<K,V>
value
- the value
true
if there is at least one key associated with the supplied value, or false
otherwiseMultimap.containsValue(java.lang.Object)
public boolean containsEntry(Object key, Object value)
containsEntry
in interface Multimap<K,V>
key
- the keyvalue
- the value
true
if this multimap contains an entry with the supplied key and value, or false
otherwiseMultimap.containsEntry(java.lang.Object, java.lang.Object)
public Collection<V> get(K key)
Changes to the returned collection will update the values that this multimap associates with the key.
get
in interface Multimap<K,V>
key
- the key
Multimap.get(java.lang.Object)
public boolean put(K key, V value)
Some implementations allow duplicate key-value pairs, and in these cases this method will always increase the size of the multimap and will thus always return true. Other implementations will not allow duplicate key-value pairs, and may return false if the multimap already contains the supplied key-value pair.
put
in interface Multimap<K,V>
key
- the keyvalue
- the value
true
if the size of this multimap was increased as a result of this call, or false
if the multimap
already contained the key-value pair and doesn't allow duplicatesMultimap.put(java.lang.Object, java.lang.Object)
protected Collection<V> getOrCreateCollection(K key)
public boolean remove(K key, V value)
remove
in interface Multimap<K,V>
key
- the keyvalue
- the value
true
if the size of this multimap was decreased as a result of this call, or false
if the multimap
did not contain the key-value pairMultimap.remove(java.lang.Object, java.lang.Object)
public Collection<V> removeAll(K key)
removeAll
in interface Multimap<K,V>
key
- the key
Multimap.removeAll(java.lang.Object)
protected boolean removeAllValuesForKey(Object key)
public int hashCode()
hashCode
in class Object
Object.hashCode()
public boolean equals(Object obj)
equals
in class Object
Object.equals(java.lang.Object)
public String toString()
toString
in class Object
Object.toString()
public Set<K> keySet()
keySet
in interface Multimap<K,V>
Multimap.keySet()
public void clear()
clear
in interface Multimap<K,V>
Multimap.clear()
public Map<K,Collection<V>> asMap()
setValue()
on its entries,
put
, or putAll
.
The collections returned by asMap().get(Object)
have the same behavior as those returned by Multimap.get(K)
.
asMap
in interface Multimap<K,V>
Multimap.asMap()
protected Iterator<Map.Entry<K,V>> createEntryIterator()
protected Collection<V> wrapCollection(K key, Collection<V> values)
protected List<V> wrapList(K key, List<V> values)
protected Map<K,Collection<V>> wrapMap(Map<K,Collection<V>> map)
protected Set<K> wrapKeySet()
public Collection<V> values()
values
in interface Multimap<K,V>
Multimap.values()
public Collection<Map.Entry<K,V>> entries()
add
or addAll
operations.
entries
in interface Multimap<K,V>
Multimap.entries()
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |