Package org.eclipse.net4j.util.ref
Class ReferenceValueMap2<K,V>
- java.lang.Object
-
- java.util.AbstractMap<K,V>
-
- org.eclipse.net4j.util.ref.ReferenceValueMap2<K,V>
-
- All Implemented Interfaces:
java.util.Map<K,V>
- Direct Known Subclasses:
ReferenceValueMap,ReferenceValueMap2.Soft,ReferenceValueMap2.Strong,ReferenceValueMap2.Weak
public abstract class ReferenceValueMap2<K,V> extends java.util.AbstractMap<K,V>AMapimplementation that usesKeyedReferenceinstances (KeyedStrongReference,KeyedSoftReference,KeyedWeakReferenceorKeyedPhantomReference) as its values.A
ReferenceValueMapcan be used to cache mappings until the value of the mapping is no longer reachable from outside of the mapNote: This map is not synchronized. If it is to be used by multiple threads concurrently the user is responsible for applying proper external synchronization!
- Since:
- 3.3
- Author:
- Eike Stepper
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classReferenceValueMap2.Soft<K,V>static classReferenceValueMap2.Strong<K,V>static classReferenceValueMap2.Weak<K,V>
-
Constructor Summary
Constructors Constructor Description ReferenceValueMap2()ReferenceValueMap2(java.util.Map<K,KeyedReference<K,V>> map)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclear()booleancontainsKey(java.lang.Object key)booleancontainsValue(java.lang.Object value)protected java.lang.ref.ReferenceQueue<V>createQueue()protected abstract KeyedReference<K,V>createReference(K key, V value, java.lang.ref.ReferenceQueue<V> queue)protected Vdereference(KeyedReference<K,V> ref)java.util.Set<java.util.Map.Entry<K,V>>entrySet()Vget(java.lang.Object key)protected intinternalPurgeQueue()booleanisEmpty()protected voidpurged(K key)protected voidpurgeQueue()Vput(K key, V value)Vremove(java.lang.Object key)intsize()-
Methods inherited from class java.util.AbstractMap
clone, equals, hashCode, keySet, putAll, toString, values
-
-
-
-
Constructor Detail
-
ReferenceValueMap2
public ReferenceValueMap2()
-
ReferenceValueMap2
public ReferenceValueMap2(java.util.Map<K,KeyedReference<K,V>> map)
-
-
Method Detail
-
size
public int size()
-
isEmpty
public boolean isEmpty()
-
containsKey
public boolean containsKey(java.lang.Object key)
-
containsValue
public boolean containsValue(java.lang.Object value)
-
get
public V get(java.lang.Object key)
-
remove
public V remove(java.lang.Object key)
-
clear
public void clear()
-
createQueue
protected java.lang.ref.ReferenceQueue<V> createQueue()
-
internalPurgeQueue
protected int internalPurgeQueue()
- Since:
- 3.7
-
purgeQueue
protected void purgeQueue()
-
purged
protected void purged(K key)
-
dereference
protected V dereference(KeyedReference<K,V> ref)
-
-