Class AbstractReferenceMap.ReferenceEntry

  • All Implemented Interfaces:
    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
    • Constructor Detail

      • ReferenceEntry

        public ReferenceEntry​(AbstractReferenceMap parent,
                              AbstractHashedMap.HashEntry next,
                              int hashCode,
                              Object key,
                              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 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 KeyValue
        Specified by:
        getKey in interface Map.Entry
        Overrides:
        getKey in class AbstractHashedMap.HashEntry
        Returns:
        the key, which may be null if it was garbage collected
      • 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
        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 Map.Entry
        Overrides:
        hashCode in class AbstractHashedMap.HashEntry
        Returns:
        the hashcode of the entry
      • toReference

        protected Object toReference​(int type,
                                     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