Package mondrian.rolap.cache
Class SmartCacheImpl<K,V>
- java.lang.Object
 - 
- mondrian.rolap.cache.SmartCacheImpl<K,V>
 
 
- 
- All Implemented Interfaces:
 SmartCache<K,V>
- Direct Known Subclasses:
 HardSmartCache,SoftSmartCache
public abstract class SmartCacheImpl<K,V> extends Object implements SmartCache<K,V>
A base implementation of theSmartCacheinterface which enforces synchronization with a ReadWrite lock. 
- 
- 
Nested Class Summary
- 
Nested classes/interfaces inherited from interface mondrian.rolap.cache.SmartCache
SmartCache.SmartCacheTask<K,V> 
 - 
 
- 
Constructor Summary
Constructors Constructor Description SmartCacheImpl() 
- 
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidclear()Clears the contents of this cache.protected abstract voidclearImpl()voidexecute(SmartCache.SmartCacheTask<K,V> task)Executes a task over the contents of the cache and guarantees exclusive write access while processing.Vget(K key)Looks up and returns a cache value according to a given key.protected abstract VgetImpl(K key)protected abstract Iterator<Map.Entry<K,V>>iteratorImpl()Must provide an iterator on the contents of the cache.Vput(K key, V value)Places a key/value pair into the cache.protected abstract VputImpl(K key, V value)Vremove(K key)Removes a key from the cache.protected abstract VremoveImpl(K key)intsize()Returns the number of elements in cache.protected abstract intsizeImpl() 
 - 
 
- 
- 
Method Detail
- 
iteratorImpl
protected abstract Iterator<Map.Entry<K,V>> iteratorImpl()
Must provide an iterator on the contents of the cache. It does not need to be thread safe because we will handle that inSmartCacheImpl. 
- 
clearImpl
protected abstract void clearImpl()
 
- 
sizeImpl
protected abstract int sizeImpl()
 
- 
put
public V put(K key, V value)
Description copied from interface:SmartCachePlaces a key/value pair into the cache.- Specified by:
 putin interfaceSmartCache<K,V>- Parameters:
 key- Keyvalue- Value- Returns:
 - the previous value of 
keyor null 
 
- 
get
public V get(K key)
Description copied from interface:SmartCacheLooks up and returns a cache value according to a given key. If the cache does not correspond an entry corresponding to the key,nullis returned.- Specified by:
 getin interfaceSmartCache<K,V>
 
- 
remove
public V remove(K key)
Description copied from interface:SmartCacheRemoves a key from the cache.- Specified by:
 removein interfaceSmartCache<K,V>- Parameters:
 key- Key- Returns:
 - Previous value associated with the key
 
 
- 
clear
public void clear()
Description copied from interface:SmartCacheClears the contents of this cache.- Specified by:
 clearin interfaceSmartCache<K,V>
 
- 
size
public int size()
Description copied from interface:SmartCacheReturns the number of elements in cache.- Specified by:
 sizein interfaceSmartCache<K,V>
 
- 
execute
public void execute(SmartCache.SmartCacheTask<K,V> task)
Description copied from interface:SmartCacheExecutes a task over the contents of the cache and guarantees exclusive write access while processing.- Specified by:
 executein interfaceSmartCache<K,V>- Parameters:
 task- The task to execute.
 
 - 
 
 -