Interface ExpiryPolicy<K,V>
- Type Parameters:
K- the key type for the cacheV- the value type for the cache
Cache.
Previous values are not accessible directly but are rather available through a value Supplier
to indicate that access can require computation (such as deserialization).
Negative durations are not supported, expiry policy implementation returning such a
duration will result in immediate expiry, as if the duration was zero.
NOTE: Some cache configurations (eg. caches with eventual consistency) may use local (ie. non-consistent) state
to decide whether to call getExpiryForUpdate(Object, Supplier, Object) vs.
getExpiryForCreation(Object, Object). For these cache configurations it is advised to return the same
value for both of these methods
-
Field Summary
Fields -
Method Summary
Modifier and TypeMethodDescriptiongetExpiryForAccess(K key, Supplier<? extends V> value) getExpiryForCreation(K key, V value) Returns the lifetime of an entry when it is initially added to aCache.getExpiryForUpdate(K key, Supplier<? extends V> oldValue, V newValue)
-
Field Details
-
INFINITE
Adurationthat represents an infinite time. -
NO_EXPIRY
AnExpiryPolicythat represents a no expiration policy
-
-
Method Details
-
getExpiryForCreation
Returns the lifetime of an entry when it is initially added to aCache.This method must not return
null.Exceptions thrown from this method will be swallowed and result in the expiry duration being
ZERO.- Parameters:
key- the key of the newly added entryvalue- the value of the newly added entry- Returns:
- a non-null
Duration
-
getExpiryForAccess
Returns the expirationduration(relative to the current time) when an existing entry is accessed from aCache.Returning
nullindicates that the expiration time remains unchanged.Exceptions thrown from this method will be swallowed and result in the expiry duration being
ZERO.- Parameters:
key- the key of the accessed entryvalue- a value supplier for the accessed entry- Returns:
- an expiration
Duration,nullmeans unchanged
-
getExpiryForUpdate
Returns the expirationduration(relative to the current time) when an existing entry is updated in aCache.Returning
nullindicates that the expiration time remains unchanged.Exceptions thrown from this method will be swallowed and result in the expiry duration being
ZERO.- Parameters:
key- the key of the updated entryoldValue- a value supplier for the previous value of the entrynewValue- the new value of the entry- Returns:
- an expiration
Duration,nullmeans unchanged
-