public interface LoadingCache<K,V> extends Closeable
get(Object, Callable)
and stored in the cache until either evicted or manually invalidated.
Implementations of this interface are expected to be thread-safe, and can be safely accessed by multiple concurrent threads. This interface borrows ideas (and in some cases methods and javadoc) from Guava and JCache cache interface. Thanks Guava and JSR ! We elected to make this as close as possible to JSR API like that users can build bridges between all the existing implementations of JSR.
Modifier and Type | Method and Description |
---|---|
void |
close()
Clean the used resources of the cache.
|
V |
get(K key,
Callable<? extends V> valueLoader)
Returns the value associated with
key in this cache, obtaining that value from
valueLoader if necessary. |
Map<K,V> |
getAllPresent(Iterable<K> keys)
Returns a map of the values associated with
keys in this cache. |
V |
getIfPresent(K key) |
LookupCacheStats |
getStats() |
void |
invalidate(K key)
Discards any cached value for key
key . |
void |
invalidateAll()
Clears the contents of the cache.
|
void |
invalidateAll(Iterable<K> keys)
Discards any cached values for keys
keys . |
boolean |
isClosed() |
void |
putAll(Map<? extends K,? extends V> m)
Copies all of the mappings from the specified map to the cache.
|
@Nullable V getIfPresent(K key)
key
- must not be null
Returns the value associated with key
in this cache, or null
if there is no
cached value for key
.
a cache miss should be counted if the key is missing.Map<K,V> getAllPresent(Iterable<K> keys)
keys
in this cache. The returned map will
only contain entries which are already present in the cache.V get(K key, Callable<? extends V> valueLoader) throws ExecutionException
key
in this cache, obtaining that value from
valueLoader
if necessary. No observable state associated with this cache is modified
until loading completes.
Warning: as with CacheLoader.load(K)
, valueLoader
must not return
null
; it may either return a non-null value or throw an exception.
ExecutionException
- if a checked exception was thrown while loading the valuecom.google.common.util.concurrent.UncheckedExecutionException
- if an unchecked exception was thrown while loading the
valuecom.google.common.util.concurrent.ExecutionError
- if an error was thrown while loading the valuevoid putAll(Map<? extends K,? extends V> m)
IllegalStateException
- if the cache is isClosed()
void invalidate(K key)
key
. Eviction can be lazy or eager.IllegalStateException
- if the cache is isClosed()
void invalidateAll(Iterable<K> keys)
keys
. Eviction can be lazy or eager.IllegalStateException
- if the cache is isClosed()
void invalidateAll()
IllegalStateException
- if the cache is isClosed()
LookupCacheStats getStats()
IllegalStateException
- if the cache is isClosed()
boolean isClosed()
void close()
close
in interface AutoCloseable
close
in interface Closeable
Copyright © 2011–2017. All rights reserved.