Interface Policy.VarExpiration<K,V>
-
- All Known Implementing Classes:
BoundedLocalCache.BoundedPolicy.BoundedVarExpiration
public static interface Policy.VarExpiration<K,V>The low-level operations for a cache with a variable expiration policy.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default @NonNull java.util.Optional<java.time.Duration>getExpiresAfter(@NonNull K key)Returns the duration until the entry should be automatically removed.@NonNull java.util.OptionalLonggetExpiresAfter(@NonNull K key, @NonNull java.util.concurrent.TimeUnit unit)Returns the duration until the entry should be automatically removed.@NonNull java.util.Map<@NonNull K,@NonNull V>oldest(@org.checkerframework.checker.index.qual.NonNegative int limit)Returns an unmodifiable snapshotMapview of the cache with ordered traversal.default voidput(@NonNull K key, @NonNull V value, @org.checkerframework.checker.index.qual.NonNegative long duration, @NonNull java.util.concurrent.TimeUnit unit)Associates thevaluewith thekeyin this cache.default voidput(@NonNull K key, @NonNull V value, @NonNull java.time.Duration duration)Associates thevaluewith thekeyin this cache.default booleanputIfAbsent(@NonNull K key, @NonNull V value, @org.checkerframework.checker.index.qual.NonNegative long duration, @NonNull java.util.concurrent.TimeUnit unit)Associates thevaluewith thekeyin this cache if the specified key is not already associated with a value.default booleanputIfAbsent(@NonNull K key, @NonNull V value, @NonNull java.time.Duration duration)Associates thevaluewith thekeyin this cache if the specified key is not already associated with a value.voidsetExpiresAfter(@NonNull K key, @org.checkerframework.checker.index.qual.NonNegative long duration, @NonNull java.util.concurrent.TimeUnit unit)Specifies that the entry should be automatically removed from the cache once the duration has elapsed.default voidsetExpiresAfter(@NonNull K key, @NonNull java.time.Duration duration)Specifies that the entry should be automatically removed from the cache once the duration has elapsed.@NonNull java.util.Map<@NonNull K,@NonNull V>youngest(@org.checkerframework.checker.index.qual.NonNegative int limit)Returns an unmodifiable snapshotMapview of the cache with ordered traversal.
-
-
-
Method Detail
-
getExpiresAfter
@NonNull java.util.OptionalLong getExpiresAfter(@NonNull K key, @NonNull java.util.concurrent.TimeUnit unit)
Returns the duration until the entry should be automatically removed. The expiration policy determines when the entry's duration is reset.This method is scheduled for removal in version 3.0.0.
- Parameters:
key- the key for the entry being queriedunit- the unit thatageis expressed in- Returns:
- the duration if the entry is present in the cache
-
getExpiresAfter
default @NonNull java.util.Optional<java.time.Duration> getExpiresAfter(@NonNull K key)
Returns the duration until the entry should be automatically removed. The expiration policy determines when the entry's duration is reset.- Parameters:
key- the key for the entry being queried- Returns:
- the duration if the entry is present in the cache
-
setExpiresAfter
void setExpiresAfter(@NonNull K key, @org.checkerframework.checker.index.qual.NonNegative long duration, @NonNull java.util.concurrent.TimeUnit unit)
Specifies that the entry should be automatically removed from the cache once the duration has elapsed. The expiration policy determines when the entry's age is reset.- Parameters:
key- the key for the entry being setduration- the length of time from now when the entry should be automatically removedunit- the unit thatdurationis expressed in- Throws:
java.lang.IllegalArgumentException- ifdurationis negativejava.lang.NullPointerException- if the unit is null
-
setExpiresAfter
default void setExpiresAfter(@NonNull K key, @NonNull java.time.Duration duration)
Specifies that the entry should be automatically removed from the cache once the duration has elapsed. The expiration policy determines when the entry's age is reset.- Parameters:
key- the key for the entry being setduration- the length of time from now when the entry should be automatically removed- Throws:
java.lang.IllegalArgumentException- ifdurationis negative
-
putIfAbsent
default boolean putIfAbsent(@NonNull K key, @NonNull V value, @org.checkerframework.checker.index.qual.NonNegative long duration, @NonNull java.util.concurrent.TimeUnit unit)
Associates thevaluewith thekeyin this cache if the specified key is not already associated with a value. This method differs fromMap.putIfAbsent(K, V)by substituting the configuredExpirywith the specified write duration, has no effect on the duration if the entry was present, and returns the success rather than a value.This method is scheduled for removal in version 3.0.0.
- Parameters:
key- the key with which the specified value is to be associatedvalue- value to be associated with the specified keyduration- the length of time from now when the entry should be automatically removedunit- the unit thatdurationis expressed in- Returns:
trueif this cache did not already contain the specified entry- Throws:
java.lang.IllegalArgumentException- ifdurationis negative
-
putIfAbsent
default boolean putIfAbsent(@NonNull K key, @NonNull V value, @NonNull java.time.Duration duration)
Associates thevaluewith thekeyin this cache if the specified key is not already associated with a value. This method differs fromMap.putIfAbsent(K, V)by substituting the configuredExpirywith the specified write duration, has no effect on the duration if the entry was present, and returns the success rather than a value.- Parameters:
key- the key with which the specified value is to be associatedvalue- value to be associated with the specified keyduration- the length of time from now when the entry should be automatically removed- Returns:
trueif this cache did not already contain the specified entry- Throws:
java.lang.IllegalArgumentException- ifdurationis negative
-
put
default void put(@NonNull K key, @NonNull V value, @org.checkerframework.checker.index.qual.NonNegative long duration, @NonNull java.util.concurrent.TimeUnit unit)
Associates thevaluewith thekeyin this cache. If the cache previously contained a value associated with thekey, the old value is replaced by the newvalue. This method differs fromCache.put(K, V)by substituting the configuredExpirywith the specified write duration.This method is scheduled for removal in version 3.0.0.
- Parameters:
key- the key with which the specified value is to be associatedvalue- value to be associated with the specified keyduration- the length of time from now when the entry should be automatically removedunit- the unit thatdurationis expressed in- Throws:
java.lang.IllegalArgumentException- ifdurationis negativejava.lang.NullPointerException- if the specified key or value is null
-
put
default void put(@NonNull K key, @NonNull V value, @NonNull java.time.Duration duration)
Associates thevaluewith thekeyin this cache. If the cache previously contained a value associated with thekey, the old value is replaced by the newvalue. This method differs fromCache.put(K, V)by substituting the configuredExpirywith the specified write duration.- Parameters:
key- the key with which the specified value is to be associatedvalue- value to be associated with the specified keyduration- the length of time from now when the entry should be automatically removed- Throws:
java.lang.IllegalArgumentException- ifdurationis negative
-
oldest
@NonNull java.util.Map<@NonNull K,@NonNull V> oldest(@org.checkerframework.checker.index.qual.NonNegative int limit)
Returns an unmodifiable snapshotMapview of the cache with ordered traversal. The order of iteration is from the entries most likely to expire (oldest) to the entries least likely to expire (youngest). This order is determined by the expiration policy's best guess at the time of creating this snapshot view.Beware that obtaining the mappings is NOT a constant-time operation. Because of the asynchronous nature of the page replacement policy, determining the retention ordering requires a traversal of the entries.
- Parameters:
limit- the maximum size of the returned map (useInteger.MAX_VALUEto disregard the limit)- Returns:
- a snapshot view of the cache from oldest entry to the youngest
-
youngest
@NonNull java.util.Map<@NonNull K,@NonNull V> youngest(@org.checkerframework.checker.index.qual.NonNegative int limit)
Returns an unmodifiable snapshotMapview of the cache with ordered traversal. The order of iteration is from the entries least likely to expire (youngest) to the entries most likely to expire (oldest). This order is determined by the expiration policy's best guess at the time of creating this snapshot view.Beware that obtaining the mappings is NOT a constant-time operation. Because of the asynchronous nature of the page replacement policy, determining the retention ordering requires a traversal of the entries.
- Parameters:
limit- the maximum size of the returned map (useInteger.MAX_VALUEto disregard the limit)- Returns:
- a snapshot view of the cache from youngest entry to the oldest
-
-