Package com.google.common.cache
Class ForwardingCache<K,V>
- java.lang.Object
 - 
- com.google.common.collect.ForwardingObject
 - 
- com.google.common.cache.ForwardingCache<K,V>
 
 
 
- 
- All Implemented Interfaces:
 Cache<K,V>
- Direct Known Subclasses:
 ForwardingCache.SimpleForwardingCache,ForwardingLoadingCache
@Beta public abstract class ForwardingCache<K,V> extends ForwardingObject implements Cache<K,V>
A cache which forwards all its method calls to another cache. Subclasses should override one or more methods to modify the behavior of the backing cache as desired per the decorator pattern.- Since:
 - 10.0
 
 
- 
- 
Nested Class Summary
Nested Classes Modifier and Type Class Description static classForwardingCache.SimpleForwardingCache<K,V>A simplified version ofForwardingCachewhere subclasses can pass in an already constructedCacheas the delegete. 
- 
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.concurrent.ConcurrentMap<K,V>asMap()Returns a view of the entries stored in this cache as a thread-safe map.voidcleanUp()Performs any pending maintenance operations needed by the cache.Vget(K key, java.util.concurrent.Callable<? extends V> valueLoader)Returns the value associated withkeyin this cache, obtaining that value fromvalueLoaderif necessary.ImmutableMap<K,V>getAllPresent(java.lang.Iterable<?> keys)Returns a map of the values associated withkeysin this cache.VgetIfPresent(java.lang.Object key)Returns the value associated withkeyin this cache, ornullif there is no cached value forkey.voidinvalidate(java.lang.Object key)Discards any cached value for keykey.voidinvalidateAll()Discards all entries in the cache.voidinvalidateAll(java.lang.Iterable<?> keys)Discards any cached values for keyskeys.voidput(K key, V value)Associatesvaluewithkeyin this cache.voidputAll(java.util.Map<? extends K,? extends V> m)Copies all of the mappings from the specified map to the cache.longsize()Returns the approximate number of entries in this cache.CacheStatsstats()Returns a current snapshot of this cache's cumulative statistics.- 
Methods inherited from class com.google.common.collect.ForwardingObject
toString 
 - 
 
 - 
 
- 
- 
Method Detail
- 
getIfPresent
@Nullable public V getIfPresent(java.lang.Object key)
Description copied from interface:CacheReturns the value associated withkeyin this cache, ornullif there is no cached value forkey.- Specified by:
 getIfPresentin interfaceCache<K,V>- Since:
 - 11.0
 
 
- 
get
public V get(K key, java.util.concurrent.Callable<? extends V> valueLoader) throws java.util.concurrent.ExecutionException
Description copied from interface:CacheReturns the value associated withkeyin this cache, obtaining that value fromvalueLoaderif necessary. No observable state associated with this cache is modified until loading completes. This method provides a simple substitute for the conventional "if cached, return; otherwise create, cache and return" pattern.Warning: as with
CacheLoader.load(K),valueLoadermust not returnnull; it may either return a non-null value or throw an exception. 
- 
getAllPresent
public ImmutableMap<K,V> getAllPresent(java.lang.Iterable<?> keys)
Description copied from interface:CacheReturns a map of the values associated withkeysin this cache. The returned map will only contain entries which are already present in the cache.- Specified by:
 getAllPresentin interfaceCache<K,V>- Since:
 - 11.0
 
 
- 
put
public void put(K key, V value)
Description copied from interface:CacheAssociatesvaluewithkeyin this cache. If the cache previously contained a value associated withkey, the old value is replaced byvalue.Prefer
Cache.get(Object, Callable)when using the conventional "if cached, return; otherwise create, cache and return" pattern. 
- 
putAll
public void putAll(java.util.Map<? extends K,? extends V> m)
Description copied from interface:CacheCopies all of the mappings from the specified map to the cache. The effect of this call is equivalent to that of callingput(k, v)on this map once for each mapping from keykto valuevin the specified map. The behavior of this operation is undefined if the specified map is modified while the operation is in progress. 
- 
invalidate
public void invalidate(java.lang.Object key)
Description copied from interface:CacheDiscards any cached value for keykey.- Specified by:
 invalidatein interfaceCache<K,V>
 
- 
invalidateAll
public void invalidateAll(java.lang.Iterable<?> keys)
Description copied from interface:CacheDiscards any cached values for keyskeys.- Specified by:
 invalidateAllin interfaceCache<K,V>- Since:
 - 11.0
 
 
- 
invalidateAll
public void invalidateAll()
Description copied from interface:CacheDiscards all entries in the cache.- Specified by:
 invalidateAllin interfaceCache<K,V>
 
- 
size
public long size()
Description copied from interface:CacheReturns the approximate number of entries in this cache. 
- 
stats
public CacheStats stats()
Description copied from interface:CacheReturns a current snapshot of this cache's cumulative statistics. All stats are initialized to zero, and are monotonically increasing over the lifetime of the cache. 
- 
asMap
public java.util.concurrent.ConcurrentMap<K,V> asMap()
Description copied from interface:CacheReturns a view of the entries stored in this cache as a thread-safe map. Modifications made to the map directly affect the cache. 
 - 
 
 -