com.beasys.commerce.util
Class SoftHashMap

java.lang.Object
  extended by java.util.AbstractMap
      extended by com.beasys.commerce.util.SoftHashMap
All Implemented Interfaces
Serializable, Cloneable, Map

public class SoftHashMap
extends AbstractMap
implements Map, Cloneable, Serializable

A map implemented using SoftReferences to store the values.

Unlike the java.util.WeakHashMap implementation, this does not utilize a ReferenceQueue, therefore, the References are cleared immediately, rather than only after a modification to the Map. Additionally, since this uses SoftReferences by default, the Map shouldn't be immediately cleared. Finally, this is also cloneable and serializable.

Since:
2.0.1-sp1
See Also
Serialized Form

Constructor Summary
SoftHashMap()
          Constructs a new, empty SoftHashMap with the default capacity and the default load factor, which is 0.75.
SoftHashMap(int initialCapacity)
          Constructs a new, empty SoftHashMap with the given initial capacity and the default load factor, which is 0.75.
SoftHashMap(int initialCapacity, float loadFactor)
          Constructs a new, empty SoftHashMap with the given initial capacity and the given load factor.
SoftHashMap(Map map)
          Constructs a new SoftHashMap from the specified Map.
 
Method Summary
 void clear()
          Removes all mappings from this map.
 Object clone()
          Return a shallow clone of this map.
 boolean containsKey(Object key)
          Returns true if this map contains a mapping for the specified key.
 boolean containsValue(Object value)
          Returns true if this map contains the specified value.
protected  Reference createReference(Object data)
          Create a Reference object containing the specified object.
 Set entrySet()
          Returns a Set view of the mappings in this map.
 Object get(Object key)
          Returns the value to which this map maps the specified key.
 boolean isEmpty()
          Returns true if this map contains no key-value mappings.
 Object put(Object key, Object value)
          Updates this map so that the given key maps to the given value.
 Object remove(Object key)
          Removes the mapping for the given key from this map, if present.
 int size()
          Returns the number of key-value mappings in this map.
 
Methods inherited from class java.util.AbstractMap
equals, hashCode, keySet, putAll, toString, values
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
equals, hashCode, keySet, putAll, values
 

Constructor Detail

SoftHashMap

public SoftHashMap(int initialCapacity,
                   float loadFactor)
Constructs a new, empty SoftHashMap with the given initial capacity and the given load factor.

Parameters
initialCapacity - The initial capacity of the SoftHashMap
loadFactor - The load factor of the SoftHashMap
Throws
IllegalArgumentException - If the initial capacity is less than zero, or if the load factor is nonpositive

SoftHashMap

public SoftHashMap(int initialCapacity)
Constructs a new, empty SoftHashMap with the given initial capacity and the default load factor, which is 0.75.

Parameters
initialCapacity - The initial capacity of the SoftHashMap
Throws
IllegalArgumentException - If the initial capacity is less than zero

SoftHashMap

public SoftHashMap()
Constructs a new, empty SoftHashMap with the default capacity and the default load factor, which is 0.75.


SoftHashMap

public SoftHashMap(Map map)
Constructs a new SoftHashMap from the specified Map.

Method Detail

clone

public Object clone()
Return a shallow clone of this map.

Overrides:
clone in class AbstractMap

createReference

protected Reference createReference(Object data)
Create a Reference object containing the specified object.

This implementation returns SoftReferences. Subclasses can override to return other Reference types.

Parameters
data - the object (can be null).
Returns
a Reference (can be null if data is null).

size

public int size()
Returns the number of key-value mappings in this map. Note: In contrast with most implementations of the Map interface, the time required by this operation is linear in the size of the map.

Specified by:
size in interface Map
Overrides:
size in class AbstractMap

isEmpty

public boolean isEmpty()
Returns true if this map contains no key-value mappings.

Specified by:
isEmpty in interface Map
Overrides:
isEmpty in class AbstractMap

containsKey

public boolean containsKey(Object key)
Returns true if this map contains a mapping for the specified key.

Specified by:
containsKey in interface Map
Overrides:
containsKey in class AbstractMap
Parameters
key - The key whose presence in this map is to be tested

containsValue

public boolean containsValue(Object value)
Returns true if this map contains the specified value.

Specified by:
containsValue in interface Map
Overrides:
containsValue in class AbstractMap

get

public Object get(Object key)
Returns the value to which this map maps the specified key. If this map does not contain a value for this key, then return null.

Specified by:
get in interface Map
Overrides:
get in class AbstractMap
Parameters
key - The key whose associated value, if any, is to be returned

put

public Object put(Object key,
                  Object value)
Updates this map so that the given key maps to the given value. If the map previously contained a mapping for key then that mapping is replaced and the previous value is returned.

Specified by:
put in interface Map
Overrides:
put in class AbstractMap
Parameters
key - The key that is to be mapped to the given value
value - The value to which the given key is to be mapped
Returns
The previous value to which this key was mapped, or null if if there was no mapping for the key

remove

public Object remove(Object key)
Removes the mapping for the given key from this map, if present.

Specified by:
remove in interface Map
Overrides:
remove in class AbstractMap
Parameters
key - The key whose mapping is to be removed
Returns
The value to which this key was mapped, or null if there was no mapping for the key

clear

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

Specified by:
clear in interface Map
Overrides:
clear in class AbstractMap

entrySet

public Set entrySet()
Returns a Set view of the mappings in this map.

Specified by:
entrySet in interface Map
Specified by:
entrySet in class AbstractMap


Copyright © 2006 BEA Systems, Inc. All Rights Reserved