c31b7ed400402e3a6f83dd3c6ed03de53abe1e3b
[mono.git] / mcs / class / System.Data / System.Data.OleDb / OleDbParameterCollection.cs
1 //
2 // System.Data.OleDb.OleDbParameterCollection
3 //
4 // Author:
5 //   Rodrigo Moya (rodrigo@ximian.com)
6 //
7 // Copyright (C) Rodrigo Moya, 2002
8 //
9
10 using System.Collections;
11 using System.Data;
12 using System.Data.Common;
13
14 namespace System.Data.OleDb
15 {
16         public sealed class OleDbParameterCollection : MarshalByRefObject,
17                 IDataParameterCollection, IList, ICollection, IEnumerable
18         {
19                 private ArrayList m_list = new ArrayList ();
20
21                 /*
22                  * Properties
23                  */
24
25                 int ICollection.Count {
26                         get {
27                                 return m_list.Count;
28                         }
29                 }
30
31                 public IDataParameter this[int index]
32                 {
33                         get {
34                                 return (OleDbParameter) m_list[index];
35                         }
36                         set {
37                                 m_list[index] = value;
38                         }
39                 }
40
41                 public object this[string name]
42                 {
43                         [MonoTODO]
44                         get {
45                                 throw new NotImplementedException ();
46                         }
47                         [MonoTODO]
48                         set {
49                                 throw new NotImplementedException ();
50                         }
51                 }
52
53                 /*
54                  * Methods
55                  */
56
57                 int IList.Add (object value)
58                 {
59                         if (!(value is IDataParameter))
60                                 throw new InvalidCastException ();
61
62                         m_list.Add (value);
63                         return m_list.IndexOf (value);
64                 }
65
66                 public OleDbParameter Add (OleDbParameter parameter)
67                 {
68                         m_list.Add (parameter);
69                         return parameter;
70                 }
71
72                 public OleDbParameter Add (string name, object value)
73                 {
74                         OleDbParameter parameter = new OleDbParameter (name, value);
75                         m_list.Add (parameter);
76                         return parameter;
77                 }
78
79                 public OleDbParameter Add (string name, OleDbType type)
80                 {
81                         OleDbParameter parameter = new OleDbParameter (name, type);
82                         m_list.Add (parameter);
83                         return parameter;
84                 }
85
86                 public OleDbParameter Add (string name, OleDbType type, int width)
87                 {
88                         OleDbParameter parameter = new OleDbParameter (name, type, width);
89                         m_list.Add (parameter);
90                         return parameter;
91                 }
92
93                 public OleDbParameter Add (string name, OleDbType type,
94                                            int width, string src_col)
95                 {
96                         OleDbParameter parameter = new OleDbParameter (name, type, width, src_col);
97                         m_list.Add (parameter);
98                         return parameter;
99                 }
100
101                 void IList.Clear ()
102                 {
103                         m_list.Clear ();
104                 }
105
106                 bool IList.Contains (object value)
107                 {
108                         return m_list.Contains (value);
109                 }
110
111                 bool IDataParameterCollection.Contains (string value)
112                 {
113                         for (int i = 0; i < m_list.Count; i++) {
114                                 OleDbParameter parameter;
115
116                                 parameter = (OleDbParameter) m_list[i];
117                                 if (parameter.ParameterName == value)
118                                         return true;
119                         }
120
121                         return false;
122                 }
123
124                 void ICollection.CopyTo (Array array, int index)
125                 {
126                         ((OleDbParameter[])(m_list.ToArray ())).CopyTo (array, index);
127                 }
128
129                 int IList.IndexOf (object value)
130                 {
131                         return m_list.IndexOf (value);
132                 }
133
134                 int IDataParameterCollection.IndexOf (string name)
135                 {
136                         return m_list.IndexOf ((object) this[name]);
137                 }
138
139                 void IList.Insert (int index, object value)
140                 {
141                         m_list.Insert (index, value);
142                 }
143
144                 void IList.Remove (object value)
145                 {
146                         m_list.Remove (value);
147                 }
148
149                 void IList.RemoveAt (int index)
150                 {
151                         m_list.Remove ((object) m_list[index]);
152                 }
153
154                 void IDataParameterCollection.RemoveAt (string name)
155                 {
156                         m_list.Remove ((object) this[name]);
157                 }
158         }
159 }