Class ExpirableCache<K,V>

java.lang.Object
edu.internet2.middleware.grouperInstaller.util.ExpirableCache<K,V>
Type Parameters:
K - key type
V - value type
All Implemented Interfaces:
Serializable

public class ExpirableCache<K,V> extends Object implements Serializable
This is like a map, but the setters also take an expire time which will mean the items in the cache will be automatically deleted. Also, every so often (e.g. 2 minutes) all items are checked for expiration. If no timetolive is set, it will default to 1 day. The max time to live is one day. This is synchronized so that all access is safe.

Note, evictions are check for periodically, but only when the map is accessed (and even then only every few minutes). so you can check for evictions externally, or clear the map if you are done with it.

Version:
$Id: ExpirableCache.java,v 1.1 2008-11-27 14:25:50 mchyzer Exp $
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
     
    ExpirableCache(int defaultTimeToLiveInMinutes)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    checkForEvictions(boolean onlyCheckIfNeeded)
    check and remove elements that are stale
    void
    delete the cache
    static void
    clear out all caches everywhere (session, request, context, etc)
    get(K key)
    get a value or null if not there or expired this will check for eviction, and evict if evictable
    int
    number of items evicted from cache
    int
    number of items successfully retrieved from cache
    int
    number of items inserted into the cache
    void
    put(K key, V value)
    put a value into the cache, accept the default time to live for this cache
    void
    put(K key, V value, int timeToLiveInMinutes)
    put a value into the cache, accept the default time to live for this cache
    int
    size(boolean evictEvictables)
    number of elements in map (and check for
    static String
    string representation of cache
    string representation of cache

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • ExpirableCache

      public ExpirableCache()
    • ExpirableCache

      public ExpirableCache(int defaultTimeToLiveInMinutes)
      Parameters:
      defaultTimeToLiveInMinutes - time in minutes is the default cache time to live for content
  • Method Details

    • clear

      public void clear()
      delete the cache
    • put

      public void put(K key, V value)
      put a value into the cache, accept the default time to live for this cache
      Parameters:
      key -
      value -
    • put

      public void put(K key, V value, int timeToLiveInMinutes)
      put a value into the cache, accept the default time to live for this cache
      Parameters:
      key -
      value -
      timeToLiveInMinutes - time to live for this item in minutes. If -1 then use the default
    • clearAll

      public static void clearAll()
      clear out all caches everywhere (session, request, context, etc)
    • checkForEvictions

      public void checkForEvictions(boolean onlyCheckIfNeeded)
      check and remove elements that are stale
      Parameters:
      onlyCheckIfNeeded - true if only check every so often (e.g. every two minutes)
    • get

      public V get(K key)
      get a value or null if not there or expired this will check for eviction, and evict if evictable
      Parameters:
      key -
      Returns:
      the value or null if not there or evicted
    • size

      public int size(boolean evictEvictables)
      number of elements in map (and check for
      Parameters:
      evictEvictables - true if we should evict values that are stale (even if recently checked)
      Returns:
      the number of elements
    • getCacheInserts

      public int getCacheInserts()
      number of items inserted into the cache
      Returns:
      Returns the cacheInserts.
    • getCacheEvictions

      public int getCacheEvictions()
      number of items evicted from cache
      Returns:
      Returns the cacheEvictions.
    • getCacheHits

      public int getCacheHits()
      number of items successfully retrieved from cache
      Returns:
      Returns the cacheHits.
    • toString

      public String toString()
      string representation of cache
      Overrides:
      toString in class Object
      See Also:
    • staticToString

      public static String staticToString()
      string representation of cache
      Returns:
      the string value