it.unimi.dsi.fastutil.objects
Class AbstractReference2ReferenceMap

java.lang.Object
  extended byit.unimi.dsi.fastutil.objects.AbstractReference2ReferenceMap
All Implemented Interfaces:
Map, Reference2ReferenceMap, Serializable
Direct Known Subclasses:
AbstractReference2ReferenceSortedMap, Reference2ReferenceMaps.EmptyMap, Reference2ReferenceMaps.Singleton, Reference2ReferenceMaps.SynchronizedMap, Reference2ReferenceMaps.UnmodifiableMap, Reference2ReferenceOpenHashMap

public abstract class AbstractReference2ReferenceMap
extends Object
implements Reference2ReferenceMap, Serializable

An abstract class providing basic methods for maps implementing a type-specific interface.

This class handles directly a default return value (including methods to access it). Instances of classes inheriting from this class have just to return defRetValue to denote lack of a key in type-specific methods. The value is serialized.

Optional operations just throw an UnsupportedOperationException. Generic versions of accessors delegate to the corresponding type-specific counterparts following the interface rules (they take care of returning null on a missing key).

As a further help, this class provides a BasicEntry inner class that implements a type-specific version of Map.Entry; it is particularly useful for those classes that do not implement their own entries (e.g., most immutable maps).

See Also:
Serialized Form

Nested Class Summary
static class AbstractReference2ReferenceMap.BasicEntry
          This class provides a basic but complete type-specific entry class for all those maps implementations that do not have entries on their own (e.g., most immutable maps).
 
Nested classes inherited from class it.unimi.dsi.fastutil.objects.Reference2ReferenceMap
Reference2ReferenceMap.Entry
 
Method Summary
 void clear()
           
 boolean containsKey(Object k)
          Checks whether the given value is contained in keySet().
 boolean containsValue(Object v)
          Checks whether the given value is contained in values().
 Object defaultReturnValue()
          Gets the default return value.
 void defaultReturnValue(Object rv)
          Sets the default return value.
 boolean equals(Object o)
           
 Object getDefRetValue()
           
 int hashCode()
          Returns a hash code for this map.
 boolean isEmpty()
           
 Set keySet()
          Returns a type-specific-set view of the keys of this map.
 Object put(Object key, Object value)
           
 void putAll(Map m)
          Puts all pairs in the given map.
 Object remove(Object key)
           
 void setDefRetValue(Object rv)
           
 String toString()
           
 Collection values()
          Returns a type-specific-set view of the values of this map.
 
Methods inherited from class java.lang.Object
getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Map
entrySet, get, size
 

Method Detail

setDefRetValue

public void setDefRetValue(Object rv)
Specified by:
setDefRetValue in interface Reference2ReferenceMap
Parameters:
rv - the new default return value.
See Also:
Reference2ReferenceMap.getDefRetValue(), Reference2ReferenceMap.defaultReturnValue()

getDefRetValue

public Object getDefRetValue()
Specified by:
getDefRetValue in interface Reference2ReferenceMap
Returns:
the current default return value.
See Also:
Reference2ReferenceMap.defaultReturnValue()

defaultReturnValue

public void defaultReturnValue(Object rv)
Description copied from interface: Reference2ReferenceMap
Sets the default return value. This value must be returned by type-specific versions of get(), put() and remove() to denote that the map does not contain the specified key. It must be 0/false/null by default.

Specified by:
defaultReturnValue in interface Reference2ReferenceMap
Parameters:
rv - the new default return value.
See Also:
Reference2ReferenceMap.defaultReturnValue()

defaultReturnValue

public Object defaultReturnValue()
Description copied from interface: Reference2ReferenceMap
Gets the default return value.

Specified by:
defaultReturnValue in interface Reference2ReferenceMap
Returns:
the current default return value.

put

public Object put(Object key,
                  Object value)
Specified by:
put in interface Map

remove

public Object remove(Object key)
Specified by:
remove in interface Map

clear

public void clear()
Specified by:
clear in interface Map

containsValue

public boolean containsValue(Object v)
Checks whether the given value is contained in values().

Specified by:
containsValue in interface Map

containsKey

public boolean containsKey(Object k)
Checks whether the given value is contained in keySet().

Specified by:
containsKey in interface Map

putAll

public void putAll(Map m)
Puts all pairs in the given map. If the map implements the interface of this map, it uses the faster iterators.

Specified by:
putAll in interface Map
Parameters:
m - a map.

isEmpty

public boolean isEmpty()
Specified by:
isEmpty in interface Map

keySet

public Set keySet()
Returns a type-specific-set view of the keys of this map.

The view is backed by the set returned by Map.entrySet(). Note that no attempt is made at caching the result of this method, as this would require adding some attributes that lightweight implementations would not need. Subclasses may easily override this policy by calling this method and caching the result, but implementors are encouraged to write more efficient ad-hoc implementations.

Specified by:
keySet in interface Map
Returns:
a set view of the keys of this map; it may be safely cast to a type-specific interface.

values

public Collection values()
Returns a type-specific-set view of the values of this map.

The view is backed by the set returned by Map.entrySet(). Note that no attempt is made at caching the result of this method, as this would require adding some attributes that lightweight implementations would not need. Subclasses may easily override this policy by calling this method and caching the result, but implementors are encouraged to write more efficient ad-hoc implementations.

Specified by:
values in interface Map
Returns:
a set view of the values of this map; it may be safely cast to a type-specific interface.

hashCode

public int hashCode()
Returns a hash code for this map. The hash code of a map is computed by summing the hash codes of its entries.

Specified by:
hashCode in interface Map
Returns:
a hash code for this map.

equals

public boolean equals(Object o)
Specified by:
equals in interface Map

toString

public String toString()