org.springframework.cache
Interface Cache<K,V>

All Known Implementing Classes:
AbstractDelegatingCache, ConcurrentCache, EhCacheCache

public interface Cache<K,V>

Interface that defines the common cache operations. Note: Due to the generic use of caching, it is recommended that implementations allow storage of null values (for example to cache methods that return null).

Author:
Costin Leau

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.
 V get(Object key)
          Returns the value to which this cache maps the specified key.
 String getName()
          Returns the cache name.
 Object getNativeCache()
          Returns the the native, underlying cache provider.
 V put(K key, V value)
          Associates the specified value with the specified key in this cache (optional operation).
 V putIfAbsent(K key, V value)
          If the specified key is not already associated with a value, associate it with the given value.
 V remove(Object key)
          Removes the mapping for this key from this cache if it is present (optional operation).
 boolean remove(Object key, Object value)
          Remove entry for key only if currently mapped to given value.
 V replace(K key, V value)
          Replace entry for key only if currently mapped to some value.
 boolean replace(K key, V oldValue, V newValue)
          Replace entry for key only if currently mapped to given value.
 

Method Detail

getName

String getName()
Returns the cache name.

Returns:
the cache name.

getNativeCache

Object getNativeCache()
Returns the the native, underlying cache provider.

Returns:

containsKey

boolean containsKey(Object key)
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.)

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

V get(Object key)
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.)

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:
containsKey(Object)

put

V put(K key,
      V value)
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.))

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.

putIfAbsent

V putIfAbsent(K key,
              V value)
If the specified key is not already associated with a value, associate it with the given value. This is equivalent to:
  if (!cache.containsKey(key)) 
     return cache.put(key, value);
  else
     return cache.get(key);
        

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

V remove(Object key)
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.

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.

remove

boolean remove(Object key,
               Object value)
Remove entry for key only if currently mapped to given value. Similar to:
   if ((cache.containsKey(key) && cache.get(key).equals(value)) {
      cache.remove(key);
      return true;
   } 
   else 
      return false;
 

Parameters:
key - key with which the specified value is associated.
value - value associated with the specified key.
Returns:
true if the value was removed, false otherwise

replace

boolean replace(K key,
                V oldValue,
                V newValue)
Replace entry for key only if currently mapped to given value. Similar to:
 
  if ((cache.containsKey(key) && cache.get(key).equals(oldValue)) {
     cache.put(key, newValue);
     return true;
 } else return false;
 

Parameters:
key - key with which the specified value is associated.
oldValue - value expected to be associated with the specified key.
newValue - value to be associated with the specified key.
Returns:
true if the value was replaced

replace

V replace(K key,
          V value)
Replace entry for key only if currently mapped to some value. Acts as
 
  if ((cache.containsKey(key)) {
     return cache.put(key, value);
 } else return null;
 
except that the action is performed atomically.

Parameters:
key - key with which the specified value is 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.

clear

void clear()
Removes all mappings from the cache.