Class CacheFactory.ExpirableToExpiry<K,V>

java.lang.Object
com.github.benmanes.caffeine.jcache.CacheFactory.ExpirableToExpiry<K,V>
All Implemented Interfaces:
Expiry<K,Expirable<V>>
Enclosing class:
CacheFactory

private static final class CacheFactory.ExpirableToExpiry<K,V> extends Object implements Expiry<K,Expirable<V>>
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    private final Ticker
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    long
    expireAfterCreate(K key, Expirable<V> expirable, long currentTime)
    Specifies that the entry should be automatically removed from the cache once the duration has elapsed after the entry's creation.
    long
    expireAfterRead(K key, Expirable<V> expirable, long currentTime, long currentDuration)
    Specifies that the entry should be automatically removed from the cache once the duration has elapsed after its last read.
    long
    expireAfterUpdate(K key, Expirable<V> expirable, long currentTime, long currentDuration)
    Specifies that the entry should be automatically removed from the cache once the duration has elapsed after the replacement of its value.
    private long
    toNanos(Expirable<V> expirable)
     

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

    • ticker

      private final Ticker ticker
  • Constructor Details

    • ExpirableToExpiry

      public ExpirableToExpiry(Ticker ticker)
  • Method Details

    • expireAfterCreate

      public long expireAfterCreate(K key, Expirable<V> expirable, long currentTime)
      Description copied from interface: Expiry
      Specifies that the entry should be automatically removed from the cache once the duration has elapsed after the entry's creation. To indicate no expiration an entry may be given an excessively long period, such as Long#MAX_VALUE.

      Note: The currentTime is supplied by the configured Ticker and by default does not relate to system or wall-clock time. When calculating the duration based on a time stamp, the current time should be obtained independently.

      Specified by:
      expireAfterCreate in interface Expiry<K,V>
      Parameters:
      key - the key represented by this entry
      expirable - the value represented by this entry
      currentTime - the current time, in nanoseconds
      Returns:
      the length of time before the entry expires, in nanoseconds
    • expireAfterUpdate

      public long expireAfterUpdate(K key, Expirable<V> expirable, long currentTime, long currentDuration)
      Description copied from interface: Expiry
      Specifies that the entry should be automatically removed from the cache once the duration has elapsed after the replacement of its value. To indicate no expiration an entry may be given an excessively long period, such as Long#MAX_VALUE. The currentDuration may be returned to not modify the expiration time.

      Note: The currentTime is supplied by the configured Ticker and by default does not relate to system or wall-clock time. When calculating the duration based on a time stamp, the current time should be obtained independently.

      Specified by:
      expireAfterUpdate in interface Expiry<K,V>
      Parameters:
      key - the key represented by this entry
      expirable - the value represented by this entry
      currentTime - the current time, in nanoseconds
      currentDuration - the current duration, in nanoseconds
      Returns:
      the length of time before the entry expires, in nanoseconds
    • expireAfterRead

      public long expireAfterRead(K key, Expirable<V> expirable, long currentTime, long currentDuration)
      Description copied from interface: Expiry
      Specifies that the entry should be automatically removed from the cache once the duration has elapsed after its last read. To indicate no expiration an entry may be given an excessively long period, such as Long#MAX_VALUE. The currentDuration may be returned to not modify the expiration time.

      Note: The currentTime is supplied by the configured Ticker and by default does not relate to system or wall-clock time. When calculating the duration based on a time stamp, the current time should be obtained independently.

      Specified by:
      expireAfterRead in interface Expiry<K,V>
      Parameters:
      key - the key represented by this entry
      expirable - the value represented by this entry
      currentTime - the current time, in nanoseconds
      currentDuration - the current duration, in nanoseconds
      Returns:
      the length of time before the entry expires, in nanoseconds
    • toNanos

      private long toNanos(Expirable<V> expirable)