2 // OracleParameterCollection.cs
4 // Part of the Mono class libraries at
5 // mcs/class/System.Data.OracleClient/System.Data.OracleClient
7 // Assembly: System.Data.OracleClient.dll
8 // Namespace: System.Data.OracleClient
11 // Tim Coleman <tim@timcoleman.com>
13 // Copyright (C) Tim Coleman , 2003
15 // Licensed under the MIT/X11 License.
19 using System.Collections;
20 using System.ComponentModel;
22 using System.Data.OracleClient.Oci;
24 namespace System.Data.OracleClient {
25 public class OracleParameterCollection : MarshalByRefObject, IDataParameterCollection, IList, ICollection, IEnumerable
29 OracleCommand command;
36 internal OracleParameterCollection (OracleCommand command)
39 this.command = command;
42 public OracleParameterCollection ()
44 list = new ArrayList ();
47 #endregion // Constructors
52 get { return list.Count; }
55 public bool IsFixedSize {
59 public bool IsReadOnly {
63 public bool IsSynchronized {
67 public OracleParameter this [string parameterName] {
69 foreach (OracleParameter p in list)
70 if (p.ParameterName.Equals (parameterName))
72 throw new IndexOutOfRangeException ("The specified name does not exist: " + parameterName);
75 if (!Contains (parameterName))
76 throw new IndexOutOfRangeException ("The specified name does not exist: " + parameterName);
77 this [IndexOf (parameterName)] = value;
81 object IList.this [int index] {
82 get { return (OracleParameter) this [index]; }
83 set { this [index] = (OracleParameter) value; }
86 bool IList.IsFixedSize {
87 get { return IsFixedSize; }
90 bool IList.IsReadOnly {
91 get { return IsReadOnly; }
94 bool ICollection.IsSynchronized {
95 get { return IsSynchronized; }
98 object ICollection.SyncRoot {
99 get { return SyncRoot; }
102 public OracleParameter this [int index] {
103 get { return (OracleParameter) list [index]; }
104 set { list [index] = value; }
107 object IDataParameterCollection.this [string parameterName] {
108 get { return this [parameterName]; }
110 if (!(value is OracleParameter))
111 throw new InvalidCastException ("The parameter was not an OracleParameter.");
112 this [parameterName] = (OracleParameter) value;
116 public object SyncRoot {
120 #endregion // Properties
124 public int Add (object value)
126 if (!(value is OracleParameter))
127 throw new InvalidCastException ("The parameter was not an OracleParameter.");
128 Add ((OracleParameter) value);
129 return IndexOf (value);
132 public OracleParameter Add (OracleParameter value)
134 if (value.Container != null)
135 throw new ArgumentException ("The OracleParameter specified in the value parameter is already added to this or another OracleParameterCollection.");
136 value.Container = this;
141 public OracleParameter Add (string parameterName, object value)
143 return Add (new OracleParameter (parameterName, value));
146 public OracleParameter Add (string parameterName, OracleType dataType)
148 return Add (new OracleParameter (parameterName, dataType));
151 public OracleParameter Add (string parameterName, OracleType dataType, int size)
153 return Add (new OracleParameter (parameterName, dataType, size));
156 public OracleParameter Add (string parameterName, OracleType dataType, int size, string srcColumn)
158 return Add (new OracleParameter (parameterName, dataType, size, srcColumn));
166 public bool Contains (object value)
168 if (!(value is OracleParameter))
169 throw new InvalidCastException ("The parameter was not an OracleParameter.");
170 return Contains (((OracleParameter) value).ParameterName);
173 public bool Contains (string parameterName)
175 foreach (OracleParameter p in list)
176 if (p.ParameterName.Equals (parameterName))
181 public void CopyTo (Array array, int index)
183 list.CopyTo (array, index);
186 public IEnumerator GetEnumerator ()
188 return list.GetEnumerator ();
191 public int IndexOf (object value)
193 if (!(value is OracleParameter))
194 throw new InvalidCastException ("The parameter was not an OracleParameter.");
195 return IndexOf (((OracleParameter) value).ParameterName);
198 public int IndexOf (string parameterName)
200 for (int i = 0; i < Count; i += 1)
201 if (this [i].ParameterName.Equals (parameterName))
206 public void Insert (int index, object value)
208 if (!(value is OracleParameter))
209 throw new InvalidCastException ("The parameter was not an OracleParameter.");
210 list.Insert (index, value);
213 public void Remove (object value)
215 if (!(value is OracleParameter))
216 throw new InvalidCastException ("The parameter was not an OracleParameter.");
220 public void RemoveAt (int index)
222 list.RemoveAt (index);
225 public void RemoveAt (string parameterName)
227 list.RemoveAt (IndexOf (parameterName));
230 #endregion // Methods