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>
AMap
implementation that usesKeyedReference
instances (KeyedStrongReference
,KeyedSoftReference
,KeyedWeakReference
orKeyedPhantomReference
) as its values.A
ReferenceValueMap
can 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 class
ReferenceValueMap2.Soft<K,V>
static class
ReferenceValueMap2.Strong<K,V>
static class
ReferenceValueMap2.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 void
clear()
boolean
containsKey(java.lang.Object key)
boolean
containsValue(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 V
dereference(KeyedReference<K,V> ref)
java.util.Set<java.util.Map.Entry<K,V>>
entrySet()
V
get(java.lang.Object key)
protected int
internalPurgeQueue()
boolean
isEmpty()
protected void
purged(K key)
protected void
purgeQueue()
V
put(K key, V value)
V
remove(java.lang.Object key)
int
size()
-
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)
-
-