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
;
23 using System
.Drawing
.Design
;
24 using System
.Reflection
;
26 namespace System
.Data
.OracleClient
{
27 [ListBindable (false)]
28 [Editor ("Microsoft.VSDesigner.Data.Oracle.Design.DBParametersEditor, " + Consts
.AssemblyMicrosoft_VSDesigner
, typeof(UITypeEditor
))]
29 public sealed class OracleParameterCollection
: MarshalByRefObject
, IDataParameterCollection
, IList
, ICollection
, IEnumerable
33 OracleCommand command
;
40 internal OracleParameterCollection (OracleCommand command
)
43 this.command
= command
;
46 public OracleParameterCollection ()
48 list
= new ArrayList ();
51 #endregion // Constructors
56 get { return list.Count; }
59 public bool IsFixedSize
{
63 public bool IsReadOnly
{
67 public bool IsSynchronized
{
71 public OracleParameter
this [string parameterName
] {
73 foreach (OracleParameter p
in list
)
74 if (p
.ParameterName
.Equals (parameterName
))
76 throw new IndexOutOfRangeException ("The specified name does not exist: " + parameterName
);
79 if (!Contains (parameterName
))
80 throw new IndexOutOfRangeException ("The specified name does not exist: " + parameterName
);
81 this [IndexOf (parameterName
)] = value;
85 object IList
.this [int index
] {
86 get { return (OracleParameter) this [index]; }
87 set { this [index] = (OracleParameter) value; }
90 bool IList
.IsFixedSize
{
91 get { return IsFixedSize; }
94 bool IList
.IsReadOnly
{
95 get { return IsReadOnly; }
98 bool ICollection
.IsSynchronized
{
99 get { return IsSynchronized; }
102 object ICollection
.SyncRoot
{
103 get { return SyncRoot; }
106 public OracleParameter
this [int index
] {
107 get { return (OracleParameter) list [index]; }
108 set { list [index] = value; }
111 object IDataParameterCollection
.this [string parameterName
] {
112 get { return this [parameterName]; }
114 if (!(value is OracleParameter
))
115 throw new InvalidCastException ("The parameter was not an OracleParameter.");
116 this [parameterName
] = (OracleParameter
) value;
120 public object SyncRoot
{
124 #endregion // Properties
128 public int Add (object value)
130 if (!(value is OracleParameter
))
131 throw new InvalidCastException ("The parameter was not an OracleParameter.");
132 Add ((OracleParameter
) value);
133 return IndexOf (value);
136 public OracleParameter
Add (OracleParameter
value)
138 if (value.Container
!= null)
139 throw new ArgumentException ("The OracleParameter specified in the value parameter is already added to this or another OracleParameterCollection.");
140 value.Container
= this;
145 public OracleParameter
Add (string parameterName
, object value)
147 return Add (new OracleParameter (parameterName
, value));
150 public OracleParameter
Add (string parameterName
, OracleType dataType
)
152 return Add (new OracleParameter (parameterName
, dataType
));
155 public OracleParameter
Add (string parameterName
, OracleType dataType
, int size
)
157 return Add (new OracleParameter (parameterName
, dataType
, size
));
160 public OracleParameter
Add (string parameterName
, OracleType dataType
, int size
, string srcColumn
)
162 return Add (new OracleParameter (parameterName
, dataType
, size
, srcColumn
));
170 public bool Contains (object value)
172 if (!(value is OracleParameter
))
173 throw new InvalidCastException ("The parameter was not an OracleParameter.");
174 return Contains (((OracleParameter
) value).ParameterName
);
177 public bool Contains (string parameterName
)
179 foreach (OracleParameter p
in list
)
180 if (p
.ParameterName
.Equals (parameterName
))
185 public void CopyTo (Array array
, int index
)
187 list
.CopyTo (array
, index
);
190 public IEnumerator
GetEnumerator ()
192 return list
.GetEnumerator ();
195 public int IndexOf (object value)
197 if (!(value is OracleParameter
))
198 throw new InvalidCastException ("The parameter was not an OracleParameter.");
199 return IndexOf (((OracleParameter
) value).ParameterName
);
202 public int IndexOf (string parameterName
)
204 for (int i
= 0; i
< Count
; i
+= 1)
205 if (this [i
].ParameterName
.Equals (parameterName
))
210 public void Insert (int index
, object value)
212 if (!(value is OracleParameter
))
213 throw new InvalidCastException ("The parameter was not an OracleParameter.");
214 list
.Insert (index
, value);
217 public void Remove (object value)
219 if (!(value is OracleParameter
))
220 throw new InvalidCastException ("The parameter was not an OracleParameter.");
224 public void RemoveAt (int index
)
226 list
.RemoveAt (index
);
229 public void RemoveAt (string parameterName
)
231 list
.RemoveAt (IndexOf (parameterName
));
234 #endregion // Methods