Release 4.0.0-preview1-00201
[platform/core/csapi/tizenfx.git] / src / Tizen.System.Information / Common / InformationErrorFactory.cs
1 /*
2 * Copyright (c) 2016 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 using System.IO;
19 using System.ComponentModel;
20 using Tizen.Internals.Errors;
21
22 namespace Tizen.System
23 {
24     [EditorBrowsable(EditorBrowsableState.Never)]
25     internal enum InformationError
26     {
27         None = ErrorCode.None,
28         InvalidParameter = ErrorCode.InvalidParameter,
29         OutOfMemory = ErrorCode.OutOfMemory,
30         Io = ErrorCode.IoError,
31         RemoteIo = ErrorCode.RemoteIo,
32         PermissionDenied = ErrorCode.PermissionDenied,
33         NotSupported = ErrorCode.NotSupported,
34         NoData = ErrorCode.NoData
35     }
36
37     [EditorBrowsable(EditorBrowsableState.Never)]
38     internal static class InformationErrorFactory
39     {
40         internal const string LogTag = "Tizen.System.Information";
41
42         internal static void ThrowException(InformationError err)
43         {
44             InformationError error = (InformationError)err;
45             if (error == InformationError.InvalidParameter)
46             {
47                 throw new ArgumentException("Invalid parameter");
48             }
49             else if (error == InformationError.OutOfMemory)
50             {
51                 throw new OutOfMemoryException("Out of memory");
52             }
53             else if (error == InformationError.Io)
54             {
55                 throw new IOException("I/O Error");
56             }
57             else if (error == InformationError.RemoteIo)
58             {
59                 throw new IOException("Remote I/O Error");
60             }
61             else if (error == InformationError.PermissionDenied)
62             {
63                 throw new UnauthorizedAccessException("Permission denied");
64             }
65             else if (error == InformationError.NotSupported)
66             {
67                 throw new NotSupportedException("Not supported");
68             }
69             else if (error == InformationError.NoData)
70             {
71                 throw new NotSupportedException("No data");
72             }
73         }
74     }
75 }