Class BoundedLocalCache.BoundedPolicy.BoundedExpireAfterAccess

java.lang.Object
com.github.benmanes.caffeine.cache.BoundedLocalCache.BoundedPolicy.BoundedExpireAfterAccess
All Implemented Interfaces:
Policy.Expiration<K,V>
Enclosing class:
BoundedLocalCache.BoundedPolicy<K,V>

final class BoundedLocalCache.BoundedPolicy.BoundedExpireAfterAccess extends Object implements Policy.Expiration<K,V>
  • Constructor Details

    • BoundedExpireAfterAccess

      BoundedExpireAfterAccess()
  • Method Details

    • ageOf

      public OptionalLong ageOf(K key, TimeUnit unit)
      Description copied from interface: Policy.Expiration
      Returns the age of the entry based on the expiration policy. The entry's age is the cache's estimate of the amount of time since the entry's expiration was last reset.

      An expiration policy uses the age to determine if an entry is fresh or stale by comparing it to the freshness lifetime. This is calculated as fresh = freshnessLifetime > age where freshnessLifetime = expires - currentTime.

      This method is scheduled for removal in version 3.0.0.

      Specified by:
      ageOf in interface Policy.Expiration<K,V>
      Parameters:
      key - the key for the entry being queried
      unit - the unit that age is expressed in
      Returns:
      the age if the entry is present in the cache
    • getExpiresAfter

      public long getExpiresAfter(TimeUnit unit)
      Description copied from interface: Policy.Expiration
      Returns the fixed duration used to determine if an entry should be automatically removed due to elapsing this time bound. An entry is considered fresh if its age is less than this duration, and stale otherwise. The expiration policy determines when the entry's age is reset.

      This method is scheduled for removal in version 3.0.0.

      Specified by:
      getExpiresAfter in interface Policy.Expiration<K,V>
      Parameters:
      unit - the unit that duration is expressed in
      Returns:
      the length of time after which an entry should be automatically removed
    • setExpiresAfter

      public void setExpiresAfter(long duration, TimeUnit unit)
      Description copied from interface: Policy.Expiration
      Specifies that each entry should be automatically removed from the cache once a fixed duration has elapsed. The expiration policy determines when the entry's age is reset.

      This method is scheduled for removal in version 3.0.0.

      Specified by:
      setExpiresAfter in interface Policy.Expiration<K,V>
      Parameters:
      duration - the length of time after which an entry should be automatically removed
      unit - the unit that duration is expressed in
    • oldest

      public Map<K,V> oldest(int limit)
      Description copied from interface: Policy.Expiration
      Returns an unmodifiable snapshot Map view 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.

      Specified by:
      oldest in interface Policy.Expiration<K,V>
      Parameters:
      limit - the maximum size of the returned map (use Integer.MAX_VALUE to disregard the limit)
      Returns:
      a snapshot view of the cache from oldest entry to the youngest
    • youngest

      public Map<K,V> youngest(int limit)
      Description copied from interface: Policy.Expiration
      Returns an unmodifiable snapshot Map view 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.

      Specified by:
      youngest in interface Policy.Expiration<K,V>
      Parameters:
      limit - the maximum size of the returned map (use Integer.MAX_VALUE to disregard the limit)
      Returns:
      a snapshot view of the cache from youngest entry to the oldest