Interface ExpirationManager<T>

All Known Implementing Classes:
ExpirationManager.ArbitraryExpiration, ExpirationManager.BaseExpiration, ExpirationManager.DailyExpiration, ExpirationManager.DailyHourlyExpiration, ExpirationManager.HourlyExpiration, ExpirationManager.StaticExpiration

public interface ExpirationManager<T>
Manage a value that changes after a certain period of time.
  • Method Details

    • get

      T get()
      Get the value of this ExpirationManager for the current time. Current time should be obtained from the appropriate time source, not necessarily System.currentTimeMillis.

      e.g ClockFactory.get().currentTimeMillis()

      Returns:
      the value corresponding to timesource.currentTimeMillis()
    • get

      T get​(long now)
      Get the value of this ExpirationManager for the given time. It is assumed that times passed in will be monotonically increasing.
      Parameters:
      now - the result of System.currentTimeInMillis.
      Returns:
      the value corresponding to the given time
    • initialize

      default T initialize​(long now)
      The value for the given time, assuming it is the first access. Certain implementations generate different values for the initialized time vs. after an expiration.
      Parameters:
      now - the result of System.currentTimeInMillis.
      Returns:
      the value corresponding to the given initialization time
    • initialize

      default T initialize()
      The value for the current time, assuming it is the first access. Certain implementations generate different values for the initialized time vs. after an expiration.
      Returns:
      the value corresponding to the given initialization time