org.eclipse.net4j.util.ref
Class ReferenceValueMap<K,V>
java.lang.Object
java.util.AbstractMap<K,V>
org.eclipse.net4j.util.ref.ReferenceValueMap2<K,V>
org.eclipse.net4j.util.ref.ReferenceValueMap<K,V>
- All Implemented Interfaces:
- ConcurrentMap<K,V>, Map<K,V>
- Direct Known Subclasses:
- ReferenceValueMap.Soft, ReferenceValueMap.Strong, ReferenceValueMap.Weak
- public abstract class ReferenceValueMap<K,V>
- extends ReferenceValueMap2<K,V>
- implements ConcurrentMap<K,V>
A ConcurrentMap
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!
Nested classes/interfaces inherited from interface java.util.Map |
Map.Entry<K,V> |
Methods inherited from class org.eclipse.net4j.util.ref.ReferenceValueMap2 |
clear, containsKey, containsValue, createQueue, createReference, dereference, entrySet, get, isEmpty, purged, purgeQueue, put, remove, size |
Methods inherited from interface java.util.Map |
clear, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, remove, size, values |
ReferenceValueMap
public ReferenceValueMap()
ReferenceValueMap
public ReferenceValueMap(ConcurrentMap<K,KeyedReference<K,V>> map)
putIfAbsent
public V putIfAbsent(K key,
V value)
- Specified by:
putIfAbsent
in interface ConcurrentMap<K,V>
replace
public V replace(K key,
V value)
- Specified by:
replace
in interface ConcurrentMap<K,V>
replace
public boolean replace(K key,
V oldValue,
V newValue)
- Specified by:
replace
in interface ConcurrentMap<K,V>
remove
public boolean remove(Object key,
Object value)
- Specified by:
remove
in interface ConcurrentMap<K,V>
Copyright (c) 2011, 2012 Eike Stepper (Berlin, Germany) and others.