* SqlException.cs: Do not hide Message on 2.0 profile. Fixes bug
[mono.git] / mcs / class / System.Data / System.Data.SqlClient / SqlBulkCopyColumnMappingCollection.cs
1 //
2 // System.Data.SqlClient.SqlBulkCopyColumnMappingCollection.cs
3 //
4 // Author:
5 //   Nagappan A <anagappan@novell.com>
6 //
7
8 //
9 // Copyright (C) 2007 Novell, Inc (http://www.novell.com)
10 //
11 // Permission is hereby granted, free of charge, to any person obtaining
12 // a copy of this software and associated documentation files (the
13 // "Software"), to deal in the Software without restriction, including
14 // without limitation the rights to use, copy, modify, merge, publish,
15 // distribute, sublicense, and/or sell copies of the Software, and to
16 // permit persons to whom the Software is furnished to do so, subject to
17 // the following conditions:
18 // 
19 // The above copyright notice and this permission notice shall be
20 // included in all copies or substantial portions of the Software.
21 // 
22 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
23 // EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
24 // MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
25 // NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
26 // LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
27 // OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
28 // WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
29 //
30
31 #if NET_2_0
32
33 using System;
34 using System.Data;
35 using System.Data.Common;
36 using System.Collections;
37
38 namespace System.Data.SqlClient
39 {
40         public sealed class SqlBulkCopyColumnMappingCollection : CollectionBase {
41
42                 #region Constructors
43
44                 internal SqlBulkCopyColumnMappingCollection () 
45                 {
46                         // Do nothing - Created the constructor as the class status page
47                         // was reporting extra constructor which gets generated by default
48                 }
49
50                 #endregion // Constructors
51
52                 public SqlBulkCopyColumnMapping this [int value] {
53                         get {
54                                 if (value < 0 || value > base.Count)
55                                         throw new ArgumentOutOfRangeException ("Index is out of range");
56                                 return (SqlBulkCopyColumnMapping) base.List [value];
57                         }
58                 }
59         
60                 #region Methods
61         
62                 public SqlBulkCopyColumnMapping Add (SqlBulkCopyColumnMapping bulkCopyColumnMapping)
63                 {
64                         if (bulkCopyColumnMapping == null)
65                                 throw new ArgumentNullException ("bulkCopyColumnMapping");
66                         List.Add (bulkCopyColumnMapping);
67                         return bulkCopyColumnMapping;
68
69                 }
70
71                 public SqlBulkCopyColumnMapping Add (int sourceColumnIndex, int destinationColumnIndex)
72                 {
73                         SqlBulkCopyColumnMapping columnMapping = new SqlBulkCopyColumnMapping (sourceColumnIndex,
74                                                                                                destinationColumnIndex);
75                         return Add (columnMapping);
76                 }
77
78                 public SqlBulkCopyColumnMapping Add (int sourceColumnIndex, string destinationColumn)
79                 {
80                         SqlBulkCopyColumnMapping columnMapping = new SqlBulkCopyColumnMapping (sourceColumnIndex,
81                                                                                                destinationColumn);
82                         return Add (columnMapping);
83                 }
84
85                 public SqlBulkCopyColumnMapping Add (string sourceColumn, int destinationColumnIndex)
86                 {
87                         SqlBulkCopyColumnMapping columnMapping = new SqlBulkCopyColumnMapping (sourceColumn,
88                                                                                                destinationColumnIndex);
89                         return Add (columnMapping);
90                 }
91
92                 public SqlBulkCopyColumnMapping Add (string sourceColumn, string destinationColumn)
93                 {
94                         SqlBulkCopyColumnMapping columnMapping = new SqlBulkCopyColumnMapping (sourceColumn,
95                                                                                                destinationColumn);
96                         return Add (columnMapping);
97                 }
98
99                 public new void Clear ()
100                 {
101                         List.Clear ();
102                 }
103
104                 public bool Contains (SqlBulkCopyColumnMapping value)
105                 {
106                         return List.Contains (value);
107                 }
108
109                 public int IndexOf (SqlBulkCopyColumnMapping value)
110                 {
111                         return List.IndexOf (value);
112                 }
113
114                 public void CopyTo (SqlBulkCopyColumnMapping [] array, int index)
115                 {
116                         if (index < 0 || index > base.Count)
117                                 throw new ArgumentOutOfRangeException ("Index is out of range");
118                         if (array == null)
119                                 throw new ArgumentNullException ("array");
120                         int len = base.Count;
121                         if (len - index > array.Length)
122                                 len = array.Length;
123                         for (int i = index, j = 0; i < base.Count; i++, j++)
124                                 array [j] = (SqlBulkCopyColumnMapping) List [i];
125                 }
126
127                 public void Insert (int index, SqlBulkCopyColumnMapping value)
128                 {
129                         if (index < 0 || index > base.Count)
130                                 throw new ArgumentOutOfRangeException ("Index is out of range");
131                         List.Insert (index, value);
132                 }
133
134                 public void Remove (SqlBulkCopyColumnMapping value)
135                 {
136                         List.Remove (value);
137                 }
138
139                 public new void RemoveAt (int index)
140                 {
141                         if (index < 0 || index > base.Count)
142                                 throw new ArgumentOutOfRangeException ("Index is out of range");
143                         base.RemoveAt (index);
144                 }
145
146                 #endregion
147         }
148 }
149
150 #endif