|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1) E13403-04 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object oracle.javatools.util.Maps.AbstractHashMap<K,V,E> oracle.javatools.util.Maps.AbstractLinkedHashMap<K,V,E> oracle.javatools.util.Maps.AbstractCacheMap<K,V,E>
public abstract static class Maps.AbstractCacheMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
Nested Class Summary | |
---|---|
static class |
Maps.AbstractCacheMap.MappingType
The types of references to values supported. |
static class |
Maps.AbstractCacheMap.ReferenceType
The types of references to values supported. |
Nested classes/interfaces inherited from interface java.util.Map |
---|
java.util.Map.Entry<K,V> |
Field Summary | |
---|---|
static Maps.AbstractCacheMap.MappingType |
CANONICAL
|
static Maps.AbstractCacheMap.ReferenceType |
HARD
|
static Maps.AbstractCacheMap.MappingType |
NONCANONICAL
|
static Maps.AbstractCacheMap.ReferenceType |
SOFT
|
static Maps.AbstractCacheMap.ReferenceType |
WEAK
|
Fields inherited from class oracle.javatools.util.Maps.AbstractHashMap |
---|
DEFAULT_INITIAL_CAPACITY, DEFAULT_LOAD_FACTOR, MAXIMUM_CAPACITY |
Constructor Summary | |
---|---|
Maps.AbstractCacheMap(Maps.CacheStrategy<K,V,E> strategy)
Constructs an empty cache map. |
Method Summary | |
---|---|
protected abstract E |
createDefaultEntry(int hashCode,
K key,
V value,
E next)
|
protected E |
createEntry(int hashCode,
K key,
V value,
E next)
Creates an entry for this map. |
protected abstract E |
createSoftEntry(int hashCode,
K key,
V value,
E next)
|
protected abstract E |
createWeakEntry(int hashCode,
K key,
V value,
E next)
|
protected void |
entryAccessed(E entry)
Invoked when the value of an existing entry is accessed by Maps.AbstractHashMap.get(java.lang.Object) . |
protected void |
entryAdded(E entry)
Invoked when a new entry is added to this map. |
protected void |
entryChanged(E oldEntry,
V oldValue,
E newEntry)
Invoked when the value of an existing entry is changed. |
protected void |
entryEvicted(E entry)
Invoked when an existing entry is evicted by Maps.AbstractLinkedHashMap.evictExistingEntry(E) ,
e.g., because Maps.AbstractLinkedHashMap.removeEldestEntry(E) returned true. |
protected void |
entryPurged(E entry)
Invoked when an existing entry is purged by Maps.AbstractHashMap.purgeEntry(E)
after its value has been garbage collected. |
protected void |
entryRemoved(E entry)
Invoked when an existing entry is removed by a remove method of this map, of a view collection of this map, or of an iterator of a view collection of this map |
protected void |
evictExistingEntry(E entry)
Evicts an existing entry from this map. |
Maps.AbstractCacheMap.MappingType |
getMappingType()
Gets the mapping type for this map. |
Maps.CacheStrategy<K,V,E> |
getStrategy()
Gets the strategy used by this map. |
Maps.AbstractCacheMap.ReferenceType |
getValueReferenceType()
Gets the value reference type for this map. |
protected void |
mapChanged()
Invoked when the map has changed. |
protected boolean |
removeEldestEntry(E eldest)
Gets whether to evict the eldest entry from this map. |
void |
setStrategy(Maps.CacheStrategy<K,V,E> strategy)
Sets the strategy used by this map. |
Methods inherited from class oracle.javatools.util.Maps.AbstractLinkedHashMap |
---|
clear, createEntryIterator, createEntrySetIterator, createKeySetIterator, createValuesIterator, getEldestEntry |
Methods inherited from class oracle.javatools.util.Maps.AbstractHashMap |
---|
addEntry, capacity, change, clone, containsKey, containsValue, entrySet, equals, get, getChangeCount, getEntry, getQueue, hashCode, isEmpty, keyEquals, keyHashCode, keySet, loadFactor, mapConstructed, mapInitialized, purge, purgeEntry, put, putAll, remove, removeExistingEntry, removeKey, size, toString, valueEquals, valueHashCode, values |
Methods inherited from class java.lang.Object |
---|
finalize, getClass, notify, notifyAll, wait, wait, wait |
Field Detail |
---|
public static final Maps.AbstractCacheMap.ReferenceType HARD
public static final Maps.AbstractCacheMap.ReferenceType SOFT
public static final Maps.AbstractCacheMap.ReferenceType WEAK
public static final Maps.AbstractCacheMap.MappingType CANONICAL
public static final Maps.AbstractCacheMap.MappingType NONCANONICAL
Constructor Detail |
---|
public Maps.AbstractCacheMap(Maps.CacheStrategy<K,V,E> strategy)
Method Detail |
---|
public void setStrategy(Maps.CacheStrategy<K,V,E> strategy)
public Maps.CacheStrategy<K,V,E> getStrategy()
public Maps.AbstractCacheMap.ReferenceType getValueReferenceType()
reference type
for this map.
public Maps.AbstractCacheMap.MappingType getMappingType()
mapping type
for this map.
protected final E createEntry(int hashCode, K key, V value, E next)
The Maps.AbstractCacheMap
implementation delegates to createDefaultEntry(int, K, V, E)
, createSoftEntry(int, K, V, E)
, or createWeakEntry(int, K, V, E)
as indicated by getValueReferenceType()
.
createEntry
in class Maps.AbstractHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
hashCode
- The hashCode of the key for this entry.key
- The key for this entry.value
- The value for this entry.next
- The entry to follow this entry in the entry chain.protected abstract E createDefaultEntry(int hashCode, K key, V value, E next)
protected abstract E createSoftEntry(int hashCode, K key, V value, E next)
protected abstract E createWeakEntry(int hashCode, K key, V value, E next)
protected final void mapChanged()
Maps.AbstractLinkedHashMap
Maps.AbstractHashMap.mapInitialized()
), it only changes when entries are added or
removed. This method is invoked before the associated Maps.AbstractHashMap.entryAdded(E)
, Maps.AbstractHashMap.entryRemoved(E)
, or Maps.AbstractHashMap.entryAccessed(E)
method is
invoked.
The Maps.AbstractHashMap
implementation does nothing.
For subclasses of Maps.AbstractLinkedHashMap
, this method is also
invoked when iteration order is by access and an entry is accessed.
Maps.AbstractLinkedHashMap
implementation does nothing.
mapChanged
in class Maps.AbstractLinkedHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
protected final void entryAdded(E entry)
Maps.AbstractHashMap
Maps.AbstractHashMap.mapInitialized()
), entries are only added
by Maps.AbstractHashMap.put(K, V)
.
The Maps.AbstractHashMap
implementation does nothing.
entryAdded
in class Maps.AbstractHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
protected final void entryChanged(E oldEntry, V oldValue, E newEntry)
Maps.AbstractHashMap
Maps.AbstractHashMap.mapInitialized()
), entries are only changed
by Maps.AbstractHashMap.put(K, V)
.
If the entry to change was mutable, its value is changed with Map.Entry#setValue
and oldEntry and newEntry are the
same object. If the entry to change was not mutable, a new entry
must be created and oldEntry and newEntry are
different objects.
When a client directly invokes the Map.Entry#setValue
method of
any of the Map.Entry
implementations provided in this class,
this method is not invoked (while this could be addressed, it would
require each entry instance to hold a reference to its map).
The Maps.AbstractHashMap
implementation does nothing.
entryChanged
in class Maps.AbstractHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
oldEntry
- The existing entry that changed.oldValue
- The old value of the entry.newEntry
- The new entry, which may be the same as the old.protected final void entryAccessed(E entry)
Maps.AbstractHashMap
Maps.AbstractHashMap.get(java.lang.Object)
.
Access to an entry by iterating a view collection of this map does
not cause this method to be invoked.
The Maps.AbstractHashMap
implementation does nothing.
entryAccessed
in class Maps.AbstractHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
protected final void entryRemoved(E entry)
Maps.AbstractHashMap
The Maps.AbstractHashMap
implementation never invokes Maps.AbstractHashMap.entryRemoved(E)
when entries are removed by the Maps.AbstractHashMap.clear()
method of
this map, or of a view collection of this map.
The Maps.AbstractHashMap
implementation does nothing.
entryRemoved
in class Maps.AbstractHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
protected final void entryPurged(E entry)
Maps.AbstractHashMap
Maps.AbstractHashMap.purgeEntry(E)
after its value has been garbage collected.
The Maps.AbstractHashMap
implementation only ever invokes
Maps.AbstractHashMap.entryPurged(E)
for entries which extend SoftReference
or
WeakReference
and which register themselves with the
ReferenceQueue
returned by Maps.AbstractHashMap.getQueue()
. Maps
provides four such classes: Maps.SoftEntry
, Maps.WeakEntry
, Maps.SoftLinkedEntry
, and Maps.WeakLinkedEntry
.
The Maps.AbstractHashMap
implementation does nothing.
entryPurged
in class Maps.AbstractHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
protected final void entryEvicted(E entry)
Maps.AbstractLinkedHashMap
Maps.AbstractLinkedHashMap.evictExistingEntry(E)
,
e.g., because Maps.AbstractLinkedHashMap.removeEldestEntry(E)
returned true.
The Maps.AbstractLinkedHashMap
implementation does nothing.
entryEvicted
in class Maps.AbstractLinkedHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
protected boolean removeEldestEntry(E eldest)
Maps.AbstractLinkedHashMap
Maps.AbstractHashMap.entryAdded(E)
is invoked. If
Maps.AbstractHashMap.entryAdded(E)
modifies the map, however, this method is not
invoked. The removal of the entry, if requested, causes the Maps.AbstractLinkedHashMap.entryEvicted(E)
method to be invoked, rather than the Maps.AbstractHashMap.entryRemoved(E)
method.
The Maps.AbstractLinkedHashMap
implementation returns false.
In an insertion-ordered map, the eldest entry is the least recently inserted one; in an access-ordered map, it is the least recently accessed entry.
This method is provided for compatibility with LinkedHashMap.removeEldestEntry(java.util.Map.Entry
.
removeEldestEntry
in class Maps.AbstractLinkedHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
eldest
- The eldest entry in the map.
protected void evictExistingEntry(E entry)
Maps.AbstractCacheMap
implementation ensures that, if this map is
canonical, the mapping represented by the evicted entry is retained for
as long as an external reference to the value exists.
evictExistingEntry
in class Maps.AbstractLinkedHashMap<K,V,E extends Maps.AbstractLinkedEntry<K,V>>
entry
- The entry to evict.
|
Oracle Fusion Middleware Java API Reference for Oracle Extension SDK Reference 11g Release 1 (11.1.1) E13403-04 |
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |