Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.DataControl / Tizen.Applications.DataControl / Results.cs
1 /*
2  * Copyright (c) 2017 Samsung Electronics Co., Ltd All Rights Reserved
3  *
4  * Licensed under the Apache License, Version 2.0 (the License);
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an AS IS BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16
17 using System;
18
19 namespace Tizen.Applications.DataControl
20 {
21     /// <summary>
22     /// This class is for containing insert operation result.
23     /// </summary>
24     public class InsertResult
25     {
26         /// <summary>
27         /// Gets the insert data's row id.
28         /// </summary>
29         public long RowID
30         {
31             get;
32             private set;
33         }
34
35         /// <summary>
36         /// Gets the insert operation result.
37         /// </summary>
38         public bool Result
39         {
40             get;
41             private set;
42         }
43
44         /// <summary>
45         /// Initializes InsertResult class with columnNames and columnTypes.
46         /// </summary>
47         /// <param name="rowID">Inserted row ID</param>
48         /// <param name="result">Insert request result</param>
49         public InsertResult(long rowID, bool result)
50         {
51             RowID = rowID;
52             Result = result;
53         }
54     }
55
56     /// <summary>
57     /// This class is for containing bulk insert operation result.
58     /// </summary>
59     public class BulkInsertResult
60     {
61         /// <summary>
62         /// Gets the bulk insert operation result data.
63         /// </summary>
64         public BulkResultData BulkResultData
65         {
66             get;
67             private set;
68         }
69
70         /// <summary>
71         /// Gets the bulk insert operation result.
72         /// </summary>
73         public bool Result
74         {
75             get;
76             private set;
77         }
78
79         /// <summary>
80         /// Initializes InsertResult class with bulkResultData and result.
81         /// </summary>
82         /// <param name="bulkResultData">Bulk insert request result data</param>
83         /// <param name="result">Bulk insert request result</param>
84         /// <exception cref="ArgumentException">Thrown in case of Invalid parmaeter.</exception>
85         public BulkInsertResult(BulkResultData bulkResultData, bool result)
86         {
87             if (result == true && (bulkResultData == null || bulkResultData.SafeBulkDataHandle.IsInvalid))
88             {
89                 ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "bulkResultData");
90             }
91
92             BulkResultData = bulkResultData;
93             Result = result;
94         }
95     }
96
97     /// <summary>
98     /// This class is for containing update operation result.
99     /// </summary>
100     public class UpdateResult
101     {
102         /// <summary>
103         /// Gets the update operation result.
104         /// </summary>
105         public bool Result
106         {
107             get;
108             private set;
109         }
110
111         /// <summary>
112         /// Initializes UpdateResult class with result.
113         /// </summary>
114         /// <param name="result">Update request result</param>
115         public UpdateResult(bool result)
116         {
117             Result = result;
118         }
119     }
120
121     /// <summary>
122     /// This class is for containing delete operation result.
123     /// </summary>
124     public class DeleteResult
125     {
126         /// <summary>
127         /// Gets the delete operation result.
128         /// </summary>
129         public bool Result
130         {
131             get;
132             private set;
133         }
134
135         /// <summary>
136         /// Initializes DeleteResult class with result.
137         /// </summary>
138         /// <param name="result">Delete request result</param>
139         public DeleteResult(bool result)
140         {
141             Result = result;
142         }
143     }
144
145     /// <summary>
146     /// This class is for containing select operation result.
147     /// </summary>
148     public class SelectResult
149     {
150         /// <summary>
151         /// Gets the select operation result cursor.
152         /// </summary>
153         public ICursor ResultCursor
154         {
155             get;
156             private set;
157         }
158         /// <summary>
159         /// Gets the select operation result.
160         /// </summary>
161         public bool Result
162         {
163             get;
164             private set;
165         }
166
167         /// <summary>
168         /// Initializes SelectResult class with cursor and result.
169         /// </summary>
170         /// <param name="cursor">Cursor with selected data</param>
171         /// <param name="result">Select request result</param>
172         /// <exception cref="ArgumentException">Thrown in case of Invalid parmaeter.</exception>
173         public SelectResult(ICursor cursor, bool result)
174         {
175             int i;
176
177             if (result == true && cursor == null)
178             {
179                 ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "cursor");
180             }
181
182             if (result == true && (cursor is MatrixCursor) == false)
183             {
184                 if (cursor.GetColumnCount() <= 0)
185                 {
186                     ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "column count");
187                 }
188
189                 for (i = 0; i < cursor.GetColumnCount(); i++)
190                 {
191                     if (string.IsNullOrEmpty(cursor.GetColumnName(i)))
192                     {
193                         ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "column name index " + i.ToString());
194                     }
195
196                     if (cursor.GetColumnType(i) < ColumnType.ColumnTypeInt || cursor.GetColumnType(i) > ColumnType.ColumnTypeBlob)
197                     {
198                         ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "column type index" + i.ToString());
199                     }
200                 }
201             }
202
203             ResultCursor = cursor;
204             Result = result;
205         }
206     }
207
208     /// <summary>
209     /// This class is for containing MapAdd operation result.
210     /// </summary>
211     public class MapAddResult
212     {
213
214         /// <summary>
215         /// Gets the MapAdd operation result.
216         /// </summary>
217         public bool Result
218         {
219             get;
220             private set;
221         }
222
223         /// <summary>
224         /// Initializes MapAddResult class with result.
225         /// </summary>
226         /// <param name="result">MapAdd request result</param>
227         public MapAddResult(bool result)
228         {
229             Result = result;
230         }
231     }
232
233     /// <summary>
234     /// This class is for containing MapBulkAdd operation result.
235     /// </summary>
236     public class MapBulkAddResult
237     {
238         /// <summary>
239         /// Gets the MapBulkAdd operation result data.
240         /// </summary>
241         public BulkResultData BulkResultData
242         {
243             get;
244             private set;
245         }
246
247         /// <summary>
248         /// Gets the MapBulkAdd operation result.
249         /// </summary>
250         public bool Result
251         {
252             get;
253             private set;
254         }
255
256         /// <summary>
257         /// Initializes MapBulkAddResult class with bulkResultData and result.
258         /// </summary>
259         /// <param name="bulkResultData">MapBulkAdd request result data</param>
260         /// <param name="result">MapBulkAdd request result</param>
261         /// <exception cref="ArgumentException">Thrown in case of Invalid parmaeter.</exception>
262         public MapBulkAddResult(BulkResultData bulkResultData, bool result)
263         {
264             if (result == true && (bulkResultData == null || bulkResultData.SafeBulkDataHandle.IsInvalid))
265             {
266                 ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "bulkResultData");
267             }
268
269             BulkResultData = bulkResultData;
270             Result = result;
271         }
272     }
273
274     /// <summary>
275     /// This class is for containing MapSet operation result.
276     /// </summary>
277     public class MapSetResult
278     {
279         /// <summary>
280         /// Gets the MapSet operation result.
281         /// </summary>
282         public bool Result
283         {
284             get;
285             private set;
286         }
287
288         /// <summary>
289         /// Initializes MapSetResult class with result.
290         /// </summary>
291         /// <param name="result">MapSet request result</param>
292         public MapSetResult(bool result)
293         {
294             Result = result;
295         }
296     }
297
298     /// <summary>
299     /// This class is for containing MapRemove operation result.
300     /// </summary>
301     public class MapRemoveResult
302     {
303         /// <summary>
304         /// Gets the MapRemove operation result.
305         /// </summary>
306         public bool Result
307         {
308             get;
309             private set;
310         }
311
312         /// <summary>
313         /// Initializes MapRemoveResult class with result.
314         /// </summary>
315         /// <param name="result">MapRemove request result</param>
316         public MapRemoveResult(bool result)
317         {
318             Result = result;
319         }
320     }
321
322     /// <summary>
323     /// This class is for containing MapGet operation result.
324     /// </summary>
325     public class MapGetResult
326     {
327         /// <summary>
328         /// Gets the result value list of the MapGet operation.
329         /// </summary>
330         public string[] ValueList
331         {
332             get;
333             private set;
334         }
335         /// <summary>
336         /// Gets the MapGet operation result.
337         /// </summary>
338         public bool Result
339         {
340             get;
341             private set;
342         }
343
344         /// <summary>
345         /// Initializes MapGetResult class with data and result.
346         /// </summary>
347         /// <param name="valueLIst">MapGet request result data</param>
348         /// <param name="result">MapGet request result</param>
349         /// <exception cref="ArgumentException">Thrown in case of Invalid parmaeter.</exception>
350         public MapGetResult(string[] valueLIst, bool result)
351         {
352             if (result == true && valueLIst == null)
353             {
354                 ErrorFactory.ThrowException(ResultType.InvalidParameter, false, "valueLIst");
355             }
356
357             ValueList = valueLIst;
358             Result = result;
359         }
360     }
361
362     /// <summary>
363     /// This class is for containing DataChangeListen operation result.
364     /// </summary>
365     public class DataChangeListenResult
366     {
367         /// <summary>
368         /// Gets the DataChangeListen operation result.
369         /// </summary>
370         public ResultType Result
371         {
372             get;
373             private set;
374         }
375
376         /// <summary>
377         /// Initializes DataChangeListenResult class with result.
378         /// </summary>
379         /// <param name="result">DataChangeListen request result</param>
380         public DataChangeListenResult(ResultType result)
381         {
382             Result = result;
383         }
384     }
385 }