Class CacheLoader<K,V>
java.lang.Object
org.glassfish.jersey.internal.guava.CacheLoader<K,V>
Computes or retrieves values, based on a key, for use in populating a
LoadingCache
.
Most implementations will only need to implement load(K)
. Other methods may be
overridden as desired.
Usage example:
<p>
CacheLoader<Key, Graph> loader = new CacheLoader<Key, Graph>() {
public Graph load(Key key) throws AnyException {
return createExpensiveGraph(key);
}
};
LoadingCache<Key, Graph> cache = CacheBuilder.newBuilder().build(loader);
- Since:
- 10.0
- Author:
- Charles Fry
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final class
Thrown to indicate that an invalid response was returned from a call toCacheLoader
. -
Constructor Summary
-
Method Summary
-
Constructor Details
-
CacheLoader
protected CacheLoader()Constructor for use by subclasses.
-
-
Method Details
-
load
Computes or retrieves the value corresponding tokey
.- Parameters:
key
- the non-null key whose value should be loaded- Returns:
- the value associated with
key
; must not be null - Throws:
Exception
- if unable to load the resultInterruptedException
- if this method is interrupted.InterruptedException
is treated like any otherException
in all respects except that, when it is caught, the thread's interrupt status is set
-
reload
Computes or retrieves a replacement value corresponding to an already-cachedkey
. This method is called when an existing cache entry is refreshed byCacheBuilder#refreshAfterWrite
, or through a call toLoadingCache#refresh
.This implementation synchronously delegates to
load(K)
. It is recommended that it be overridden with an asynchronous implementation when usingCacheBuilder#refreshAfterWrite
.Note: all exceptions thrown by this method will be logged and then swallowed.
- Parameters:
key
- the non-null key whose value should be loadedoldValue
- the non-null old value corresponding tokey
- Returns:
- the future new value associated with
key
; must not be null, must not return null - Throws:
Exception
- if unable to reload the resultInterruptedException
- if this method is interrupted.InterruptedException
is treated like any otherException
in all respects except that, when it is caught, the thread's interrupt status is set- Since:
- 11.0
-