Class ExpirableCache<K,V>
java.lang.Object
edu.internet2.middleware.grouperInstaller.util.ExpirableCache<K,V>
- Type Parameters:
K- key typeV- value type
- All Implemented Interfaces:
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 -
Method Summary
Modifier and TypeMethodDescriptionvoidcheckForEvictions(boolean onlyCheckIfNeeded) check and remove elements that are stalevoidclear()delete the cachestatic voidclearAll()clear out all caches everywhere (session, request, context, etc)get a value or null if not there or expired this will check for eviction, and evict if evictableintnumber of items evicted from cacheintnumber of items successfully retrieved from cacheintnumber of items inserted into the cachevoidput a value into the cache, accept the default time to live for this cachevoidput a value into the cache, accept the default time to live for this cacheintsize(boolean evictEvictables) number of elements in map (and check forstatic Stringstring representation of cachetoString()string representation of cache
-
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
put a value into the cache, accept the default time to live for this cache- Parameters:
key-value-
-
put
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
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
string representation of cache -
staticToString
string representation of cache- Returns:
- the string value
-