Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'mcs/class/corlib/System.Collections/DictionaryBase.cs')
-rwxr-xr-xmcs/class/corlib/System.Collections/DictionaryBase.cs372
1 files changed, 0 insertions, 372 deletions
diff --git a/mcs/class/corlib/System.Collections/DictionaryBase.cs b/mcs/class/corlib/System.Collections/DictionaryBase.cs
deleted file mode 100755
index ba01e9cdace..00000000000
--- a/mcs/class/corlib/System.Collections/DictionaryBase.cs
+++ /dev/null
@@ -1,372 +0,0 @@
-//
-// System.Collections.DictionaryBase.cs
-//
-// Author:
-// Miguel de Icaza (miguel@ximian.com)
-//
-// (C) Ximian, Inc. http://www.ximian.com
-//
-
-using System;
-
-namespace System.Collections {
-
- /// <summary>
- /// An abstract class that provides a simple way to monitor changes to a
- /// Hashtable. Derived classes overwrite one or more of the `On' methods
- /// to track the changes to the Hashtable.
- /// </summary>
- ///
- /// <remarks>
- /// This class is a base class that can simplify the development of
- /// strongly typed collections. The idea being that the insertion of elements
- /// into the Hashtable can be forced to be of a given type.
- ///
- /// The `On' members are protected and designed to be used only by derived
- /// classes.
- /// </remarks>
- [Serializable]
- public abstract class DictionaryBase : IDictionary, ICollection, IEnumerable {
-
- Hashtable dictionary;
-
- protected DictionaryBase ()
- {
- dictionary = new Hashtable ();
- }
-
- /// <summary>
- /// Clears the contents of the dictionary
- /// </summary>
- public void Clear ()
- {
- OnClear ();
- dictionary.Clear ();
- OnClearComplete ();
- }
-
- /// <summary>
- /// Returns the number of items in the dictionary
- /// </summary>
- public int Count {
- get {
- return dictionary.Count;
- }
- }
-
- /// <summary>
- /// The collection contained as an IDictionary
- /// </summary>
- protected IDictionary Dictionary {
- get {
- return dictionary;
- }
- }
-
- /// <summary>
- /// The internal Hashtable representation for this dictionary
- /// </summary>
- protected Hashtable InnerHashtable {
- get {
- return dictionary;
- }
- }
-
- /// <summary>
- /// Copies the contents of the Dictionary into the target array
- /// </summary>
- /// <param name="array">
- /// The array to copy the contents of the dictionary to. The
- /// array must have a zero-based indexing
- /// </param>
- /// <param name="index">
- /// Starting index within the array where to copy the objects
- /// to.
- /// </param>
- public void CopyTo (Array array, int index)
- {
- if (array == null)
- throw new ArgumentNullException ("array");
- if (index < 0)
- throw new ArgumentOutOfRangeException ("index must be possitive");
- if (array.Rank > 1)
- throw new ArgumentException ("array is multidimensional");
- int size = array.Length;
- if (index > size)
- throw new ArgumentException ("index is larger than array size");
- if (index + Count > size)
- throw new ArgumentException ("Copy will overlflow array");
-
- DoCopy (array, index);
- }
-
- /// <summary>
- /// Internal routine called by CopyTo to perform the actual
- /// copying of the data
- /// </summary>
- private void DoCopy (Array array, int index)
- {
- foreach (DictionaryEntry de in dictionary)
- array.SetValue (de, index++);
- }
-
- /// <summary>
- /// Returns an enumerator for the dictionary
- /// </summary>
- public IDictionaryEnumerator GetEnumerator ()
- {
- return dictionary.GetEnumerator ();
- }
-
- /// <summary>
- /// Hook invoked before the clear operation
- /// is performed on the DictionaryBase
- /// </summary>
- protected virtual void OnClear ()
- {
- }
-
- /// <summary>
- /// Hook invoked after the clear operation
- /// is performed on the DictionaryBase
- /// </summary>
- ///
- /// <remarks>
- /// The default implementation does nothing, derived classes
- /// can override this method to be notified of changes
- /// </remarks>
- protected virtual void OnClearComplete ()
- {
- }
-
- /// <summary>
- /// Hook invoked while fetching data from the DictionaryBase.
- /// </summary>
- ///
- /// <remarks>
- /// This method is provided as a simple way to override the values
- /// returned by the DictionaryBase.
- /// </remarks>
- ///
- /// <param name="key">Key of the object to retrieve</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual object OnGet (object key, object current_value)
- {
- return current_value;
- }
-
- /// <summary>
- /// Hook invoked before inserting data into the DictionaryBase.
- /// </summary>
- ///
- /// <remarks>
- /// Derived classes can override this method and perform some
- /// action before the <paramref name="current_value"/> is inserted
- /// into the dictionary.
- ///
- /// The default implementation does nothing, derived classes
- /// can override this method to be notified of changes
- /// </remarks>
- ///
- /// <param name="key">Key of the object to insert</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnInsert (object key, object current_value)
- {
- }
-
- /// <summary>
- /// Hook invoked after inserting the data into the DictionaryBase
- /// </summary>
- ///
- /// <remarks>
- /// The default implementation does nothing, derived classes
- /// can override this method to be notified of changes
- /// </remarks>
- ///
- /// <param name="key">Key of the object to insert</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnInsertComplete (object key, object current_value)
- {
- }
-
- /// <summary>
- /// Hook invoked before changing a value for a key in the DictionaryBase.
- /// </summary>
- ///
- /// <remarks>
- /// Derived classes can override this method and perform some
- /// action before the <paramref name="current_value"/> is changed
- /// in the dictionary.
- /// </remarks>
- ///
- /// <param name="key">Key of the object to change</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnSet (object key, object current_value, object new_value)
- {
- }
-
- /// <summary>
- /// Hook invoked after changing a value for a key in the DictionaryBase.
- /// </summary>
- ///
- /// <remarks>
- /// The default implementation does nothing, derived classes
- /// can override this method to be notified of changes
- /// </remarks>
- ///
- /// <param name="key">Key of the object to change</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnSetComplete (object key, object current_value, object new_value)
- {
- }
-
- /// <summary>
- /// Hook invoked before removing a key/value from the DictionaryBase.
- /// </summary>
- ///
- /// <remarks>
- /// Derived classes can override this method and perform some
- /// action before the <paramref name="current_value"/> is removed
- /// from the dictionary.
- /// </remarks>
- ///
- /// <param name="key">Key of the object to remove</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnRemove (object key, object current_value)
- {
- }
-
- /// <summary>
- /// Hook invoked after removing a key/value from the DictionaryBase.
- /// </summary>
- ///
- /// <remarks>
- /// The default implementation does nothing, derived classes
- /// can override this method to be notified of changes.
- /// </remarks>
- ///
- /// <param name="key">Key of the object to remove</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnRemoveComplete (object key, object current_value)
- {
- }
-
- /// <summary>
- /// Hook invoked after the value has been validated
- /// </summary>
- ///
- /// <remarks>
- /// The default implementation does nothing, derived classes
- /// can override this method to monitor the DictionaryBase.
- /// </remarks>
- ///
- /// <param name="key">Key of the object to retrieve</param>
- /// <param name="current_value">Current value of the object associated with
- /// <paramref name="key"/></param>
- protected virtual void OnValidate (object key, object current_value)
- {
- }
-
- bool IDictionary.IsFixedSize {
- get {
- return false;
- }
- }
-
- bool IDictionary.IsReadOnly {
- get {
- return false;
- }
- }
-
- object IDictionary.this [object key] {
- get {
- object value = dictionary [key];
-
- OnGet (key, value);
- return value;
- }
-
- set {
- if (dictionary.ContainsKey (key)){
- object current_value = dictionary [key];
- OnSet (key, current_value, value);
- dictionary [key] = value;
- OnSetComplete (key, current_value, value);
- } else {
- OnInsert (key, value);
- dictionary [key] = value;
- OnInsertComplete (key, value);
- }
- }
- }
-
- ICollection IDictionary.Keys {
- get {
- return dictionary.Keys;
- }
- }
-
- ICollection IDictionary.Values {
- get {
- return dictionary.Values;
- }
- }
-
- /// <summary>
- /// Adds a key/value pair to the dictionary.
- /// </summary>
- void IDictionary.Add (object key, object value)
- {
- OnInsert (key, value);
- dictionary.Add (key, value);
- OnInsertComplete (key, value);
- }
-
- /// <summary>
- /// Removes a Dictionary Entry based on its key
- /// </summary>
- void IDictionary.Remove (object key)
- {
- if (! dictionary.ContainsKey (key))
- return;
-
- object value = dictionary [key];
- OnRemove (key, value);
- dictionary.Remove (key);
- OnRemoveComplete (key, value);
- }
-
- /// <summary>
- /// Tests whether the dictionary contains an entry
- /// </summary>
- bool IDictionary.Contains (object key)
- {
- return dictionary.Contains (key);
- }
-
- bool ICollection.IsSynchronized {
- get {
- return dictionary.IsSynchronized;
- }
- }
-
- object ICollection.SyncRoot {
- get {
- return dictionary.SyncRoot;
- }
- }
-
- IEnumerator IEnumerable.GetEnumerator ()
- {
- return dictionary.GetEnumerator ();
- }
- }
-}