@Deprecated
public abstract class CachingMapDecorator<K,V>
extends java.lang.Object
implements java.util.Map<K,V>, java.io.Serializable
This class is an abstract template. Caching Map implementations
should subclass and override the create(key)
method which
encapsulates expensive creation of a new object.
Modifier and Type | Field and Description |
---|---|
private static java.lang.Object |
NULL_VALUE
Deprecated.
|
private boolean |
synchronize
Deprecated.
|
private java.util.Map<K,java.lang.Object> |
targetMap
Deprecated.
|
private boolean |
weak
Deprecated.
|
Constructor and Description |
---|
CachingMapDecorator()
Deprecated.
Create a CachingMapDecorator with strong keys,
using an underlying synchronized Map.
|
CachingMapDecorator(boolean weak)
Deprecated.
Create a CachingMapDecorator,
using an underlying synchronized Map.
|
CachingMapDecorator(boolean weak,
int size)
Deprecated.
Create a CachingMapDecorator with initial size,
using an underlying synchronized Map.
|
CachingMapDecorator(java.util.Map<K,V> targetMap)
Deprecated.
Create a CachingMapDecorator for the given Map.
|
CachingMapDecorator(java.util.Map<K,V> targetMap,
boolean synchronize,
boolean weak)
Deprecated.
Create a CachingMapDecorator for the given Map.
|
Modifier and Type | Method and Description |
---|---|
void |
clear()
Deprecated.
|
boolean |
containsKey(java.lang.Object key)
Deprecated.
|
boolean |
containsValue(java.lang.Object value)
Deprecated.
|
private boolean |
containsValueOrReference(java.lang.Object value)
Deprecated.
|
protected abstract V |
create(K key)
Deprecated.
Create a value to cache for the given key.
|
private java.util.Set<java.util.Map.Entry<K,V>> |
entryCopy()
Deprecated.
|
java.util.Set<java.util.Map.Entry<K,V>> |
entrySet()
Deprecated.
|
V |
get(java.lang.Object key)
Deprecated.
Get value for key.
|
boolean |
isEmpty()
Deprecated.
|
java.util.Set<K> |
keySet()
Deprecated.
|
V |
put(K key,
V value)
Deprecated.
Put an object into the cache, possibly wrapping it with a weak
reference.
|
void |
putAll(java.util.Map<? extends K,? extends V> map)
Deprecated.
|
V |
remove(java.lang.Object key)
Deprecated.
|
int |
size()
Deprecated.
|
java.lang.String |
toString()
Deprecated.
|
private V |
unwrapReturnValue(java.lang.Object value)
Deprecated.
|
protected boolean |
useWeakValue(K key,
V value)
Deprecated.
Decide whether to use a weak reference for the value of
the given key-value pair.
|
java.util.Collection<V> |
values()
Deprecated.
|
private java.util.Collection<V> |
valuesCopy()
Deprecated.
|
private static java.lang.Object NULL_VALUE
private final java.util.Map<K,java.lang.Object> targetMap
private final boolean synchronize
private final boolean weak
public CachingMapDecorator()
public CachingMapDecorator(boolean weak)
weak
- whether to use weak references for keys and valuespublic CachingMapDecorator(boolean weak, int size)
weak
- whether to use weak references for keys and valuessize
- the initial cache sizepublic CachingMapDecorator(java.util.Map<K,V> targetMap)
The passed-in Map won't get synchronized explicitly, so make sure to pass in a properly synchronized Map, if desired.
targetMap
- the Map to decoratepublic CachingMapDecorator(java.util.Map<K,V> targetMap, boolean synchronize, boolean weak)
The passed-in Map won't get synchronized explicitly unless you specify "synchronize" as "true".
targetMap
- the Map to decoratesynchronize
- whether to synchronize on the given Mapweak
- whether to use weak references for valuespublic boolean containsKey(java.lang.Object key)
public boolean containsValue(java.lang.Object value)
private boolean containsValueOrReference(java.lang.Object value)
public V remove(java.lang.Object key)
private V unwrapReturnValue(java.lang.Object value)
public java.util.Set<K> keySet()
public java.util.Collection<V> values()
private java.util.Collection<V> valuesCopy()
public V put(K key, V value)
put
in interface java.util.Map<K,V>
useWeakValue(Object, Object)
protected boolean useWeakValue(K key, V value)
key
- the candidate keyvalue
- the candidate valuetrue
in order to use a weak reference;
false
otherwise.public V get(java.lang.Object key)
This implementation is not synchronized: This is highly concurrent but does not guarantee unique instances in the cache, as multiple values for the same key could get created in parallel. Consider overriding this method to synchronize it, if desired.
get
in interface java.util.Map<K,V>
create(Object)
protected abstract V create(K key)
get
if there is no value cached already.key
- the cache keyget(Object)
public java.lang.String toString()
toString
in class java.lang.Object