-// \r
-// System.Web.Services.Description.ServiceDescriptionBaseCollection.cs\r
-//\r
-// Author:\r
-// Tim Coleman (tim@timcoleman.com)\r
-//\r
-// Copyright (C) Tim Coleman, 2002\r
-//\r
-\r
-using System.Collections;\r
-using System.Web.Services;\r
-\r
-namespace System.Web.Services.Description {\r
- public abstract class ServiceDescriptionBaseCollection : CollectionBase {\r
- \r
- #region Fields\r
-\r
- Hashtable table = new Hashtable ();\r
- protected internal object parent;\r
-\r
- #endregion // Fields\r
-\r
- #region Properties\r
-\r
- protected virtual IDictionary Table {\r
- get { return table; }\r
- }\r
-\r
- #endregion // Properties\r
-\r
- #region Methods\r
-\r
- protected virtual string GetKey (object value) \r
- {\r
- return null; \r
- }\r
-\r
- protected override void OnClear ()\r
- {\r
- Table.Clear ();\r
- }\r
-\r
- protected override void OnInsertComplete (int index, object value)\r
- {\r
- if (GetKey (value) != null)\r
- Table [GetKey (value)] = value;\r
- SetParent (value, parent);\r
- }\r
-\r
- protected override void OnRemove (int index, object value)\r
- {\r
- if (GetKey (value) != null)\r
- Table.Remove (GetKey (value));\r
- }\r
-\r
- protected override void OnSet (int index, object oldValue, object newValue)\r
- {\r
- if (GetKey (oldValue) != null) \r
- Table.Remove (GetKey (oldValue));\r
- if (GetKey (newValue) != null)\r
- Table [GetKey (newValue)] = newValue;\r
- SetParent (newValue, parent);\r
- }\r
-\r
- protected virtual void SetParent (object value, object parent)\r
- {\r
- }\r
- \r
- #endregion // Methods\r
- }\r
-}\r
+//
+// System.Web.Services.Description.ServiceDescriptionBaseCollection.cs
+//
+// Author:
+// Tim Coleman (tim@timcoleman.com)
+//
+// Copyright (C) Tim Coleman, 2002
+//
+
+//
+// Permission is hereby granted, free of charge, to any person obtaining
+// a copy of this software and associated documentation files (the
+// "Software"), to deal in the Software without restriction, including
+// without limitation the rights to use, copy, modify, merge, publish,
+// distribute, sublicense, and/or sell copies of the Software, and to
+// permit persons to whom the Software is furnished to do so, subject to
+// the following conditions:
+//
+// The above copyright notice and this permission notice shall be
+// included in all copies or substantial portions of the Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+//
+
+using System.Collections;
+using System.Web.Services;
+
+namespace System.Web.Services.Description {
+ public abstract class ServiceDescriptionBaseCollection : CollectionBase {
+
+ #region Fields
+
+ Hashtable table = new Hashtable ();
+ object parent;
+
+ #endregion // Fields
+
+ #region Constructors
+
+ internal ServiceDescriptionBaseCollection (object parent)
+ {
+ this.parent = parent;
+ }
+
+ #endregion // Constructors
+
+ #region Properties
+
+ protected virtual IDictionary Table {
+ get { return table; }
+ }
+
+ #endregion // Properties
+
+ #region Methods
+
+ protected virtual string GetKey (object value)
+ {
+ return null;
+ }
+
+ protected override void OnClear ()
+ {
+ Table.Clear ();
+ }
+
+ protected override void OnInsertComplete (int index, object value)
+ {
+ if (GetKey (value) != null)
+ Table [GetKey (value)] = value;
+ SetParent (value, parent);
+ }
+
+ protected override void OnRemove (int index, object value)
+ {
+ if (GetKey (value) != null)
+ Table.Remove (GetKey (value));
+ }
+
+ protected override void OnSet (int index, object oldValue, object newValue)
+ {
+ if (GetKey (oldValue) != null)
+ Table.Remove (GetKey (oldValue));
+ if (GetKey (newValue) != null)
+ Table [GetKey (newValue)] = newValue;
+ SetParent (newValue, parent);
+ }
+
+ protected virtual void SetParent (object value, object parent)
+ {
+ }
+
+ #endregion // Methods
+ }
+}