Class TouchedExpiryPolicy

java.lang.Object
javax.cache.expiry.TouchedExpiryPolicy
All Implemented Interfaces:
Serializable, ExpiryPolicy

public final class TouchedExpiryPolicy extends Object implements ExpiryPolicy, Serializable
An ExpiryPolicy that defines the expiry Duration of a Cache Entry based on when it was last touched. A touch includes creation, update or access.
Since:
1.0
See Also:
  • Field Details

    • serialVersionUID

      public static final long serialVersionUID
      The serialVersionUID required for Serializable.
      See Also:
    • expiryDuration

      private Duration expiryDuration
      The Duration a Cache Entry should be available before it expires.
  • Constructor Details

  • Method Details

    • factoryOf

      public static Factory<ExpiryPolicy> factoryOf(Duration duration)
      Obtains a Factory for a Touched ExpiryPolicy.
      Parameters:
      duration - The expiry duration
      Returns:
      a Factory for a Touched ExpiryPolicy.
    • getExpiryForCreation

      public Duration getExpiryForCreation()
      Gets the Duration before a newly created Cache.Entry is considered expired.

      This method is called by a caching implementation after a Cache.Entry is created, but before a Cache.Entry is added to a cache, to determine the Duration before an entry expires. If a Duration.ZERO is returned the new Cache.Entry is considered to be already expired and will not be added to the Cache.

      Should an exception occur while determining the Duration, an implementation specific default Duration will be used.

      Specified by:
      getExpiryForCreation in interface ExpiryPolicy
      Returns:
      the new Duration before a created entry expires
    • getExpiryForAccess

      public Duration getExpiryForAccess()
      Gets the Duration before an accessed Cache.Entry is considered expired.

      This method is called by a caching implementation after a Cache.Entry is accessed to determine the Duration before an entry expires. If a Duration.ZERO is returned a Cache.Entry will be considered immediately expired. Returning null will result in no change to the previously understood expiry Duration.

      Should an exception occur while determining the Duration, an implementation specific default Duration will be used.

      Specified by:
      getExpiryForAccess in interface ExpiryPolicy
      Returns:
      the new Duration before an accessed entry expires
    • getExpiryForUpdate

      public Duration getExpiryForUpdate()
      Gets the Duration before an updated Cache.Entry is considered expired.

      This method is called by the caching implementation after a Cache.Entry is updated to determine the Duration before the updated entry expires. If a Duration.ZERO is returned a Cache.Entry is considered immediately expired. Returning null will result in no change to the previously understood expiry Duration.

      Should an exception occur while determining the Duration, an implementation specific default Duration will be used.

      Specified by:
      getExpiryForUpdate in interface ExpiryPolicy
      Returns:
      the new Duration before an updated entry expires
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • equals

      public boolean equals(Object object)
      Overrides:
      equals in class Object