Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.0.0

E15725-01


com.tangosol.util
Class SegmentedHashMap.Entry

java.lang.Object
  extended by com.tangosol.util.Base
      extended by com.tangosol.util.SegmentedHashMap.Entry

All Implemented Interfaces:
Map.Entry
Direct Known Subclasses:
SegmentedConcurrentMap.LockableEntry
Enclosing class:
SegmentedHashMap

protected static class SegmentedHashMap.Entry
extends Base
implements Map.Entry

A map entry (key-value pair). The Map.entrySet method returns a collection-view of the map, whose elements are of this class.


Field Summary
protected  SegmentedHashMap.Entry m_eNext
          The next entry in the linked list (an open hashing implementation).
protected  int m_nHash
          The key's hash code.
protected  Object m_oKey
          The key.
protected  Object m_oValue
          The value.

 

Constructor Summary
protected SegmentedHashMap.Entry(Object oKey, Object oValue, int nHash)
          Construct an Entry object with the specified key, value and hash.

 

Method Summary
 boolean equals(Object o)
          Compares the specified object with this entry for equality.
 Object getKey()
          Returns the key corresponding to this entry.
 Object getValue()
          Returns the value corresponding to this entry.
protected  Object getValueInternal()
          Returns the value corresponding to this entry, or NO_VALUE if this Entry is synthetid.
 int hashCode()
          Returns the hash code value for this map entry.
protected  boolean isSynthetic()
          Is this Entry synthetic?
protected  SegmentedHashMap.Entry nextEntry()
          Get the next non-synthetic entry in the linked list (open hash)
protected  SegmentedHashMap.Entry nextEntry(boolean fSynthetic)
          Get the next entry in the linked list (open hash).
protected  void setNext(SegmentedHashMap.Entry eNext)
          Set the next entry in the linked list (open hash)
 Object setValue(Object oValue)
          Replaces the value corresponding to this entry with the specified value (writes through to the map).
protected  Object setValueInternal(Object oValue)
          Replaces the value corresponding to this entry with the specified value (writes through to the map).
 String toString()
          Render the map entry as a String.

 

Field Detail

m_oKey

protected final Object m_oKey
The key. This object reference will not change for the life of the Entry.

m_oValue

protected volatile Object m_oValue
The value. This object reference can change within the life of the Entry. This field is declared volatile so that get() and put() can proceed without performing any synchronization.

m_nHash

protected final int m_nHash
The key's hash code. This value will not change for the life of the Entry.

m_eNext

protected volatile SegmentedHashMap.Entry m_eNext
The next entry in the linked list (an open hashing implementation). This field is declared volatile so the entry iterator can safely operate without performing any synchronization.

Constructor Detail

SegmentedHashMap.Entry

protected SegmentedHashMap.Entry(Object oKey,
                                 Object oValue,
                                 int nHash)
Construct an Entry object with the specified key, value and hash.
Parameters:
oKey - key with which the specified value is to be associated
oValue - value to be associated with the specified key
nHash - the hashCode for the specified key

Method Detail

getKey

public Object getKey()
Returns the key corresponding to this entry.
Specified by:
getKey in interface Map.Entry
Returns:
the key corresponding to this entry

getValue

public Object getValue()
Returns the value corresponding to this entry. If the mapping has been removed from the backing map (by the iterator's remove operation), the results of this call are undefined.
Specified by:
getValue in interface Map.Entry
Returns:
the value corresponding to this entry

getValueInternal

protected Object getValueInternal()
Returns the value corresponding to this entry, or NO_VALUE if this Entry is synthetid. If the mapping has been removed from the backing map (by the iterator's remove operation), the results of this call are undefined.
Returns:
the value corresponding to this entry, or NO_VALUE if the Entry is synthetic

setValue

public Object setValue(Object oValue)
Replaces the value corresponding to this entry with the specified value (writes through to the map). The behavior of this call is undefined if the mapping has already been removed from the map (by the iterator's remove operation).
Specified by:
setValue in interface Map.Entry
Parameters:
oValue - new value to be stored in this entry
Returns:
old value corresponding to the entry

setValueInternal

protected Object setValueInternal(Object oValue)
Replaces the value corresponding to this entry with the specified value (writes through to the map). The behavior of this call is undefined if the mapping has already been removed from the map.
Parameters:
oValue - new value to be stored in this entry
Returns:
old value corresponding to the entry, or NO_VALUE if the Entry was synthetic

equals

public boolean equals(Object o)
Compares the specified object with this entry for equality. Returns true if the given object is also a map entry and the two entries represent the same mapping. More formally, two entries e1 and e2 represent the same mapping if:
     (e1.getKey()==null ?
      e2.getKey()==null : e1.getKey().equals(e2.getKey())) &&
     (e1.getValue()==null ?
      e2.getValue()==null : e1.getValue().equals(e2.getValue()))
 
This ensures that the equals method works properly across different implementations of the Map.Entry interface.
Specified by:
equals in interface Map.Entry
Parameters:
o - object to be compared for equality with this map entry
Returns:
true if the specified object is equal to this map entry

hashCode

public int hashCode()
Returns the hash code value for this map entry. The hash code of a map entry e is defined to be:
     (e.getKey()==null   ? 0 : e.getKey().hashCode()) ^
     (e.getValue()==null ? 0 : e.getValue().hashCode())
 
This ensures that e1.equals(e2) implies that e1.hashCode()==e2.hashCode() for any two Entries e1 and e2, as required by the general contract of Object.hashCode.
Specified by:
hashCode in interface Map.Entry
Returns:
the hash code value for this map entry
See Also:
Object.hashCode(), Object.equals(Object), Map.Entry.equals(Object)

toString

public String toString()
Render the map entry as a String.
Returns:
the details about this entry

isSynthetic

protected boolean isSynthetic()
Is this Entry synthetic?

setNext

protected void setNext(SegmentedHashMap.Entry eNext)
Set the next entry in the linked list (open hash)

nextEntry

protected SegmentedHashMap.Entry nextEntry()
Get the next non-synthetic entry in the linked list (open hash)
Returns:
the next non-synthetic entry in the linked list

nextEntry

protected SegmentedHashMap.Entry nextEntry(boolean fSynthetic)
Get the next entry in the linked list (open hash). If fSynthetic is specified, also return synthetic Entry objects. Synethetic entries are Entry objects logically associated with a given key, but do not represent a key-value mapping in this map.
Parameters:
fSynthetic - include synthetic Entry objects?
Returns:
the next Entry in the linked list

Skip navigation links

Oracle® Coherence Java API Reference
Release 3.6.0.0

E15725-01


Copyright © 2000, 2010, Oracle and/or its affiliates. All rights reserved.