org.apache.commons.collections.map
Class AbstractReferenceMap.ReferenceEntry

java.lang.Object
  extended by org.apache.commons.collections.map.AbstractHashedMap.HashEntry
      extended by org.apache.commons.collections.map.AbstractReferenceMap.ReferenceEntry
All Implemented Interfaces:
java.util.Map.Entry, KeyValue
Enclosing class:
AbstractReferenceMap

protected static class AbstractReferenceMap.ReferenceEntry
extends AbstractHashedMap.HashEntry

A MapEntry implementation for the map.

If getKey() or getValue() returns null, it means the mapping is stale and should be removed.

Since:
Commons Collections 3.1

Field Summary
protected  AbstractReferenceMap parent
          The parent map
 
Fields inherited from class org.apache.commons.collections.map.AbstractHashedMap.HashEntry
hashCode, key, next, value
 
Constructor Summary
AbstractReferenceMap.ReferenceEntry(AbstractReferenceMap parent, AbstractHashedMap.HashEntry next, int hashCode, java.lang.Object key, java.lang.Object value)
          Creates a new entry object for the ReferenceMap.
 
Method Summary
 boolean equals(java.lang.Object obj)
          Compares this map entry to another.
 java.lang.Object getKey()
          Gets the key from the entry.
 java.lang.Object getValue()
          Gets the value from the entry.
 int hashCode()
          Gets the hashcode of the entry using temporary hard references.
protected  AbstractReferenceMap.ReferenceEntry next()
          Gets the next entry in the bucket.
 java.lang.Object setValue(java.lang.Object obj)
          Sets the value of the entry.
protected  java.lang.Object toReference(int type, java.lang.Object referent, int hash)
          Constructs a reference of the given type to the given referent.
 
Methods inherited from class org.apache.commons.collections.map.AbstractHashedMap.HashEntry
toString
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 

Field Detail

parent

protected final AbstractReferenceMap parent
The parent map

Constructor Detail

AbstractReferenceMap.ReferenceEntry

public AbstractReferenceMap.ReferenceEntry(AbstractReferenceMap parent,
                                           AbstractHashedMap.HashEntry next,
                                           int hashCode,
                                           java.lang.Object key,
                                           java.lang.Object value)
Creates a new entry object for the ReferenceMap.

Parameters:
parent - the parent map
next - the next entry in the hash bucket
hashCode - the hash code of the key
key - the key
value - the value
Method Detail

getKey

public java.lang.Object getKey()
Gets the key from the entry. This method dereferences weak and soft keys and thus may return null.

Specified by:
getKey in interface java.util.Map.Entry
Specified by:
getKey in interface KeyValue
Overrides:
getKey in class AbstractHashedMap.HashEntry
Returns:
the key, which may be null if it was garbage collected

getValue

public java.lang.Object getValue()
Gets the value from the entry. This method dereferences weak and soft value and thus may return null.

Specified by:
getValue in interface java.util.Map.Entry
Specified by:
getValue in interface KeyValue
Overrides:
getValue in class AbstractHashedMap.HashEntry
Returns:
the value, which may be null if it was garbage collected

setValue

public java.lang.Object setValue(java.lang.Object obj)
Sets the value of the entry.

Specified by:
setValue in interface java.util.Map.Entry
Overrides:
setValue in class AbstractHashedMap.HashEntry
Parameters:
obj - the object to store
Returns:
the previous value

equals

public boolean equals(java.lang.Object obj)
Compares this map entry to another.

This implementation uses isEqualKey and isEqualValue on the main map for comparison.

Specified by:
equals in interface java.util.Map.Entry
Overrides:
equals in class AbstractHashedMap.HashEntry
Parameters:
obj - the other map entry to compare to
Returns:
true if equal, false if not

hashCode

public int hashCode()
Gets the hashcode of the entry using temporary hard references.

This implementation uses hashEntry on the main map.

Specified by:
hashCode in interface java.util.Map.Entry
Overrides:
hashCode in class AbstractHashedMap.HashEntry
Returns:
the hashcode of the entry

toReference

protected java.lang.Object toReference(int type,
                                       java.lang.Object referent,
                                       int hash)
Constructs a reference of the given type to the given referent. The reference is registered with the queue for later purging.

Parameters:
type - HARD, SOFT or WEAK
referent - the object to refer to
hash - the hash code of the key of the mapping; this number might be different from referent.hashCode() if the referent represents a value and not a key

next

protected AbstractReferenceMap.ReferenceEntry next()
Gets the next entry in the bucket.

Returns:
the next entry in the bucket


Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.