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:
- Map<K,V>
- Direct Known Subclasses:
- ReferenceValueMap, ReferenceValueMap2.Soft, ReferenceValueMap2.Strong, ReferenceValueMap2.Weak
- public abstract class ReferenceValueMap2<K,V>
- extends AbstractMap<K,V>
A Map
implementation that uses KeyedReference
instances (KeyedStrongReference
,
KeyedSoftReference
, KeyedWeakReference
or KeyedPhantomReference
) 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 map
Note: 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
Nested classes/interfaces inherited from interface java.util.Map |
Map.Entry<K,V> |
ReferenceValueMap2
public ReferenceValueMap2()
ReferenceValueMap2
public ReferenceValueMap2(Map<K,KeyedReference<K,V>> map)
size
public int size()
- Specified by:
size
in interface Map<K,V>
- Overrides:
size
in class AbstractMap<K,V>
isEmpty
public boolean isEmpty()
- Specified by:
isEmpty
in interface Map<K,V>
- Overrides:
isEmpty
in class AbstractMap<K,V>
containsKey
public boolean containsKey(Object key)
- Specified by:
containsKey
in interface Map<K,V>
- Overrides:
containsKey
in class AbstractMap<K,V>
containsValue
public boolean containsValue(Object value)
- Specified by:
containsValue
in interface Map<K,V>
- Overrides:
containsValue
in class AbstractMap<K,V>
get
public V get(Object key)
- Specified by:
get
in interface Map<K,V>
- Overrides:
get
in class AbstractMap<K,V>
put
public V put(K key,
V value)
- Specified by:
put
in interface Map<K,V>
- Overrides:
put
in class AbstractMap<K,V>
remove
public V remove(Object key)
- Specified by:
remove
in interface Map<K,V>
- Overrides:
remove
in class AbstractMap<K,V>
clear
public void clear()
- Specified by:
clear
in interface Map<K,V>
- Overrides:
clear
in class AbstractMap<K,V>
entrySet
public Set<Map.Entry<K,V>> entrySet()
- Specified by:
entrySet
in interface Map<K,V>
- Specified by:
entrySet
in class AbstractMap<K,V>
createQueue
protected ReferenceQueue<V> createQueue()
purgeQueue
protected void purgeQueue()
purged
protected void purged(K key)
dereference
protected V dereference(KeyedReference<K,V> ref)
createReference
protected abstract KeyedReference<K,V> createReference(K key,
V value,
ReferenceQueue<V> queue)
Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.