Merge remote-tracking branch 'origin/API10' into tizen_7.0
[platform/core/csapi/tizenfx.git] / src / Tizen.Uix.InputMethod / Tizen.Uix.InputMethod / InputMethodExceptionFactory.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
18 using System;
19 using static Interop.InputMethod;
20
21 namespace Tizen.Uix.InputMethod
22 {
23     internal static class InputMethodExceptionFactory
24     {
25         internal static Exception CreateException(ErrorCode err)
26         {
27             Tizen.Log.Error(LogTag, "Error " + err);
28             Exception exp;
29             switch (err)
30             {
31                 case ErrorCode.OutOfMemory:
32                     {
33                         exp = new OutOfMemoryException("Out Of Memory");
34                         break;
35                     }
36
37
38                 case ErrorCode.InvalidParameter:
39                     {
40                         exp = new ArgumentException("Invalid Parameters Provided");
41                         break;
42                     }
43
44
45                 case ErrorCode.PermissionDenied:
46                     {
47                         exp = new UnauthorizedAccessException("Permission Denied");
48                         break;
49                     }
50
51
52                 case ErrorCode.OperationFailed:
53                     {
54                         exp = new InvalidOperationException("Operation Failed");
55                         break;
56                     }
57
58
59                 case ErrorCode.NotRunning:
60                     {
61                         exp = new InvalidOperationException("IME main loop isn't started yet");
62                         break;
63                     }
64
65                 case ErrorCode.NoCallbackFunction:
66                     {
67                         exp = new InvalidOperationException("Necessary callback/events is not set");
68                         break;
69                     }
70
71                 default:
72                     {
73                         exp = new Exception("");
74                         break;
75                     }
76
77             }
78
79             return exp;
80
81         }
82     }
83 }