K - the key type for the cacheV - the value type for the cachepublic interface ExpiryPolicy<K,V>
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
| Modifier and Type | Field and Description | 
|---|---|
| static java.time.Duration | INFINITEA  durationthat represents an infinite time. | 
| static ExpiryPolicy<java.lang.Object,java.lang.Object> | NO_EXPIRYAn  ExpiryPolicythat represents a no expiration policy | 
| Modifier and Type | Method and Description | 
|---|---|
| java.time.Duration | getExpiryForAccess(K key,
                  java.util.function.Supplier<? extends V> value) | 
| java.time.Duration | getExpiryForCreation(K key,
                    V value)Returns the lifetime of an entry when it is initially added to a  Cache. | 
| java.time.Duration | getExpiryForUpdate(K key,
                  java.util.function.Supplier<? extends V> oldValue,
                  V newValue) | 
static final java.time.Duration INFINITE
duration that represents an infinite time.static final ExpiryPolicy<java.lang.Object,java.lang.Object> NO_EXPIRY
ExpiryPolicy that represents a no expiration policyjava.time.Duration getExpiryForCreation(K key, V value)
Cache.
 
 This method must not return null.
 
 Exceptions thrown from this method will be swallowed and result in the expiry duration being
 ZERO.
key - the key of the newly added entryvalue - the value of the newly added entryDurationjava.time.Duration getExpiryForAccess(K key, java.util.function.Supplier<? extends V> value)
duration (relative to the current time) when an existing entry
 is accessed from a Cache.
 
 Returning null indicates that the expiration time remains unchanged.
 
 Exceptions thrown from this method will be swallowed and result in the expiry duration being
 ZERO.
key - the key of the accessed entryvalue - a value supplier for the accessed entryDuration, null means unchangedjava.time.Duration getExpiryForUpdate(K key, java.util.function.Supplier<? extends V> oldValue, V newValue)
duration (relative to the current time) when an existing entry
 is updated in a Cache.
 
 Returning null indicates that the expiration time remains unchanged.
 
 Exceptions thrown from this method will be swallowed and result in the expiry duration being
 ZERO.
key - the key of the updated entryoldValue - a value supplier for the previous value of the entrynewValue - the new value of the entryDuration, null means unchanged