Class ExpiryPolicyManager<K>

java.lang.Object
com.loomcache.server.jcache.ExpiryPolicyManager<K>
Type Parameters:
K - the key type

public class ExpiryPolicyManager<K> extends Object
Manages various expiry policies for cache entries.
  • Constructor Details

    • ExpiryPolicyManager

      public ExpiryPolicyManager(ExpiryPolicyManager.ExpiryPolicy defaultPolicy)
      Create a manager with a default expiry policy.
    • ExpiryPolicyManager

      public ExpiryPolicyManager()
      Create a manager with eternal default policy.
  • Method Details

    • setPolicy

      public void setPolicy(K key, ExpiryPolicyManager.ExpiryPolicy policy)
      Set expiry policy for a specific key.
    • getPolicy

      public ExpiryPolicyManager.ExpiryPolicy getPolicy(K key)
      Get expiry policy for a key.
    • getExpiryTime

      public long getExpiryTime(K key)
      Calculate expiry time for a key.
    • isExpired

      public boolean isExpired(K key, long createdTime, @Nullable Long lastAccessTime, @Nullable Long lastModifiedTime)
      Check if a key has expired based on the entry's actual timestamps.

      The reference time depends on the policy type:

      • CREATED: expiry = createdTime + duration
      • ACCESSED: expiry = lastAccessTime + duration (falls back to createdTime)
      • MODIFIED: expiry = lastModifiedTime + duration (falls back to createdTime)
    • clearPolicies

      public void clearPolicies()
      Clear all policies, falling back to default.
    • removePolicy

      public void removePolicy(K key)
      Remove policy for a specific key.
    • getPolicyCount

      public int getPolicyCount()
      Get policy count (excluding default).
    • createdPolicy

      public static ExpiryPolicyManager.ExpiryPolicy createdPolicy(Duration duration)
      Create a created expiry policy.
    • accessedPolicy

      public static ExpiryPolicyManager.ExpiryPolicy accessedPolicy(Duration duration)
      Create an accessed expiry policy.
    • modifiedPolicy

      public static ExpiryPolicyManager.ExpiryPolicy modifiedPolicy(Duration duration)
      Create a modified expiry policy.
    • eternalPolicy

      public static ExpiryPolicyManager.ExpiryPolicy eternalPolicy()
      Create an eternal expiry policy.
    • combined

      Combine multiple expiry policies (expires at earliest).