Class AbstractReferenceMap.ReferenceEntry<K,V>
java.lang.Object
org.apache.commons.collections4.map.AbstractHashedMap.HashEntry<K,V>
org.apache.commons.collections4.map.AbstractReferenceMap.ReferenceEntry<K,V>
- Type Parameters:
K
- the type of the keysV
- the type of the values
- 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
ConstructorDescriptionReferenceEntry
(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
Modifier and TypeMethodDescriptionboolean
Compares this map entry to another.getKey()
Gets the key from the entry.getValue()
Gets the value from the entry.int
hashCode()
Gets the hash code of the entry using temporary hard references.protected AbstractReferenceMap.ReferenceEntry
<K, V> next()
Gets the next entry in the bucket.protected void
This method can be overridden to provide custom logic to purge valueprotected void
onPurge()
This is the callback for custom "after purge" logicprotected boolean
Purges the specified referenceSets 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
-
Constructor Details
-
ReferenceEntry
public 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 mapnext
- the next entry in the hash buckethashCode
- the hash code of the keykey
- the keyvalue
- the value
-
-
Method Details
-
equals
Compares this map entry to another.This implementation uses
isEqualKey
andisEqualValue
on the main map for comparison. -
getKey
Gets the key from the entry. This method dereferences weak and soft keys and thus may return null. -
getValue
Gets the value from the entry. This method dereferences weak and soft value and thus may return null. -
hashCode
Gets the hash code of the entry using temporary hard references.This implementation uses
hashEntry
on the main map. -
next
Gets the next entry in the bucket.- Returns:
- the next entry in the bucket
-
nullValue
This method can be overridden to provide custom logic to purge value -
onPurge
This is the callback for custom "after purge" logic -
purge
Purges the specified reference- Parameters:
ref
- the reference to purge- Returns:
- true or false
-
setValue
Sets the value of the entry. -
toReference
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 WEAKreferent
- the object to refer tohash
- 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
-