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 TypeMethodDescriptionvoid
checkForEvictions
(boolean onlyCheckIfNeeded) check and remove elements that are stalevoid
clear()
delete the cachestatic void
clearAll()
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 evictableint
number of items evicted from cacheint
number of items successfully retrieved from cacheint
number of items inserted into the cachevoid
put a value into the cache, accept the default time to live for this cachevoid
put a value into the cache, accept the default time to live for this cacheint
size
(boolean evictEvictables) number of elements in map (and check forstatic String
string 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
-