2 // System.CodeDOM CodeParameterDeclarationExpressionCollection Class implementation
5 // Miguel de Icaza (miguel@ximian.com)
7 // (C) 2001 Ximian, Inc.
10 namespace System.CodeDOM {
12 using System.Collections;
14 public class CodeParameterDeclarationExpressionCollection : IList, ICollection, IEnumerable {
16 ArrayList parameterDeclExprs;
21 public CodeParameterDeclarationExpressionCollection ()
23 parameterDeclExprs = new ArrayList ();
31 return parameterDeclExprs.Count;
38 public void Add (CodeParameterDeclarationExpression value)
40 parameterDeclExprs.Add (value);
43 public void AddRange (CodeParameterDeclarationExpression [] values)
45 foreach (CodeParameterDeclarationExpression ca in values)
46 parameterDeclExprs.Add (ca);
52 parameterDeclExprs.Clear ();
55 private class Enumerator : IEnumerator {
56 private CodeParameterDeclarationExpressionCollection collection;
57 private int currentIndex = -1;
59 internal Enumerator (CodeParameterDeclarationExpressionCollection collection)
61 this.collection = collection;
64 public object Current {
66 if (currentIndex == collection.Count)
67 throw new InvalidOperationException ();
68 return collection [currentIndex];
72 public bool MoveNext ()
74 if (currentIndex > collection.Count)
75 throw new InvalidOperationException ();
76 return ++currentIndex < collection.Count;
85 public IEnumerator GetEnumerator ()
87 return new CodeParameterDeclarationExpressionCollection.Enumerator (this);
91 // IList method implementations
93 public int Add (object value)
95 return parameterDeclExprs.Add (value);
98 public bool Contains (Object value)
100 return parameterDeclExprs.Contains (value);
103 public int IndexOf (Object value)
105 return parameterDeclExprs.IndexOf (value);
108 public void Insert (int index, Object value)
110 parameterDeclExprs [index] = value;
113 public object this[int index] {
115 return parameterDeclExprs [index];
119 parameterDeclExprs [index] = value;
123 public void Remove (object value)
125 parameterDeclExprs.Remove (value);
128 public void RemoveAt (int index)
130 parameterDeclExprs.RemoveAt (index);
134 // ICollection method implementations
136 public void CopyTo (Array array, int index)
138 parameterDeclExprs.CopyTo (array, index);
141 public object SyncRoot {
143 return parameterDeclExprs.SyncRoot;
147 public bool IsReadOnly {
153 public bool IsSynchronized {
155 return parameterDeclExprs.IsSynchronized;