|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.springframework.util.CachingMapDecorator
public class CachingMapDecorator
A simple decorator for a Map, encapsulating the workflow for caching expensive values in a target Map. Supports caching weak or strong keys.
This class is also an abstract template. Caching Map implementations
should subclass and override the create(key)
method which
encapsulates expensive creation of a new object.
Nested Class Summary |
---|
Nested classes/interfaces inherited from interface java.util.Map |
---|
Map.Entry<K,V> |
Field Summary | |
---|---|
protected static Object |
NULL_VALUE
|
Constructor Summary | |
---|---|
CachingMapDecorator()
Create a CachingMapDecorator with strong keys, using an underlying synchronized Map. |
|
CachingMapDecorator(boolean weak)
Create a CachingMapDecorator, using an underlying synchronized Map. |
|
CachingMapDecorator(boolean weak,
int size)
Create a CachingMapDecorator with initial size, using an underlying synchronized Map. |
|
CachingMapDecorator(Map targetMap)
Create a CachingMapDecorator for the given Map. |
|
CachingMapDecorator(Map targetMap,
boolean synchronize,
boolean weak)
Create a CachingMapDecorator for the given Map. |
Method Summary | |
---|---|
void |
clear()
|
boolean |
containsKey(Object key)
|
boolean |
containsValue(Object value)
|
protected Object |
create(Object key)
Create a value to cache for the given key. |
Set |
entrySet()
|
Object |
get(Object key)
Get value for key. |
boolean |
isEmpty()
|
Set |
keySet()
|
Object |
put(Object key,
Object value)
Put an object into the cache, possibly wrapping it with a weak reference. |
void |
putAll(Map map)
|
Object |
remove(Object key)
|
int |
size()
|
String |
toString()
|
protected boolean |
useWeakValue(Object key,
Object value)
Decide whether use a weak reference for the value of the given key-value pair. |
Collection |
values()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface java.util.Map |
---|
equals, hashCode |
Field Detail |
---|
protected static Object NULL_VALUE
Constructor Detail |
---|
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(Map 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(Map 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 valuesMethod Detail |
---|
public int size()
size
in interface Map
public boolean isEmpty()
isEmpty
in interface Map
public boolean containsKey(Object key)
containsKey
in interface Map
public boolean containsValue(Object value)
containsValue
in interface Map
public Object remove(Object key)
remove
in interface Map
public void putAll(Map map)
putAll
in interface Map
public void clear()
clear
in interface Map
public Set keySet()
keySet
in interface Map
public Collection values()
values
in interface Map
public Set entrySet()
entrySet
in interface Map
public Object put(Object key, Object value)
put
in interface Map
useWeakValue(Object, Object)
protected boolean useWeakValue(Object key, Object value)
key
- the candidate keyvalue
- the candidate value
true
in order to use a weak reference;
false
otherwise.public Object get(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 Map
create(Object)
protected Object create(Object key)
get
if there is no value cached already.
key
- the cache keyget(Object)
public String toString()
toString
in class Object
|
The Spring Framework | |||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |