org.exolab.castor.persist.cache
Class CountLimited

java.lang.Object
  extended by org.exolab.castor.persist.cache.AbstractBaseCache
      extended by org.exolab.castor.persist.cache.CountLimited
All Implemented Interfaces:
Cache

public class CountLimited
extends AbstractBaseCache
implements Cache

CustomCache is a count limted least-recently-used Map.

Every object being put in the Map will live until the map is full. If the map is full, a least-recently-used object will be disposed.

Method dispose(Object) will be called whenever an old object is diposed. Developer can get notify by overriding the dispose method dispose(Object).

Version:
$Revision: 1.7 $ $Date: 2005/08/04 07:31:15 $
Author:
Thomas Yip, Werner Guttmann

Field Summary
static int DEFAULT_SIZE
           
 
Constructor Summary
CountLimited()
           
CountLimited(int capacity)
           
 
Method Summary
 void clear()
          Removes all mappings from this map.
 void close()
          Life-cycle method to allow custom resource cleanup for a cache implementation
 boolean contains(java.lang.Object key)
          Indicates whether the cache holds value object mapped to the specified key.
 boolean containsKey(java.lang.Object key)
          Returns true if this map contains a mapping for the specified key
 boolean containsValue(java.lang.Object value)
          Returns true if this map maps one or more keys to the specified value.
protected  void dispose(java.lang.Object o)
          This method is called when an object is disposed.
 java.util.Enumeration elements()
          Returns an enumeration of the values in this LRU map.
 java.util.Set entrySet()
          Returns a set view of the keys contained in this map.
 void expire(java.lang.Object key)
          Remove the object identified by key from the cache.
 java.lang.Object get(java.lang.Object key)
          Returns the value to which the specified key is mapped in this Map.
 void initialize()
          Lyfe-cycle method to allow custom initialization of cache implementations
 boolean isEmpty()
          Returns true if this map contains no key-value mappings.
 java.util.Set keySet()
          Returns a collection view of the values contained in this map.
 java.lang.Object put(java.lang.Object key, java.lang.Object value)
          Maps the specified key to the specified value in this Map.
 void putAll(java.util.Map aMap)
          Copies all of the mappings from the specified map to this map (optional operation).
 java.lang.Object remove(java.lang.Object key)
          Removes the key (and its corresponding value) from this Map.
 void setCapacity(int capacity)
          Sets the cache capacity.
 int size()
          Returns the number of key-value mappings in this map.
 java.util.Collection values()
           
 
Methods inherited from class org.exolab.castor.persist.cache.AbstractBaseCache
getCacheType, getCapacity, getClassName, invokeMethod, invokeMethodReturnBoolean, invokeMethodReturnInt, invokeMethodWithExceptions, invokeStaticMethodWithExceptions, setCacheType, setClassName
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.exolab.castor.persist.cache.Cache
getCacheType, getCapacity, getClassName, setCacheType, setClassName
 

Field Detail

DEFAULT_SIZE

public static int DEFAULT_SIZE
Constructor Detail

CountLimited

public CountLimited()

CountLimited

public CountLimited(int capacity)
Method Detail

put

public java.lang.Object put(java.lang.Object key,
                            java.lang.Object value)
Maps the specified key to the specified value in this Map. Neither the key nor the value can be null.

The value can be retrieved by calling the get method with a key that is equal to the original key, before it is diposed when the Map is full.

Specified by:
put in interface Cache
Specified by:
put in class AbstractBaseCache
Parameters:
key - the Map key.
value - the value.
Returns:
the previous value of the specified key in this Map, or null if it did not have one.
Throws:
java.lang.NullPointerException - if the key or value is null.

get

public java.lang.Object get(java.lang.Object key)
Returns the value to which the specified key is mapped in this Map.

Specified by:
get in interface Cache
Specified by:
get in class AbstractBaseCache
Parameters:
key - - a key in the Map.
Returns:
the value to which the key is mapped in this Map; null if the key is not mapped to any value in this Map.

remove

public java.lang.Object remove(java.lang.Object key)
Removes the key (and its corresponding value) from this Map. This method does nothing if the key is not in the Map.

Specified by:
remove in interface Cache
Specified by:
remove in class AbstractBaseCache
Parameters:
key - the key that needs to be removed.
Returns:
the value to which the key had been mapped in this Map, or null if the key did not have a mapping.

elements

public java.util.Enumeration elements()
Returns an enumeration of the values in this LRU map. Use the Enumeration methods on the returned object to fetch the elements sequentially.

Specified by:
elements in interface Cache
Specified by:
elements in class AbstractBaseCache
Returns:
an enumeration of the values in this Map.
See Also:
Enumeration

expire

public void expire(java.lang.Object key)
Remove the object identified by key from the cache.

Specified by:
expire in interface Cache
Overrides:
expire in class AbstractBaseCache
Parameters:
key - the key that needs to be removed.

dispose

protected void dispose(java.lang.Object o)
This method is called when an object is disposed. Override this method if you interested in the disposed object.

Overrides:
dispose in class AbstractBaseCache
Parameters:
o - - the disposed object

contains

public boolean contains(java.lang.Object key)
Indicates whether the cache holds value object mapped to the specified key.

Specified by:
contains in interface Cache
Specified by:
contains in class AbstractBaseCache
Parameters:
key - - A key identifying a value object.
Returns:
True if the cache holds a value object for the specified key, false otherwise.
See Also:
Cache.contains(java.lang.Object)

setCapacity

public void setCapacity(int capacity)
Sets the cache capacity.

Specified by:
setCapacity in interface Cache
Overrides:
setCapacity in class AbstractBaseCache
Parameters:
capacity - the cache capacity.
See Also:
Cache.setCapacity(int)

size

public int size()
Description copied from interface: Cache
Returns the number of key-value mappings in this map.

Specified by:
size in interface Cache

clear

public void clear()
Description copied from interface: Cache
Removes all mappings from this map.

Specified by:
clear in interface Cache

isEmpty

public boolean isEmpty()
Description copied from interface: Cache
Returns true if this map contains no key-value mappings.

Specified by:
isEmpty in interface Cache
Returns:
True if this map contains no key-value mappings

containsKey

public boolean containsKey(java.lang.Object key)
Description copied from interface: Cache
Returns true if this map contains a mapping for the specified key

Specified by:
containsKey in interface Cache
Parameters:
key - A key object.
Returns:
true if this map contains a mapping for the specified key

containsValue

public boolean containsValue(java.lang.Object value)
Description copied from interface: Cache
Returns true if this map maps one or more keys to the specified value. This operation will probably require time linear to the cache size for most implementations of the Cache interface.

Specified by:
containsValue in interface Cache
Parameters:
value - The object value.
Returns:
true if this map maps one or more keys to the specified value

values

public java.util.Collection values()
Specified by:
values in interface Cache
Returns:

putAll

public void putAll(java.util.Map aMap)
Description copied from interface: Cache
Copies all of the mappings from the specified map to this map (optional operation).

Specified by:
putAll in interface Cache
Parameters:
aMap - The map to be copied.

entrySet

public java.util.Set entrySet()
Description copied from interface: Cache
Returns a set view of the keys contained in this map.

Specified by:
entrySet in interface Cache
Returns:
A set view of all the keys.

keySet

public java.util.Set keySet()
Description copied from interface: Cache
Returns a collection view of the values contained in this map.

Specified by:
keySet in interface Cache
Returns:
A set view of all the value objects.

initialize

public void initialize()
Description copied from interface: Cache
Lyfe-cycle method to allow custom initialization of cache implementations

Specified by:
initialize in interface Cache

close

public void close()
Description copied from interface: Cache
Life-cycle method to allow custom resource cleanup for a cache implementation

Specified by:
close in interface Cache
Specified by:
close in class AbstractBaseCache
See Also:
Cache.close()


Intalio Inc. (C) 1999-2004. All rights reserved http://www.intalio.com