Class SoftValueMap

  extended by org.datanucleus.util.ReferenceValueMap
      extended by org.datanucleus.util.SoftValueMap
All Implemented Interfaces:
java.lang.Cloneable, java.util.Map

public class SoftValueMap
extends ReferenceValueMap

A java.util.Map implementation with soft values.

The values are stored as soft references. If map entry value object is not actively being used, i.e. no other object has a strong reference to it, it may become garbage collected at the discretion of the garbage collector (typically if the VM is low on memory). If this happens, the entry in the SoftValueMap corresponding to the value object will also be removed.

See Also:

Nested Class Summary
Nested classes/interfaces inherited from class org.datanucleus.util.ReferenceValueMap
Nested classes/interfaces inherited from interface java.util.Map
Constructor Summary
          Default Constructor
SoftValueMap(int initialCapacity)
          Constructor taking the initial capacity.
SoftValueMap(int initialCapacity, float loadFactor)
          Constructor taking the initial capacity and load factor.
SoftValueMap(java.util.Map m)
          Constructor taking a Map for definition.
Method Summary
protected  ReferenceValueMap.ValueReference newValueReference(java.lang.Object key, java.lang.Object value, java.lang.ref.ReferenceQueue queue)
          Returns a new Reference object to be inserted into the map.
Methods inherited from class org.datanucleus.util.ReferenceValueMap
clear, clone, containsKey, containsValue, entrySet, equals, get, hashCode, isEmpty, keySet, put, putAll, reap, remove, size, values
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, toString, wait, wait, wait

Constructor Detail


public SoftValueMap()
Default Constructor


public SoftValueMap(int initialCapacity)
Constructor taking the initial capacity.

initialCapacity - The Initial capacity of the collection


public SoftValueMap(int initialCapacity,
                    float loadFactor)
Constructor taking the initial capacity and load factor.

initialCapacity - The Initial capacity of the collection
loadFactor - The Load Factor of the collection


public SoftValueMap(java.util.Map m)
Constructor taking a Map for definition.

m - The Map
Method Detail


protected ReferenceValueMap.ValueReference newValueReference(java.lang.Object key,
                                                             java.lang.Object value,
                                                             java.lang.ref.ReferenceQueue queue)
Description copied from class: ReferenceValueMap
Returns a new Reference object to be inserted into the map. Subclasses must implement this method to construct Reference objects of the desired type (e.g. SoftReference, etc.).

Specified by:
newValueReference in class ReferenceValueMap
key - The key that will be inserted.
value - The associated value to be referenced.
queue - The ReferenceQueue with which to register the new Reference object.
The new ValueReference

Copyright © 2009. All Rights Reserved.