|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.eclipse.emf.common.util.BasicEMap<K,V>
public class BasicEMap<K,V>
A highly extensible map implementation.
| Nested Class Summary | |
|---|---|
protected class |
BasicEMap.BasicEMapIterator<U>
An iterator over the map entry data. |
protected class |
BasicEMap.BasicEMapKeyIterator
An iterator over the map key data. |
protected class |
BasicEMap.BasicEMapValueIterator
An iterator over the map value data. |
protected class |
BasicEMap.DelegatingMap
|
static interface |
BasicEMap.Entry<K,V>
An extended implementation interface for caching hash values and for updating an entry that may be manufactured as a uninitialized instance by a factory. |
protected class |
BasicEMap.EntryImpl
A simple and obvious entry implementation. |
protected static class |
BasicEMap.View<K,V>
An implementation class to hold the views. |
| Nested classes/interfaces inherited from interface org.eclipse.emf.common.util.EMap |
|---|
EMap.InternalMapView<K,V> |
| Field Summary | |
|---|---|
protected EList<BasicEMap.Entry<K,V>> |
delegateEList
The underlying list of entries. |
protected BasicEList<BasicEMap.Entry<K,V>>[] |
entryData
The array of entry lists into which the hash codes are indexed. |
protected int |
modCount
The modification indicator used to ensure iterator integrity. |
protected int |
size
The size of the map. |
protected BasicEMap.View<K,V> |
view
The various alternative views of the map. |
| Constructor Summary | |
|---|---|
BasicEMap()
Creates an empty instance. |
|
BasicEMap(int initialCapacity)
Creates an empty instance with the given capacity. |
|
BasicEMap(java.util.Map<? extends K,? extends V> map)
Creates an instance that is a copy of the map. |
|
| Method Summary | ||
|---|---|---|
void |
add(int index,
java.util.Map.Entry<K,V> object)
Delegates to delegateEList. |
|
boolean |
add(java.util.Map.Entry<K,V> object)
Delegates to delegateEList. |
|
boolean |
addAll(java.util.Collection<? extends java.util.Map.Entry<K,V>> collection)
Delegates to delegateEList. |
|
boolean |
addAll(int index,
java.util.Collection<? extends java.util.Map.Entry<K,V>> collection)
Delegates to delegateEList. |
|
void |
clear()
Delegates to delegateEList. |
|
java.lang.Object |
clone()
Returns a shallow copy of this map. |
|
boolean |
contains(java.lang.Object object)
Delegates to delegateEList. |
|
boolean |
containsAll(java.util.Collection<?> collection)
Delegates to delegateEList. |
|
boolean |
containsKey(java.lang.Object key)
Returns whether the key is associated with a value. |
|
boolean |
containsValue(java.lang.Object value)
Returns whether the value is associated with a key. |
|
protected void |
didAdd(BasicEMap.Entry<K,V> entry)
Called to indicate that the entry has been added. |
|
protected void |
didClear(BasicEList<BasicEMap.Entry<K,V>>[] oldEntryData)
Called to indicate that the map has been cleared. |
|
protected void |
didModify(BasicEMap.Entry<K,V> entry,
V oldValue)
Called to indicate that the entry has an updated value. |
|
protected void |
didRemove(BasicEMap.Entry<K,V> entry)
Called to indicate that the entry has been removed. |
|
protected void |
doClear()
Clears the map. |
|
protected void |
doMove(BasicEMap.Entry<K,V> entry)
Increments the modification count. |
|
protected void |
doPut(BasicEMap.Entry<K,V> entry)
Adds the new entry to the map. |
|
protected void |
doRemove(BasicEMap.Entry<K,V> entry)
Removes the entry from the map. |
|
protected void |
ensureEntryDataExists()
Ensures that the entry data is created and is populated with contents of the delegate list. |
|
protected BasicEMap.Entry<K,V> |
entryForKey(int index,
int hash,
java.lang.Object key)
Called to return the entry given the index, the hash, and the key. |
|
protected int |
entryIndexForKey(int index,
int hash,
java.lang.Object key)
Called to return the entry list index given the index, the hash, and the key. |
|
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet()
Returns a set view of the entries. |
|
boolean |
equals(java.lang.Object object)
|
|
BasicEMap.Entry<K,V> |
get(int index)
Delegates to delegateEList. |
|
V |
get(java.lang.Object key)
Returns the value associated with the key. |
|
protected boolean |
grow(int minimumCapacity)
Grows the capacity of the map to ensure that no additional growth is needed until the size exceeds the specified minimun capacity. |
|
int |
hashCode()
|
|
protected int |
hashOf(java.lang.Object key)
Called to return the hash code of the key. |
|
protected int |
indexOf(int hash)
Called to return the entry data index corresponding to the hash code. |
|
int |
indexOf(java.lang.Object object)
Delegates to delegateEList. |
|
int |
indexOfKey(java.lang.Object key)
Returns the index in the list of the entry with the given key, or -1, if there is no such entry. |
|
protected void |
initializeDelegateEList()
Initializes the delegateEList. |
|
boolean |
isEmpty()
Returns whether the map has zero size. |
|
java.util.Iterator<java.util.Map.Entry<K,V>> |
iterator()
Delegates to delegateEList. |
|
java.util.Set<K> |
keySet()
Returns a set view of the keys of the entries. |
|
int |
lastIndexOf(java.lang.Object object)
Delegates to delegateEList. |
|
java.util.ListIterator<java.util.Map.Entry<K,V>> |
listIterator()
Delegates to delegateEList. |
|
java.util.ListIterator<java.util.Map.Entry<K,V>> |
listIterator(int index)
Delegates to delegateEList. |
|
java.util.Map<K,V> |
map()
Returns a map view. |
|
java.util.Map.Entry<K,V> |
move(int targetIndex,
int sourceIndex)
Delegates to delegateEList. |
|
void |
move(int index,
java.util.Map.Entry<K,V> object)
Delegates to delegateEList. |
|
protected BasicEMap.Entry<K,V> |
newEntry(int hash,
K key,
V value)
Returns a new entry. |
|
protected BasicEList<BasicEMap.Entry<K,V>>[] |
newEntryData(int capacity)
Returns new allocated entry data storage. |
|
protected BasicEList<BasicEMap.Entry<K,V>> |
newList()
Returns a new allocated list of entries. |
|
V |
put(K key,
V value)
Associates the key with the value and returns the value previously associated with the key, or null. |
|
void |
putAll(EMap<? extends K,? extends V> map)
Puts each Map.Entry of the given map into this one. |
|
void |
putAll(java.util.Map<? extends K,? extends V> map)
Puts each Map.Entry of the given map into this one. |
|
protected V |
putEntry(BasicEMap.Entry<K,V> entry,
V value)
Sets the value of the entry, and returns the former value. |
|
java.util.Map.Entry<K,V> |
remove(int index)
Delegates to delegateEList. |
|
boolean |
remove(java.lang.Object object)
Delegates to delegateEList. |
|
boolean |
removeAll(java.util.Collection<?> collection)
Delegates to delegateEList. |
|
protected V |
removeEntry(int index,
int entryIndex)
Removes the fully indexed entry from the map and returns it's value. |
|
V |
removeKey(java.lang.Object key)
Disassociates the key from its value, and returns the value formerly associated with the key. |
|
protected V |
resolve(K key,
V value)
Resolves the value associated with the key and returns the result. |
|
boolean |
retainAll(java.util.Collection<?> collection)
Delegates to delegateEList. |
|
java.util.Map.Entry<K,V> |
set(int index,
java.util.Map.Entry<K,V> object)
Delegates to delegateEList. |
|
int |
size()
Returns the number of entries in the map. |
|
java.util.List<java.util.Map.Entry<K,V>> |
subList(int start,
int end)
Delegates to delegateEList. |
|
java.lang.Object[] |
toArray()
Delegates to delegateEList. |
|
|
toArray(T[] array)
Delegates to delegateEList. |
|
java.lang.String |
toString()
Delegates to delegateEList. |
|
protected boolean |
useEqualsForKey()
Returns whether equals rather than == should be used to compare keys. |
|
protected boolean |
useEqualsForValue()
Returns whether equals rather than == should be used to compare values. |
|
protected void |
validateKey(K key)
Validates a new key. |
|
protected void |
validateValue(V value)
Validates a new key. |
|
java.util.Collection<V> |
values()
Returns a collection view the values of the entries. |
|
| Methods inherited from class java.lang.Object |
|---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
| Field Detail |
|---|
protected transient EList<BasicEMap.Entry<K,V>> delegateEList
protected int size
protected transient BasicEList<BasicEMap.Entry<K,V>>[] entryData
protected transient int modCount
protected transient BasicEMap.View<K,V> view
| Constructor Detail |
|---|
public BasicEMap()
public BasicEMap(int initialCapacity)
initialCapacity - the initial capacity of the map before it must grow.
java.lang.IllegalArgumentException - if the initialCapacity is negative.public BasicEMap(java.util.Map<? extends K,? extends V> map)
map - the initial contents of the map.| Method Detail |
|---|
protected void initializeDelegateEList()
delegateEList.
This implementation illustrates the precise pattern that is used to
delegate a list implementation's callback methods to the map implementation.
protected BasicEList<BasicEMap.Entry<K,V>>[] newEntryData(int capacity)
capacity - the capacity of storage needed.
protected void ensureEntryDataExists()
protected BasicEList<BasicEMap.Entry<K,V>> newList()
newEntry.
newEntry(int, Object, Object)
protected BasicEMap.Entry<K,V> newEntry(int hash,
K key,
V value)
validated and the value is validated.
Clients may override this to create typed storage.
The type must be kept in synch with newEntry.
hash - the cached hash code of the key.key - the key.value - the value.
newList()
protected V putEntry(BasicEMap.Entry<K,V> entry,
V value)
validated.
entry - the entry.value - the value.
null.protected boolean useEqualsForKey()
equals rather than == should be used to compare keys.
The default is to return true but clients can optimize performance by returning false.
The performance difference is highly significant.
equals rather than == should be used to compare keys.protected boolean useEqualsForValue()
equals rather than == should be used to compare values.
The default is to return true but clients can optimize performance by returning false.
The performance difference is highly significant.
equals rather than == should be used to compare values.
protected V resolve(K key,
V value)
value;
clients can use this to transform objects as they are fetched.
key - the key of an entry.value - the value of an entry.
protected void validateKey(K key)
key - the new key.
java.lang.IllegalArgumentException - if a constraint prevents the object from being added.protected void validateValue(V value)
value - the new value.
java.lang.IllegalArgumentException - if a constraint prevents the object from being added.protected void didAdd(BasicEMap.Entry<K,V> entry)
entry - the added entry.
protected void didModify(BasicEMap.Entry<K,V> entry,
V oldValue)
entry - the new entry.protected void didRemove(BasicEMap.Entry<K,V> entry)
entry - the removed entry.protected void didClear(BasicEList<BasicEMap.Entry<K,V>>[] oldEntryData)
didRemove for each entry;
clients can use this to monitor clearing of the map.
oldEntryData - the removed entries.public int size()
size in interface java.util.Collection<java.util.Map.Entry<K,V>>size in interface java.util.List<java.util.Map.Entry<K,V>>public boolean isEmpty()
isEmpty in interface java.util.Collection<java.util.Map.Entry<K,V>>isEmpty in interface java.util.List<java.util.Map.Entry<K,V>>public int indexOfKey(java.lang.Object key)
EMap-1, if there is no such entry.
indexOfKey in interface EMap<K,V>key - a key.
public boolean containsKey(java.lang.Object key)
EMap
containsKey in interface EMap<K,V>key - a key associated with a value.
public boolean containsValue(java.lang.Object value)
EMap
containsValue in interface EMap<K,V>value - a value associated with a key.
public V get(java.lang.Object key)
EMapnull.
get in interface EMap<K,V>key - the key of the value.
public V put(K key,
V value)
EMapnull.
The key, the value, or both may be null.
Either the existing entry is updated,
or a new entry is added to the end of the list.
put in interface EMap<K,V>key - the key of the value.value - the value associated with the key.
null.protected void doPut(BasicEMap.Entry<K,V> entry)
entry - the new entry.public V removeKey(java.lang.Object key)
EMap
removeKey in interface EMap<K,V>key - the key of a value.
protected void doRemove(BasicEMap.Entry<K,V> entry)
entry - an entry in the map.
protected V removeEntry(int index,
int entryIndex)
index - the index in the entry dataentryIndex - the index in the list of entries.
public void putAll(java.util.Map<? extends K,? extends V> map)
EMapMap.Entry of the given map into this one.
putAll in interface EMap<K,V>map - the map of entries.EMap.put(K, V)public void putAll(EMap<? extends K,? extends V> map)
EMapMap.Entry of the given map into this one.
putAll in interface EMap<K,V>map - the map of entries.EMap.put(K, V)protected void doClear()
protected void doMove(BasicEMap.Entry<K,V> entry)
public java.lang.Object clone()
clone in class java.lang.Objectpublic java.util.Map<K,V> map()
EMap
map in interface EMap<K,V>public java.util.Set<K> keySet()
EMap
keySet in interface EMap<K,V>public java.util.Collection<V> values()
EMap
values in interface EMap<K,V>public java.util.Set<java.util.Map.Entry<K,V>> entrySet()
EMap
entrySet in interface EMap<K,V>protected int hashOf(java.lang.Object key)
key - the key.
protected int indexOf(int hash)
hash - the hash code.
protected BasicEMap.Entry<K,V> entryForKey(int index,
int hash,
java.lang.Object key)
index - the entry data index of the key.hash - the hash code of the key.key - the key.
protected int entryIndexForKey(int index,
int hash,
java.lang.Object key)
index - the entry data index of the key.hash - the hash code of the key.key - the key.
protected boolean grow(int minimumCapacity)
public boolean contains(java.lang.Object object)
delegateEList.
contains in interface java.util.Collection<java.util.Map.Entry<K,V>>contains in interface java.util.List<java.util.Map.Entry<K,V>>public boolean containsAll(java.util.Collection<?> collection)
delegateEList.
containsAll in interface java.util.Collection<java.util.Map.Entry<K,V>>containsAll in interface java.util.List<java.util.Map.Entry<K,V>>public int indexOf(java.lang.Object object)
delegateEList.
indexOf in interface java.util.List<java.util.Map.Entry<K,V>>public int lastIndexOf(java.lang.Object object)
delegateEList.
lastIndexOf in interface java.util.List<java.util.Map.Entry<K,V>>public java.lang.Object[] toArray()
delegateEList.
toArray in interface java.util.Collection<java.util.Map.Entry<K,V>>toArray in interface java.util.List<java.util.Map.Entry<K,V>>public <T> T[] toArray(T[] array)
delegateEList.
toArray in interface java.util.Collection<java.util.Map.Entry<K,V>>toArray in interface java.util.List<java.util.Map.Entry<K,V>>public BasicEMap.Entry<K,V> get(int index)
delegateEList.
get in interface java.util.List<java.util.Map.Entry<K,V>>
public java.util.Map.Entry<K,V> set(int index,
java.util.Map.Entry<K,V> object)
delegateEList.
set in interface java.util.List<java.util.Map.Entry<K,V>>public boolean add(java.util.Map.Entry<K,V> object)
delegateEList.
add in interface java.util.Collection<java.util.Map.Entry<K,V>>add in interface java.util.List<java.util.Map.Entry<K,V>>
public void add(int index,
java.util.Map.Entry<K,V> object)
delegateEList.
add in interface java.util.List<java.util.Map.Entry<K,V>>public boolean addAll(java.util.Collection<? extends java.util.Map.Entry<K,V>> collection)
delegateEList.
addAll in interface java.util.Collection<java.util.Map.Entry<K,V>>addAll in interface java.util.List<java.util.Map.Entry<K,V>>
public boolean addAll(int index,
java.util.Collection<? extends java.util.Map.Entry<K,V>> collection)
delegateEList.
addAll in interface java.util.List<java.util.Map.Entry<K,V>>public boolean remove(java.lang.Object object)
delegateEList.
remove in interface java.util.Collection<java.util.Map.Entry<K,V>>remove in interface java.util.List<java.util.Map.Entry<K,V>>public boolean removeAll(java.util.Collection<?> collection)
delegateEList.
removeAll in interface java.util.Collection<java.util.Map.Entry<K,V>>removeAll in interface java.util.List<java.util.Map.Entry<K,V>>public java.util.Map.Entry<K,V> remove(int index)
delegateEList.
remove in interface java.util.List<java.util.Map.Entry<K,V>>public boolean retainAll(java.util.Collection<?> collection)
delegateEList.
retainAll in interface java.util.Collection<java.util.Map.Entry<K,V>>retainAll in interface java.util.List<java.util.Map.Entry<K,V>>public void clear()
delegateEList.
clear in interface java.util.Collection<java.util.Map.Entry<K,V>>clear in interface java.util.List<java.util.Map.Entry<K,V>>
public void move(int index,
java.util.Map.Entry<K,V> object)
delegateEList.
move in interface EList<java.util.Map.Entry<K,V>>index - the position of the object after the move.object - the object to move.
public java.util.Map.Entry<K,V> move(int targetIndex,
int sourceIndex)
delegateEList.
move in interface EList<java.util.Map.Entry<K,V>>targetIndex - the position of the object after the move.sourceIndex - the position of the object before the move.
public java.util.Iterator<java.util.Map.Entry<K,V>> iterator()
delegateEList.
iterator in interface java.lang.Iterable<java.util.Map.Entry<K,V>>iterator in interface java.util.Collection<java.util.Map.Entry<K,V>>iterator in interface java.util.List<java.util.Map.Entry<K,V>>public java.util.ListIterator<java.util.Map.Entry<K,V>> listIterator()
delegateEList.
listIterator in interface java.util.List<java.util.Map.Entry<K,V>>public java.util.ListIterator<java.util.Map.Entry<K,V>> listIterator(int index)
delegateEList.
listIterator in interface java.util.List<java.util.Map.Entry<K,V>>
public java.util.List<java.util.Map.Entry<K,V>> subList(int start,
int end)
delegateEList.
subList in interface java.util.List<java.util.Map.Entry<K,V>>public int hashCode()
hashCode in interface java.util.Collection<java.util.Map.Entry<K,V>>hashCode in interface java.util.List<java.util.Map.Entry<K,V>>hashCode in class java.lang.Objectpublic boolean equals(java.lang.Object object)
equals in interface java.util.Collection<java.util.Map.Entry<K,V>>equals in interface java.util.List<java.util.Map.Entry<K,V>>equals in class java.lang.Objectpublic java.lang.String toString()
delegateEList.
toString in class java.lang.Object
|
Copyright 2001-2006 IBM Corporation and others. All Rights Reserved. |
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||