Interface BaseCache<K,V>
-
- All Superinterfaces:
AutoCloseable
- All Known Subinterfaces:
Cache<K,V>
,CheckedCache<K,V,E>
- All Known Implementing Classes:
DelegatingNullSafeBaseCache
,DelegatingNullSafeCache
,DelegatingNullSafeCheckedCache
public interface BaseCache<K,V> extends AutoCloseable
Base class forCache
andCheckedCache
.- Author:
- Michael Vorburger.ch
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description Map<K,V>
asMap()
Returns a view of the entries stored in this cache as an immutable map.void
evict(K key)
Evict an entry from the cache.CacheManager
getManager()
void
put(@NonNull K key, @NonNull V value)
Puts a new entry into the Cache, replacing any existing one.-
Methods inherited from interface java.lang.AutoCloseable
close
-
-
-
-
Method Detail
-
evict
void evict(K key)
Evict an entry from the cache. If the cache does not currently contain an entry under this key, then this is ignored. If it does, that entry is evicted, to be re-calculated on the next get.Use
CacheManager.evictAll()
to evict all entries of the entire cache.
-
put
void put(@NonNull K key, @NonNull V value)
Puts a new entry into the Cache, replacing any existing one.Normally, you often never need to call this method, as in regular usage scenarios a cache API client just invokes
Cache.get(Object)
(orCheckedCache.get(Object)
, which then internally (may) use theCacheFunction
(orCheckedCacheFunction
) - without you ever having had to explicitly put something into the Cache.This method is ONLY (!) intended for "optimizations". It is useful if the code using a cache already has a key and value (e.g. following an external update notification event kind of thing) and wants to "save time" on an expected subsequent
Cache.get(Object)
(orCheckedCache.get(Object)
invoking theCacheFunction
(orCheckedCacheFunction
) unnecessarily, using this "hint" to "propose" an entry to the cache.Any code using this must expect key/value pairs that have been put into a cache to disappear at any time (e.g. when the cache is full and this key/value hasn't been used, or after a programmatic or end-user operator initiated eviction), and be able to obtain THE SAME value from the
CacheFunction
(orCheckedCacheFunction
), for the given key.Failure to implement calls to this put method consistent with the implementation of the cache's get function WILL lead to weird cache inconsistencies!
Some Cache implementations may IGNORE this "hint" method.
- Parameters:
key
- the key of the proposed new cache entryvalue
- the value of the proposed new cache entry- Throws:
NullPointerException
- if the cache's users passed a null key or value
-
getManager
CacheManager getManager()
-
-