internal virtual Node <K, V> ReplacementNode(Node <K, V> p, Node <K, V> next) { LinkedHashMap.Entry <K, V> q = (LinkedHashMap.Entry <K, V>)p; LinkedHashMap.Entry <K, V> t = new LinkedHashMap.Entry <K, V>(q.Hash, q.Key_Renamed, q.Value_Renamed, next); TransferLinks(q, t); return(t); }
//JAVA TO C# CONVERTER WARNING: Method 'throws' clauses are not available in .NET: //ORIGINAL LINE: void internalWriteEntries(java.io.ObjectOutputStream s) throws java.io.IOException internal virtual void InternalWriteEntries(java.io.ObjectOutputStream s) { for (LinkedHashMap.Entry <K, V> e = Head; e != Map_Fields.Null; e = e.After) { s.WriteObject(e.Key_Renamed); s.WriteObject(e.Value_Renamed); } }
// internal utilities // link at the end of list private void LinkNodeLast(LinkedHashMap.Entry <K, V> p) { LinkedHashMap.Entry <K, V> last = Tail; Tail = p; if (last == Map_Fields.Null) { Head = p; } else { p.Before = last; last.After = p; } }
internal virtual void AfterNodeRemoval(Node <K, V> e) // unlink { LinkedHashMap.Entry <K, V> p = (LinkedHashMap.Entry <K, V>)e, b = p.Before, a = p.After; p.Before = p.After = Map_Fields.Null; if (b == Map_Fields.Null) { Head = a; } else { b.After = a; } if (a == Map_Fields.Null) { Tail = b; } else { a.Before = b; } }
// apply src's links to dst private void TransferLinks(LinkedHashMap.Entry <K, V> src, LinkedHashMap.Entry <K, V> dst) { LinkedHashMap.Entry <K, V> b = dst.Before = src.Before; LinkedHashMap.Entry <K, V> a = dst.After = src.After; if (b == Map_Fields.Null) { Head = dst; } else { b.After = dst; } if (a == Map_Fields.Null) { Tail = dst; } else { a.Before = dst; } }
internal virtual void AfterNodeAccess(Node <K, V> e) // move node to last { LinkedHashMap.Entry <K, V> last; if (AccessOrder && (last = Tail) != e) { LinkedHashMap.Entry <K, V> p = (LinkedHashMap.Entry <K, V>)e, b = p.Before, a = p.After; p.After = Map_Fields.Null; if (b == Map_Fields.Null) { Head = a; } else { b.After = a; } if (a != Map_Fields.Null) { a.Before = b; } else { last = b; } if (last == Map_Fields.Null) { Head = p; } else { p.Before = last; last.After = p; } Tail = p; ++ModCount; } }
internal virtual Node <K, V> NewNode(int hash, K key, V value, Node <K, V> e) { LinkedHashMap.Entry <K, V> p = new LinkedHashMap.Entry <K, V>(hash, key, value, e); LinkNodeLast(p); return(p); }
// overrides of HashMap hook methods internal virtual void Reinitialize() { base.Reinitialize(); Head = Tail = Map_Fields.Null; }