de.bea.domingo.cache
Class WeakCache

java.lang.Object
  extended by de.bea.domingo.cache.AbstractBaseCache
      extended by de.bea.domingo.cache.WeakCache
All Implemented Interfaces:
Cache, java.io.Serializable

public final class WeakCache
extends AbstractBaseCache
implements java.io.Serializable

Weak Cache.

This implementation of the Cache interface uses a WeakHashMap to store the keys. The values are stored as WeakReferences.

Note that this implementation is synchronized. Multiple threads can access this map concurrently.

Author:
Kurt Riede
See Also:
WeakHashMap, WeakReference, Serialized Form

Constructor Summary
WeakCache()
          Creates a new WeakCache object.
 
Method Summary
 void clear()
          Removes all mappings from this map (optional operation).
 boolean containsKey(java.lang.Object key)
          Checks if a given key exists in the cache.
protected  java.util.Map createMap()
          Creates the map to be used with the cache.
 java.lang.Object get(java.lang.Object key)
          Returns an object with a given key from the cache.
 java.util.Set keySet()
          Returns a set view of the keys contained in this cache.
 void put(java.lang.Object key, java.lang.Object value)
          Puts an object with a key into the cache.
 java.lang.Object remove(java.lang.Object key)
          Removes the mapping for this key from this cache if present (optional operation).
 java.util.Collection values()
          Returns a collection view of the values contained in this cache.
 
Methods inherited from class de.bea.domingo.cache.AbstractBaseCache
getMap, size
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

WeakCache

public WeakCache()
Creates a new WeakCache object.

Method Detail

createMap

protected java.util.Map createMap()
Creates the map to be used with the cache.

Concrete classes must implement this method and create a concrete map for the cache.

Specified by:
createMap in class AbstractBaseCache
Returns:
a map for the cache
See Also:
AbstractBaseCache.createMap()

put

public void put(java.lang.Object key,
                java.lang.Object value)
Puts an object with a key into the cache.

Specified by:
put in interface Cache
Parameters:
key - the key
value - the object
See Also:
Cache.put(java.lang.Object, java.lang.Object), WeakReference, Cache.put(java.lang.Object, java.lang.Object)

get

public java.lang.Object get(java.lang.Object key)
Returns an object with a given key from the cache.

Specified by:
get in interface Cache
Parameters:
key - the key
Returns:
object with given key
See Also:
Cache.get(java.lang.Object)

containsKey

public boolean containsKey(java.lang.Object key)
Checks if a given key exists in the cache.

Specified by:
containsKey in interface Cache
Parameters:
key - the key
Returns:
true if the given key exists in the cache, else false
See Also:
Cache.containsKey(java.lang.Object)

remove

public java.lang.Object remove(java.lang.Object key)
Removes the mapping for this key from this cache if present (optional operation).

This implementation iterates over entrySet() searching for an entry with the specified key. If such an entry is found, its value is obtained with its getValue operation, the entry is removed from the Collection (and the backing cache) with the iterator's remove operation, and the saved value is returned. If the iteration terminates without finding such an entry, null is returned. Note that this implementation requires linear time in the size of the cache; many implementations will override this method.

Specified by:
remove in interface Cache
Parameters:
key - key whose mapping is to be removed from the cache.
Returns:
previous value associated with specified key, or null if there was no entry for key. (A null return can also indicate that the cache previously associated null with the specified key, if the implementation supports null values.)
See Also:
Cache.remove(java.lang.Object)

clear

public void clear()
Removes all mappings from this map (optional operation).

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

keySet

public java.util.Set keySet()
Returns a set view of the keys contained in this cache. The set is backed by the cache, so changes to the cache are reflected in the set, and vice-versa. The set supports element removal, which removes the corresponding mapping from this cache, via the Iterator.remove, Set.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.

Specified by:
keySet in interface Cache
Returns:
a set view of the keys contained in this cache.
See Also:
Cache.keySet()

values

public java.util.Collection values()
Returns a collection view of the values contained in this cache. The collection is backed by the cache, so changes to the cache are reflected in the collection, and vice-versa. The collection supports element removal, which removes the corresponding mapping from this cache, via the Iterator.remove, Collection.remove, removeAll, retainAll, and clear operations. It does not support the add or addAll operations.

Specified by:
values in interface Cache
Returns:
a collection view of the values contained in this cache.
See Also:
Cache.values()


Domingo Java-API