simple.util.cache
Class Cache

java.lang.Object
  extended by simple.util.cache.Cache

public class Cache
extends java.lang.Object

This is a LRU, Least Recently Used, Cache used to store objects. This ensures that the Cache does not allow too many objects to be cached. This does not account for anything other than the number of lockable regions, i.e. synchronized Least Recently Used lists, and the maximum number of items a region can have before it removes the least recently used objects.

Author:
Niall Gallagher

Constructor Summary
Cache()
          This is used to create a Cache object for storing objects.
Cache(int regions, int limit)
          This is used to create a Cache object for storing objects.
 
Method Summary
 void cache(java.lang.Object key, java.lang.Object obj)
          This will store the object given in the Cache under the reference specified.
 void clear()
          This will remove all items from the Cache.
 boolean contains(java.lang.Object key)
          This will check to see if an object exists within the Cache.
 java.lang.Object lookup(java.lang.Object key)
          This will search the Cache to see if the item in the cache.
 java.lang.Object remove(java.lang.Object key)
          This will remove the object cached using the specified key.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Cache

public Cache()
This is used to create a Cache object for storing objects. This Cache is an LRU Cache meaning that the Least Recently Used items are removed if the size of a region grows to large, the default is two thousand.


Cache

public Cache(int regions,
             int limit)
This is used to create a Cache object for storing objects. This Cache is an LRU Cache meaning that the Least Recently Used items are removed if the size if the region grows to large. This constructor configures the Cache as specified.

Parameters:
regions - number of regions that are synchronized
limit - the maximum amount of objects per region
Method Detail

cache

public void cache(java.lang.Object key,
                  java.lang.Object obj)
This will store the object given in the Cache under the reference specified. The object may exist in the Cache if it remains an actively used object.

Parameters:
key - this is the key that references the object
obj - this is the object that is to be stored

lookup

public java.lang.Object lookup(java.lang.Object key)
This will search the Cache to see if the item in the cache. If it is in the cache this will return it. This provides a very concurrent lookup mechanism, where threads have less contention for locks, as the key decides which list to use based on the value of the key hash code.

Parameters:
key - this is the key that references the object
Returns:
the object that is referenced by the key

contains

public boolean contains(java.lang.Object key)
This will check to see if an object exists within the Cache. If it exists this returns true else false.

Parameters:
key - this is the key that references the object
Returns:
a boolean indicating the status of the object

remove

public java.lang.Object remove(java.lang.Object key)
This will remove the object cached using the specified key. If the object is not stored this does nothing. This ensures that no reference fot the object is left.

Parameters:
key - this is the key that references the object

clear

public void clear()
This will remove all items from the Cache. This is used to synchronize the cached objects.