1 //------------------------------------------------------------------------------
2 // <copyright file="DoubleLink.cs" company="Microsoft">
3 // Copyright (c) Microsoft Corporation. All rights reserved.
5 //------------------------------------------------------------------------------
10 * Copyright (c) 1998-1999, Microsoft Corporation
14 namespace System.Web.Util {
15 using System.Runtime.Serialization.Formatters;
17 internal class DoubleLink {
18 internal DoubleLink _next, _prev;
21 internal DoubleLink() {
24 internal DoubleLink(Object item) : this() {
27 internal DoubleLink Next {get {return _next;}}
29 internal void InsertAfter(DoubleLink after) {
31 this._next = after._next;
33 this._next._prev = this;
36 internal void InsertBefore(DoubleLink before) {
37 this._prev = before._prev;
40 this._prev._next = this;
43 internal void Remove() {
44 this._prev._next = this._next;
45 this._next._prev = this._prev;
50 internal virtual void DebugValidate() {
51 Debug.CheckValid(this._next != this || this._prev == this, "Invalid link");
54 internal virtual string DebugDescription(string indent) {
57 desc = indent + "_next=" + _next + ", _prev=" + _prev + "\nItem=";
58 desc += Debug.GetDescription(Item, indent + " ");