org.springframework.cache.support
Class AbstractDelegatingCache<K,V>

java.lang.Object
  extended by org.springframework.cache.support.AbstractDelegatingCache<K,V>
All Implemented Interfaces:
Cache<K,V>
Direct Known Subclasses:
ConcurrentCache

public abstract class AbstractDelegatingCache<K,V>
extends Object
implements Cache<K,V>

Abstract base class delegating most of the Map-like methods to the underlying cache. Note:Allows null values to be stored, even if the underlying map does not support them.

Author:
Costin Leau

Field Summary
static Object NULL_HOLDER
           
 
Constructor Summary
AbstractDelegatingCache(D delegate)
          Creates a new instance using the given delegate.
AbstractDelegatingCache(D delegate, boolean allowNullValues)
          Creates a new instance using the given delegate.
 
Method Summary
 void clear()
          Removes all mappings from the cache.
 boolean containsKey(Object key)
          Returns true if this cache contains a mapping for the specified key.
protected  V filterNull(V val)
           
 V get(Object key)
          Returns the value to which this cache maps the specified key.
 boolean getAllowNullValues()
           
 V put(K key, V value)
          Associates the specified value with the specified key in this cache (optional operation).
 V remove(Object key)
          Removes the mapping for this key from this cache if it is present (optional operation).
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.springframework.cache.Cache
getName, getNativeCache, putIfAbsent, remove, replace, replace
 

Field Detail

NULL_HOLDER

public static final Object NULL_HOLDER
Constructor Detail

AbstractDelegatingCache

public AbstractDelegatingCache(D delegate)
Creates a new instance using the given delegate.

Type Parameters:
D - map type
Parameters:
delegate - map delegate

AbstractDelegatingCache

public AbstractDelegatingCache(D delegate,
                               boolean allowNullValues)
Creates a new instance using the given delegate.

Type Parameters:
D - map type
Parameters:
delegate - map delegate
allowNullValues - flag indicating whether null values are allowed or not
Method Detail

getAllowNullValues

public boolean getAllowNullValues()

clear

public void clear()
Description copied from interface: Cache
Removes all mappings from the cache.

Specified by:
clear in interface Cache<K,V>

containsKey

public boolean containsKey(Object key)
Description copied from interface: Cache
Returns true if this cache contains a mapping for the specified key. More formally, returns true if and only if this cache contains a mapping for a key k such that (key==null ? k==null : key.equals(k)). (There can be at most one such mapping.)

Specified by:
containsKey in interface Cache<K,V>
Parameters:
key - key whose presence in this cache is to be tested.
Returns:
true if this cache contains a mapping for the specified key.

get

public V get(Object key)
Description copied from interface: Cache
Returns the value to which this cache maps the specified key. Returns null if the cache contains no mapping for this key. A return value of null does not necessarily indicate that the cache contains no mapping for the key; it's also possible that the cache explicitly maps the key to null. The containsKey operation may be used to distinguish these two cases.

More formally, if this cache contains a mapping from a key k to a value v such that (key==null ? k==null : key.equals(k)), then this method returns v; otherwise it returns null. (There can be at most one such mapping.)

Specified by:
get in interface Cache<K,V>
Parameters:
key - key whose associated value is to be returned.
Returns:
the value to which this cache maps the specified key, or null if the cache contains no mapping for this key.
See Also:
Cache.containsKey(Object)

put

public V put(K key,
             V value)
Description copied from interface: Cache
Associates the specified value with the specified key in this cache (optional operation). If the cache previously contained a mapping for this key, the old value is replaced by the specified value. (A cache m is said to contain a mapping for a key k if and only if m.containsKey(k) would return true.))

Specified by:
put in interface Cache<K,V>
Parameters:
key - key with which the specified value is to be associated.
value - value to be associated with the specified key.
Returns:
previous value associated with specified key, or null if there was no mapping for key. A null return can also indicate that the cache previously associated null with the specified key, if the implementation supports null values.

remove

public V remove(Object key)
Description copied from interface: Cache
Removes the mapping for this key from this cache if it is present (optional operation). More formally, if this cache contains a mapping from key k to value v such that (key==null ? k==null : key.equals(k)), that mapping is removed. (The cache can contain at most one such mapping.)

Returns the value to which the cache previously associated the key, or null if the cache contained no mapping for this key. (A null return can also indicate that the cache previously associated null with the specified key if the implementation supports null values.) The cache will not contain a mapping for the specified key once the call returns.

Specified by:
remove in interface Cache<K,V>
Parameters:
key - key whose mapping is to be removed from the cache.
Returns:
previous value associated with specified key, or null if there was no mapping for key.

filterNull

protected V filterNull(V val)