com.rubecula.darwin.domain.helper
Class Cache_<K extends net.sf.tostring0.Identifiable,V>

java.lang.Object
  extended by com.rubecula.darwin.domain.helper.Cache_<K,V>
Type Parameters:
K - the unique key type which will be used for this cache.
V - the value that will be stored for the given key.
All Implemented Interfaces:
Cache, Cache_MBean, net.sf.tostring0.Identifiable
Direct Known Subclasses:
FitnessCache, PhenotypeCache

public abstract class Cache_<K extends net.sf.tostring0.Identifiable,V>
extends java.lang.Object
implements Cache, net.sf.tostring0.Identifiable

Abstract base class for implementing a Cache. TODO consider moving this to the foundation package (along with other Cache-related classes) TODO consider having K extend CacheSignature instead of Identifiable. Essentially, we will delegate the real work to HashMap. Note that it is required that the type K has an appropriate definition of Object.hashCode() (and of course equals) so that the cache will operate the way you expect.

Author:
Robin Hillyard

Field Summary
protected static org.apache.commons.logging.Log LOG
          The logger for this class.
 
Constructor Summary
protected Cache_()
           
 
Method Summary
protected  void add(K key, V value)
           
protected  boolean cached(K key)
           
 int count()
           
 void flush()
          Does nothing if _cache is already clear.
protected  void flush(K key)
           
protected  V get(K key)
           
 boolean isActive()
           
 void setActive(boolean active)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface net.sf.tostring0.Identifiable
getIdentifier
 

Field Detail

LOG

protected static final org.apache.commons.logging.Log LOG
The logger for this class.

Constructor Detail

Cache_

protected Cache_()
Method Detail

count

public int count()
Specified by:
count in interface Cache_MBean
Returns:
the number of entries in the cache
See Also:
Map.size()

flush

public void flush()
Does nothing if _cache is already clear.

Specified by:
flush in interface Cache
See Also:
Map.clear()

isActive

public boolean isActive()
Specified by:
isActive in interface Cache_MBean
Returns:
the value of the field active.

setActive

public void setActive(boolean active)
Specified by:
setActive in interface Cache_MBean
Parameters:
active -

add

protected void add(K key,
                   V value)
Parameters:
key -
value -
See Also:
Map.put(java.lang.Object, java.lang.Object)

cached

protected boolean cached(K key)
Parameters:
key -
Returns:
true if the cache already contains the given key
See Also:
Map.containsKey(java.lang.Object)

flush

protected void flush(K key)
Parameters:
key -
See Also:
Map.remove(java.lang.Object)

get

protected V get(K key)
Parameters:
key -
Returns:
the value for this key, if any
See Also:
Map.get(java.lang.Object)


Copyright © 2010 Rubecula Software, LLC. All Rights Reserved.