added missing [Serializable] attribute
[mono.git] / mcs / class / System / System.CodeDom / CodeParameterDeclarationExpressionCollection.cs
1 //
2 // System.CodeDom CodeParameterDeclarationExpressionCollection Class implementation
3 //
4 // Author:
5 //   Miguel de Icaza (miguel@ximian.com)
6 //
7 // (C) 2001 Ximian, Inc.
8 //
9
10 namespace System.CodeDom {
11
12         using System.Collections;
13         
14         [Serializable]
15         public class CodeParameterDeclarationExpressionCollection : IList, ICollection, IEnumerable {
16
17                 ArrayList parameterDeclExprs;
18                 
19                 //
20                 // Constructors
21                 //
22                 public CodeParameterDeclarationExpressionCollection ()
23                 {
24                         parameterDeclExprs = new ArrayList ();
25                 }
26
27                 //
28                 // Properties
29                 //
30                 public int Count {
31                         get {
32                                 return parameterDeclExprs.Count;
33                         }
34                 }
35
36                 public bool IsFixedSize {
37                         get {
38                                 return true;
39                         }
40                 }
41
42                 //
43                 // Methods
44                 //
45                 public void Add (CodeParameterDeclarationExpression value)
46                 {
47                         parameterDeclExprs.Add (value);
48                 }
49
50                 public void AddRange (CodeParameterDeclarationExpression [] values)
51                 {
52                         foreach (CodeParameterDeclarationExpression ca in values) 
53                                 parameterDeclExprs.Add (ca);
54
55                 }
56
57                 public void Clear ()
58                 {
59                         parameterDeclExprs.Clear ();
60                 }
61
62                 private class Enumerator : IEnumerator {
63                         private CodeParameterDeclarationExpressionCollection collection;
64                         private int currentIndex = -1;
65
66                         internal Enumerator (CodeParameterDeclarationExpressionCollection collection)
67                         {
68                                 this.collection = collection;
69                         }
70
71                         public object Current {
72                                 get {
73                                         if (currentIndex == collection.Count)
74                                                 throw new InvalidOperationException ();
75                                         return collection [currentIndex];
76                                 }
77                         }
78
79                         public bool MoveNext ()
80                         {
81                                 if (currentIndex > collection.Count)
82                                         throw new InvalidOperationException ();
83                                 return ++currentIndex < collection.Count;
84                         }
85
86                         public void Reset ()
87                         {
88                                 currentIndex = -1;
89                         }
90                 }
91                 
92                 public IEnumerator GetEnumerator ()
93                 {
94                         return new CodeParameterDeclarationExpressionCollection.Enumerator (this);
95                 }
96
97                 //
98                 // IList method implementations
99                 //
100                 public int Add (object value)
101                 {
102                         return parameterDeclExprs.Add (value);
103                 }
104
105                 public bool Contains (Object value)
106                 {
107                         return parameterDeclExprs.Contains (value);
108                 }
109
110                 public int IndexOf (Object value)
111                 {
112                         return parameterDeclExprs.IndexOf (value);
113                 }
114
115                 public void Insert (int index, Object value)
116                 {
117                         parameterDeclExprs [index] = value;
118                 }
119
120                 public object this[int index] {
121                         get {
122                                 return parameterDeclExprs [index];
123                         }
124
125                         set {
126                                 parameterDeclExprs [index] = value;
127                         }
128                 }
129
130                 public void Remove (object value)
131                 {
132                         parameterDeclExprs.Remove (value);
133                 }
134
135                 public void RemoveAt (int index)
136                 {
137                         parameterDeclExprs.RemoveAt (index);
138                 }
139
140                 //
141                 // ICollection method implementations
142                 //
143                 public void CopyTo (Array array, int index)
144                 {
145                         parameterDeclExprs.CopyTo (array, index);
146                 }
147
148                 public object SyncRoot {
149                         get {
150                                 return parameterDeclExprs.SyncRoot;
151                         }
152                 }
153
154                 public bool IsReadOnly {
155                         get {
156                                 return false;
157                         }
158                 }
159
160                 public bool IsSynchronized {
161                         get {
162                                 return parameterDeclExprs.IsSynchronized;
163                         }
164                 }
165         }
166 }