|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.ofbiz.base.util.cache.UtilCache<K,V>
public class UtilCache<K,V>
Generalized caching utility. Provides a number of caching features:
Field Summary | |
---|---|
CacheLineTable<K,V> |
cacheLineTable
A hashtable containing a CacheLine object with a value and a loadTime for each element. |
protected static java.util.Map<java.lang.String,java.lang.Integer> |
defaultIndices
An index number appended to utilCacheTable names when there are conflicts. |
protected long |
expireTime
Specifies the amount of time since initial loading before an element will be reported as expired. |
protected long |
hitCount
A count of the number of cache hits |
protected java.util.Set<CacheListener<K,V>> |
listeners
The set of listeners to receive notifcations when items are modidfied(either delibrately or because they were expired). |
protected int |
maxInMemory
|
protected int |
maxSize
The maximum number of elements in the cache. |
protected long |
missCountExpired
A count of the number of cache misses because it expired |
protected long |
missCountNotFound
A count of the number of cache misses because it is not found in the cache |
protected long |
missCountSoftRef
A count of the number of cache misses because it was cleared from the Soft Reference (ie garbage collection, etc) |
static java.lang.String |
module
|
protected java.lang.String |
name
The name of the UtilCache instance, is also the key for the instance in utilCacheTable. |
protected long |
removeHitCount
A count of the number of cache hits on removes |
protected long |
removeMissCount
A count of the number of cache misses on removes |
protected boolean |
useFileSystemStore
Specifies whether or not to use file base stored for this cache, defautls to false |
protected boolean |
useSoftReference
Specifies whether or not to use soft references for this cache, defaults to false |
static java.util.Map<java.lang.String,UtilCache<?,?>> |
utilCacheTable
A static Map to keep track of all of the UtilCache instances. |
Constructor Summary | |
---|---|
UtilCache()
Default constructor, all members stay at default values as defined in cache.properties, or the defaults in this file if cache.properties is not found, or there are no 'default' entries in it. |
|
UtilCache(int maxSize,
long expireTime)
Constructor which specifies the maxSize and expireTime. |
|
UtilCache(java.lang.String cacheName)
This constructor takes a name for the cache, puts itself in the utilCacheTable. |
|
UtilCache(java.lang.String cacheName,
boolean useSoftReference)
This constructor takes a name for the cache, puts itself in the utilCacheTable. |
|
UtilCache(java.lang.String cacheName,
int maxSize,
int maxInMemory,
long expireTime,
boolean useSoftReference,
boolean useFileSystemStore)
Constructor which specifies the cacheName as well as the maxSize, expireTime and useSoftReference. |
|
UtilCache(java.lang.String cacheName,
int maxSize,
long expireTime)
Constructor which specifies the cacheName as well as the maxSize and expireTime. |
|
UtilCache(java.lang.String cacheName,
int maxSize,
long expireTime,
boolean useSoftReference)
|
Method Summary | ||
---|---|---|
void |
addListener(CacheListener<K,V> listener)
Adds an event listener for key removals |
|
void |
clear()
Removes all elements from this cache |
|
static void |
clearAllCaches()
Removes all elements from this cache |
|
static void |
clearCache(java.lang.String cacheName)
|
|
static void |
clearCachesThatStartWith(java.lang.String startsWith)
|
|
void |
clearCounters()
Clears the hit and miss counters |
|
void |
clearExpired()
Clears all expired cache entries; also clear any cache entries where the SoftReference in the CacheLine object has been cleared by the gc |
|
static void |
clearExpiredFromAllCaches()
Clears all expired cache entries from all caches |
|
boolean |
containsKey(java.lang.Object key)
Returns a boolean specifying whether or not an element with the specified key is in the cache. |
|
static
|
findCache(java.lang.String cacheName)
|
|
V |
get(java.lang.Object key)
Gets an element from the cache according to the specified key. |
|
java.util.Set<? extends K> |
getCacheLineKeys()
NOTE: this returns an unmodifiable copy of the keySet, so removing from here won't have an effect, and calling a remove while iterating through the set will not cause a concurrent modification exception. |
|
java.util.Collection<? extends CacheLine<V>> |
getCacheLineValues()
|
|
long |
getExpireTime()
return the current expire time for the cache elements |
|
long |
getHitCount()
Returns the number of successful hits on the cache |
|
protected CacheLine<V> |
getInternal(java.lang.Object key,
boolean countGet)
|
|
protected CacheLine<V> |
getInternalNoCheck(java.lang.Object key)
|
|
long |
getMaxSize()
Returns the current maximum number of elements in the cache |
|
long |
getMissCountExpired()
Returns the number of cache misses from entries that are expired |
|
long |
getMissCountNotFound()
Returns the number of cache misses from entries that are not found in the cache |
|
long |
getMissCountSoftRef()
Returns the number of cache misses from entries that are have had the soft reference cleared out (by garbage collector and such) |
|
long |
getMissCountTotal()
Returns the number of cache misses caused by any reason |
|
java.lang.String |
getName()
Getter for the name of the UtilCache instance. |
|
protected java.lang.String |
getNextDefaultIndex(java.lang.String cacheName)
|
|
static java.lang.String |
getPropertyParam(java.util.ResourceBundle res,
java.lang.String[] propNames,
java.lang.String parameter)
|
|
long |
getRemoveHitCount()
|
|
long |
getRemoveMissCount()
|
|
long |
getSizeInBytes()
|
|
boolean |
getUseFileSystemStore()
|
|
boolean |
getUseSoftReference()
Return whether or not the cache lines should use a soft reference to the data |
|
boolean |
hasExpired(java.lang.Object key)
Returns a boolean specifying whether or not the element corresponding to the key has expired. |
|
protected void |
noteAddition(K key,
V newValue)
Send a key addition event to all registered listeners |
|
protected void |
noteRemoval(K key,
V oldValue)
Send a key removal event to all registered listeners |
|
protected void |
noteUpdate(K key,
V newValue,
V oldValue)
Send a key update event to all registered listeners |
|
V |
put(K key,
V value)
Puts or loads the passed element into the cache |
|
V |
put(K key,
V value,
long expireTime)
Puts or loads the passed element into the cache |
|
V |
remove(java.lang.Object key)
Removes an element from the cache according to the specified key |
|
protected V |
removeInternal(java.lang.Object key,
boolean countRemove)
This is used for internal remove calls because we only want to count external calls |
|
void |
removeListener(CacheListener<K,V> listener)
Removes an event listener for key removals |
|
void |
setExpireTime(long expireTime)
Sets the expire time for the cache elements. |
|
void |
setMaxSize(int maxSize)
Sets the maximum number of elements in the cache. |
|
protected void |
setPropertiesParams(java.lang.String cacheName)
|
|
void |
setPropertiesParams(java.lang.String[] propNames)
|
|
void |
setUseSoftReference(boolean useSoftReference)
Set whether or not the cache lines should use a soft reference to the data |
|
long |
size()
Returns the number of elements currently in the cache |
|
static boolean |
validKey(java.lang.String cacheName,
java.lang.Object key)
Checks for a non-expired key in a specific cache |
|
java.util.List<V> |
values()
|
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
public static final java.lang.String module
public static java.util.Map<java.lang.String,UtilCache<?,?>> utilCacheTable
protected static java.util.Map<java.lang.String,java.lang.Integer> defaultIndices
protected java.lang.String name
public CacheLineTable<K,V> cacheLineTable
protected long hitCount
protected long missCountNotFound
protected long missCountExpired
protected long missCountSoftRef
protected long removeHitCount
protected long removeMissCount
protected int maxSize
protected int maxInMemory
protected long expireTime
protected boolean useSoftReference
protected boolean useFileSystemStore
protected java.util.Set<CacheListener<K,V>> listeners
Constructor Detail |
---|
public UtilCache(java.lang.String cacheName, int maxSize, int maxInMemory, long expireTime, boolean useSoftReference, boolean useFileSystemStore)
maxSize
- The maxSize member is set to this valueexpireTime
- The expireTime member is set to this valuecacheName
- The name of the cache.useSoftReference
- Specifies whether or not to use soft references for this cache.public UtilCache(java.lang.String cacheName, int maxSize, long expireTime, boolean useSoftReference)
public UtilCache(java.lang.String cacheName, int maxSize, long expireTime)
maxSize
- The maxSize member is set to this valueexpireTime
- The expireTime member is set to this valuecacheName
- The name of the cache.public UtilCache(int maxSize, long expireTime)
maxSize
- The maxSize member is set to this valueexpireTime
- The expireTime member is set to this valuepublic UtilCache(java.lang.String cacheName, boolean useSoftReference)
cacheName
- The name of the cache.public UtilCache(java.lang.String cacheName)
cacheName
- The name of the cache.public UtilCache()
Method Detail |
---|
protected java.lang.String getNextDefaultIndex(java.lang.String cacheName)
public static java.lang.String getPropertyParam(java.util.ResourceBundle res, java.lang.String[] propNames, java.lang.String parameter)
protected void setPropertiesParams(java.lang.String cacheName)
public void setPropertiesParams(java.lang.String[] propNames)
public V put(K key, V value)
key
- The key for the element, used to reference it in the hastables and LRU linked listvalue
- The value of the elementpublic V put(K key, V value, long expireTime)
key
- The key for the element, used to reference it in the hastables and LRU linked listvalue
- The value of the elementexpireTime
- how long to keep this key in the cachepublic V get(java.lang.Object key)
key
- The key for the element, used to reference it in the hastables and LRU linked list
protected CacheLine<V> getInternalNoCheck(java.lang.Object key)
protected CacheLine<V> getInternal(java.lang.Object key, boolean countGet)
public java.util.List<V> values()
public long getSizeInBytes()
public V remove(java.lang.Object key)
key
- The key for the element, used to reference it in the hastables and LRU linked list
protected V removeInternal(java.lang.Object key, boolean countRemove)
public void clear()
public static void clearAllCaches()
public java.lang.String getName()
public long getHitCount()
public long getMissCountNotFound()
public long getMissCountExpired()
public long getMissCountSoftRef()
public long getMissCountTotal()
public long getRemoveHitCount()
public long getRemoveMissCount()
public void clearCounters()
public void setMaxSize(int maxSize)
maxSize
- The maximum number of elements in the cachepublic long getMaxSize()
public void setExpireTime(long expireTime)
expireTime
- The expire time for the cache elementspublic long getExpireTime()
public void setUseSoftReference(boolean useSoftReference)
public boolean getUseSoftReference()
public boolean getUseFileSystemStore()
public long size()
public boolean containsKey(java.lang.Object key)
key
- The key for the element, used to reference it in the hastables and LRU linked list
public java.util.Set<? extends K> getCacheLineKeys()
public java.util.Collection<? extends CacheLine<V>> getCacheLineValues()
public boolean hasExpired(java.lang.Object key)
key
- The key for the element, used to reference it in the hastables and LRU linked list
public void clearExpired()
protected void noteAddition(K key, V newValue)
protected void noteRemoval(K key, V oldValue)
protected void noteUpdate(K key, V newValue, V oldValue)
public void addListener(CacheListener<K,V> listener)
public void removeListener(CacheListener<K,V> listener)
public static void clearExpiredFromAllCaches()
public static boolean validKey(java.lang.String cacheName, java.lang.Object key)
public static void clearCachesThatStartWith(java.lang.String startsWith)
public static void clearCache(java.lang.String cacheName)
public static <K,V> UtilCache<K,V> findCache(java.lang.String cacheName)
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |