org.apache.commons.collections4.map
Class AbstractReferenceMap.ReferenceEntry<K,V>

java.lang.Object
  extended by org.apache.commons.collections4.map.AbstractHashedMap.HashEntry<K,V>
      extended by org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceEntry<K,V>
All Implemented Interfaces:
Map.Entry<K,V>, KeyValue<K,V>
Enclosing class:
AbstractReferenceMap<K,V>

protected static class AbstractReferenceMap.ReferenceEntry<K,V>
extends AbstractHashedMap.HashEntry<K,V>

A MapEntry implementation for the map.

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

Since:
3.1

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

Constructor Detail

AbstractReferenceMap.ReferenceEntry

public AbstractReferenceMap.ReferenceEntry(AbstractReferenceMap<K,V> parent,
                                           AbstractHashedMap.HashEntry<K,V> next,
                                           int hashCode,
                                           K key,
                                           V 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 K getKey()
Gets the key from the entry. This method dereferences weak and soft keys and thus may return null.

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

getValue

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

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

setValue

public V setValue(V obj)
Sets the value of the entry.

Specified by:
setValue in interface Map.Entry<K,V>
Overrides:
setValue in class AbstractHashedMap.HashEntry<K,V>
Parameters:
obj - the object to store
Returns:
the previous value

equals

public boolean equals(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 Map.Entry<K,V>
Overrides:
equals in class AbstractHashedMap.HashEntry<K,V>
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 Map.Entry<K,V>
Overrides:
hashCode in class AbstractHashedMap.HashEntry<K,V>
Returns:
the hashcode of the entry

toReference

protected <T> Object toReference(AbstractReferenceMap.ReferenceStrength type,
                                 T referent,
                                 int hash)
Constructs a reference of the given type to the given referent. The reference is registered with the queue for later purging.

Type Parameters:
T - the type of the referenced object
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
Returns:
the reference to the object

next

protected AbstractReferenceMap.ReferenceEntry<K,V> next()
Gets the next entry in the bucket.

Returns:
the next entry in the bucket


Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.