|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
K
- the type of keys maintained by this cacheV
- the type of cached valuespublic interface Cache<K,V>
A Cache provides storage of data for later fast retrieval.
This Cache interface is based onConcurrentMap
with some modifications for
fast distributed performance.
A Cache does not allow null keys or values. Attempts to store a null value or
to use a null key either in a get or put operation will result in a NullPointerException
.
Caches use generics throughout providing a level of type safety akin to the collections package.
Cache implements Iterable
for Cache.Entry
, providing support for simplified iteration.
However iteration should be used with caution. It is an O(n) operation and may be
slow on large or distributed caches.
The Cache API also provides:
String cacheName = "sampleCache"; CacheManager cacheManager = CacheManagerFactory.getCacheManager(); Cache<Integer, Date> cache = cacheManager.getCache(cacheName); if (cache == null) { cache = cacheManager.<Integer,Date>createCacheBuilder(cacheName).build(); } Date value1 = new Date(); Integer key = 1; cache.put(key, value1); Date value2 = cache.get(key);
Nested Class Summary | |
---|---|
static interface |
Cache.Entry<K,V>
A cache entry (key-value pair). |
Method Summary | ||
---|---|---|
boolean |
containsKey(Object key)
Returns true if this cache contains a mapping for the specified key. |
|
V |
get(Object key)
Gets an entry from the cache. |
|
Map<K,V> |
getAll(Collection<? extends K> keys)
The getAll method will return, from the cache, a Map of the objects
associated with the Collection of keys in argument "keys". |
|
V |
getAndPut(K key,
V value)
Atomically associates the specified value with the specified key in this cache If the cache previously contained a mapping for the key, the old value is replaced by the specified value. |
|
V |
getAndRemove(Object key)
Atomically removes the entry for a key only if currently mapped to a given value. |
|
V |
getAndReplace(K key,
V value)
Atomically replaces the entry for a key only if currently mapped to some value. |
|
CacheManager |
getCacheManager()
Gets the CacheManager managing this cache. |
|
CacheConfiguration |
getConfiguration()
Returns a CacheConfiguration. |
|
String |
getName()
Return the name of the cache. |
|
CacheStatistics |
getStatistics()
Returns the CacheStatistics MXBean associated with the cache. |
|
Future<V> |
load(K key)
The load method provides a means to "pre load" the cache. |
|
Future<Map<K,V>> |
loadAll(Collection<? extends K> keys)
The loadAll method provides a means to "pre load" objects into the cache. |
|
void |
put(K key,
V value)
Associates the specified value with the specified key in this cache If the cache previously contained a mapping for the key, the old value is replaced by the specified value. |
|
void |
putAll(Map<? extends K,? extends V> map)
Copies all of the mappings from the specified map to this cache. |
|
boolean |
putIfAbsent(K key,
V value)
Atomically associates the specified key with the given value if it is not already associated with a value. |
|
boolean |
registerCacheEntryListener(CacheEntryListener<K,V> cacheEntryListener,
NotificationScope scope,
boolean synchronous)
Adds a listener to the notification service. |
|
boolean |
remove(Object key)
Removes the mapping for a key from this cache if it is present. |
|
boolean |
remove(Object key,
V oldValue)
Atomically removes the mapping for a key only if currently mapped to the given value. |
|
void |
removeAll()
Removes all of the mappings from this cache. |
|
void |
removeAll(Collection<? extends K> keys)
Removes entries for the specified keys |
|
boolean |
replace(K key,
V value)
Atomically replaces the entry for a key only if currently mapped to some value. |
|
boolean |
replace(K key,
V oldValue,
V newValue)
Atomically replaces the entry for a key only if currently mapped to a given value. |
|
boolean |
unregisterCacheEntryListener(CacheEntryListener<?,?> cacheEntryListener)
Removes a call back listener. |
|
|
unwrap(Class<T> cls)
Return an object of the specified type to allow access to the provider-specific API. |
Methods inherited from interface java.lang.Iterable |
---|
iterator |
Methods inherited from interface javax.cache.CacheLifecycle |
---|
getStatus, start, stop |
Method Detail |
---|
V get(Object key) throws CacheException
key
- the key whose associated value is to be returned
IllegalStateException
- if the cache is not Status.STARTED
NullPointerException
- if the key is null
CacheException
- if there is a problem fetching the valueMap.get(Object)
Map<K,V> getAll(Collection<? extends K> keys) throws CacheException
Map
of the objects
associated with the Collection of keys in argument "keys". If the objects
are not in the cache, the associated cache loader will be called. If no
loader is associated with an object, a null is returned. If a problem
is encountered during the retrieving or loading of the objects, an
exception will be thrown.
keys
- The keys whose associated values are to be returned.
NullPointerException
- if keys is null or if keys contains a null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem fetching the values.boolean containsKey(Object key) throws CacheException
key
- key whose presence in this cache is to be tested.
NullPointerException
- if key is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- it there is a problem checking the mappingMap.containsKey(Object)
Future<V> load(K key) throws CacheException
CacheLoader
.
If the object already exists in the cache, no action is taken and null is returned.
If no loader is associated with the cache
no object will be loaded into the cache and null is returned.
If a problem is encountered during the retrieving or loading of the object, an exception
must be propagated on Future.get()
as a ExecutionException
key
- the key
NullPointerException
- if key is null.
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the loadFuture<Map<K,V>> loadAll(Collection<? extends K> keys) throws CacheException
keys
- the keys
NullPointerException
- if keys is null or if keys contains a null.
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the loadCacheStatistics getStatistics()
CacheStatistics
MXBean associated with the cache.
May return null if the cache does not support statistics gathering.
IllegalStateException
- if the cache is not Status.STARTED
void put(K key, V value) throws CacheException
c.containsKey(k)
would return
true.)
In contrast to the corresponding Map operation, does not return
the previous value.
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified key
NullPointerException
- if key is null or if value is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the putMap.put(Object, Object)
,
getAndPut(Object, Object)
,
getAndReplace(Object, Object)
V getAndPut(K key, V value) throws CacheException
c.containsKey(k)
would return
true.)
The the previous value is returned, or null if there was no value associated
with the key previously.
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified key
NullPointerException
- if key is null or if value is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the putMap.put(Object, Object)
,
put(Object, Object)
,
getAndReplace(Object, Object)
void putAll(Map<? extends K,? extends V> map) throws CacheException
put(k, v)
on this cache once
for each mapping from key k to value v in the
specified map. The behavior of this operation is undefined if the
specified cache or map is modified while the operation is in progress.
map
- mappings to be stored in this cache
NullPointerException
- if map is null or if map contains null keys or values.
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the putMap.putAll(java.util.Map)
boolean putIfAbsent(K key, V value) throws CacheException
if (!cache.containsKey(key)) {} cache.put(key, value); return true; } else { return false; }except that the action is performed atomically. In contrast to the corresponding ConcurrentMap operation, does not return the previous value.
key
- key with which the specified value is to be associatedvalue
- value to be associated with the specified key
NullPointerException
- if key is null or value is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the putConcurrentMap.putIfAbsent(Object, Object)
boolean remove(Object key) throws CacheException
(key==null ? k==null : key.equals(k))
, that mapping
is removed. (The cache can contain at most one such mapping.)
Returns true if this cache previously associated the key, or false if the cache contained no mapping for the key.
The cache will not contain a mapping for the specified key once the call returns.
key
- key whose mapping is to be removed from the cache
NullPointerException
- if key is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the putMap.remove(Object)
boolean remove(Object key, V oldValue) throws CacheException
if (cache.containsKey(key) && cache.get(key).equals(oldValue)) { cache.remove(key); return true; } else { return false; }except that the action is performed atomically.
key
- key whose mapping is to be removed from the cacheoldValue
- value expected to be associated with the specified key
NullPointerException
- if key is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem doing the putMap.remove(Object)
V getAndRemove(Object key) throws CacheException
if (cache.containsKey(key)) { V oldValue = cache.get(key); cache.remove(key); return oldValue; } else { return null; }except that the action is performed atomically.
key
- key with which the specified value is associated
NullPointerException
- if the specified key or value is null.
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem during the removeMap.remove(Object)
boolean replace(K key, V oldValue, V newValue) throws CacheException
if (cache.containsKey(key) && cache.get(key).equals(oldValue)) { cache.put(key, newValue); return true; } else { return false; }except that the action is performed atomically.
key
- key with which the specified value is associatedoldValue
- value expected to be associated with the specified keynewValue
- value to be associated with the specified key
NullPointerException
- if key is null or if the values are null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem during the replaceConcurrentMap.replace(Object, Object, Object)
boolean replace(K key, V value) throws CacheException
if (cache.containsKey(key)) { cache.put(key, value); return true; } else { return false; }except that the action is performed atomically. In contrast to the corresponding ConcurrentMap operation, does not return the previous value.
key
- key with which the specified value is associatedvalue
- value to be associated with the specified key
NullPointerException
- if key is null or if value is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem during the replacegetAndReplace(Object, Object)
,
ConcurrentMap.replace(Object, Object)
V getAndReplace(K key, V value) throws CacheException
if (cache.containsKey(key)) { V value = cache.get(key, value); cache.put(key, value); return value; } else { return null; }except that the action is performed atomically.
key
- key with which the specified value is associatedvalue
- value to be associated with the specified key
NullPointerException
- if key is null or if value is null
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem during the replaceConcurrentMap.replace(Object, Object)
void removeAll(Collection<? extends K> keys) throws CacheException
keys
- the keys to remove
NullPointerException
- if keys is null or if it contains a null key
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem during the removevoid removeAll() throws CacheException
IllegalStateException
- if the cache is not Status.STARTED
CacheException
- if there is a problem during the removeMap.clear()
CacheConfiguration getConfiguration()
Status.STARTED
an implementation must respect the following:
Status.STARTED
(CacheConfiguration.setStatisticsEnabled(boolean)
)InvalidConfigurationException
must be thrown on
an attempt to mutate the configuration.
CacheConfiguration
of this cacheboolean registerCacheEntryListener(CacheEntryListener<K,V> cacheEntryListener, NotificationScope scope, boolean synchronous)
cacheEntryListener
- The listener to add. A listener may be added only once, so the same listener with two difference scopes
is not allowed.scope
- The notification scope.synchronous
- whether to listener should be invoked synchronously
NullPointerException
- if any of the arguments are null.boolean unregisterCacheEntryListener(CacheEntryListener<?,?> cacheEntryListener)
cacheEntryListener
- the listener to remove
String getName()
CacheManager getCacheManager()
<T> T unwrap(Class<T> cls)
IllegalArgumentException
is thrown.
cls
- he class of the object to be returned. This is normally either the underlying implementation class or an interface that it implements.
IllegalArgumentException
- if the provider doesn't support the specified class.
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |