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;
15 public class CodeParameterDeclarationExpressionCollection : IList, ICollection, IEnumerable {
17 ArrayList parameterDeclExprs;
22 public CodeParameterDeclarationExpressionCollection ()
24 parameterDeclExprs = new ArrayList ();
32 return parameterDeclExprs.Count;
36 public bool IsFixedSize {
45 public void Add (CodeParameterDeclarationExpression value)
47 parameterDeclExprs.Add (value);
50 public void AddRange (CodeParameterDeclarationExpression [] values)
52 foreach (CodeParameterDeclarationExpression ca in values)
53 parameterDeclExprs.Add (ca);
59 parameterDeclExprs.Clear ();
62 private class Enumerator : IEnumerator {
63 private CodeParameterDeclarationExpressionCollection collection;
64 private int currentIndex = -1;
66 internal Enumerator (CodeParameterDeclarationExpressionCollection collection)
68 this.collection = collection;
71 public object Current {
73 if (currentIndex == collection.Count)
74 throw new InvalidOperationException ();
75 return collection [currentIndex];
79 public bool MoveNext ()
81 if (currentIndex > collection.Count)
82 throw new InvalidOperationException ();
83 return ++currentIndex < collection.Count;
92 public IEnumerator GetEnumerator ()
94 return new CodeParameterDeclarationExpressionCollection.Enumerator (this);
98 // IList method implementations
100 public int Add (object value)
102 return parameterDeclExprs.Add (value);
105 public bool Contains (Object value)
107 return parameterDeclExprs.Contains (value);
110 public int IndexOf (Object value)
112 return parameterDeclExprs.IndexOf (value);
115 public void Insert (int index, Object value)
117 parameterDeclExprs [index] = value;
120 public object this[int index] {
122 return parameterDeclExprs [index];
126 parameterDeclExprs [index] = value;
130 public void Remove (object value)
132 parameterDeclExprs.Remove (value);
135 public void RemoveAt (int index)
137 parameterDeclExprs.RemoveAt (index);
141 // ICollection method implementations
143 public void CopyTo (Array array, int index)
145 parameterDeclExprs.CopyTo (array, index);
148 public object SyncRoot {
150 return parameterDeclExprs.SyncRoot;
154 public bool IsReadOnly {
160 public bool IsSynchronized {
162 return parameterDeclExprs.IsSynchronized;