* CodeParameterDeclarationExpressionCollection.cs: Use CollectionBase
[mono.git] / mcs / class / System / System.CodeDom / CodeDirectiveCollection.cs
index 3ad81c3d23c41972766500a2a685f0de56196962..227385d694800df9850d9bb6686719aebf71c023 100644 (file)
@@ -1,12 +1,12 @@
 //
 // System.CodeDom CodeDirectiveCollection class
 //
-// Author:
-//   Marek Safar (marek.safar@seznam.cz)
+// Authors:
+//     Marek Safar (marek.safar@seznam.cz)
+//     Sebastien Pouliot  <sebastien@ximian.com>
 //
 // (C) 2004 Ximian, Inc.
-//
-
+// Copyright (C) 2005 Novell, Inc (http://www.novell.com)
 //
 // Permission is hereby granted, free of charge, to any person obtaining
 // a copy of this software and associated documentation files (the
@@ -36,19 +36,81 @@ namespace System.CodeDom
 {
        [Serializable]
        [ComVisible (true), ClassInterface (ClassInterfaceType.AutoDispatch)]
-       public class CodeDirectiveCollection: System.Collections.CollectionBase
-       {
-               public CodeDirectiveCollection () {}
+       public class CodeDirectiveCollection: System.Collections.CollectionBase {
+
+               public CodeDirectiveCollection ()
+               {
+               }
+
+               public CodeDirectiveCollection (CodeDirective[] value)
+               {
+                       AddRange (value);
+               }
 
                public CodeDirectiveCollection (CodeDirectiveCollection value)
                {
+                       AddRange (value);
                }
 
+
+               public CodeDirective this [int index] {
+                       get { return (CodeDirective) List [index]; }
+                       set { List [index] = value; }
+               }
+
+
                public int Add (CodeDirective value)
                {
                        return List.Add (value);
                }
 
+               public void AddRange (CodeDirective[] value)
+               {
+                       if (value == null) {
+                               throw new ArgumentNullException ("value");
+                       }
+
+                       for (int i = 0; i < value.Length; i++) {
+                               Add (value[i]);
+                       }
+               }
+               
+               public void AddRange (CodeDirectiveCollection value)
+               {
+                       if (value == null) {
+                               throw new ArgumentNullException ("value");
+                       }
+
+                       int count = value.Count;
+                       for (int i = 0; i < count; i++) {
+                               Add (value[i]);
+                       }
+               }
+
+               public bool Contains (CodeDirective value)
+               {
+                       return List.Contains (value);
+               }
+               
+               public void CopyTo (CodeDirective[] array, int index)
+               {
+                       List.CopyTo (array, index);
+               }
+
+               public int IndexOf (CodeDirective value)
+               {
+                       return List.IndexOf (value);
+               }
+
+               public void Insert (int index, CodeDirective value)
+               {
+                       List.Insert (index, value);
+               }
+
+               public void Remove (CodeDirective value)
+               {
+                       List.Remove (value);
+               }
        }
 }