5b59574a6e9941a1f589c1d1c5b81b17b99d8b24
[platform/core/csapi/uix-stt.git] / Tizen.Uix.Stt / Tizen.Uix.Stt / ExceptionFactory.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.Stt;
20
21 namespace Tizen.Uix.Stt
22 {
23     internal static class ExceptionFactory
24     {
25         internal static Exception CreateException(SttError err)
26         {
27             Tizen.Log.Error(LogTag, "Error " + err);
28             Exception exp;
29             switch (err)
30             {
31                 case SttError.OutOfMemory:
32                     {
33                         exp = new OutOfMemoryException("Out Of Memory");
34                         break;
35                     }
36
37                 case SttError.IoError:
38                     {
39                         exp = new InvalidOperationException("I/O Error Occured");
40                         break;
41                     }
42
43                 case SttError.InvalidParameter:
44                     {
45                         exp = new ArgumentException("Invalid Parameters Provided");
46                         break;
47                     }
48
49                 case SttError.TimedOut:
50                     {
51                         exp = new TimeoutException("No answer from the STT service");
52                         break;
53                     }
54
55                 case SttError.OutOfNetwork:
56                     {
57                         exp = new InvalidOperationException("Network is down");
58                         break;
59                     }
60
61                 case SttError.PermissionDenied:
62                     {
63                         exp = new UnauthorizedAccessException("Permission Denied");
64                         break;
65                     }
66
67                 case SttError.NotSupported:
68                     {
69                         exp = new NotSupportedException("STT NOT supported");
70                         break;
71                     }
72
73                 case SttError.InvalidState:
74                     {
75                         exp = new InvalidOperationException("Invalid state");
76                         break;
77                     }
78
79                 case SttError.InvalidLanguage:
80                     {
81                         exp = new InvalidOperationException("Invalid language");
82                         break;
83                     }
84
85                 case SttError.EngineNotFound:
86                     {
87                         exp = new InvalidOperationException("No available engine");
88                         break;
89                     }
90
91                 case SttError.OperationFailed:
92                     {
93                         exp = new InvalidOperationException("Operation Failed");
94                         break;
95                     }
96
97                 case SttError.NotSupportedFeature:
98                     {
99                         exp = new InvalidOperationException("Not supported feature of current engine");
100                         break;
101                     }
102
103                 case SttError.RecordingTimedOut:
104                     {
105                         exp = new InvalidOperationException("Recording timed out");
106                         break;
107                     }
108
109                 case SttError.NoSpeech:
110                     {
111                         exp = new InvalidOperationException("No speech while recording");
112                         break;
113                     }
114
115                 case SttError.InProgressToReady:
116                     {
117                         exp = new InvalidOperationException("Progress to ready is not finished");
118                         break;
119                     }
120
121                 case SttError.InProgressToRecording:
122                     {
123                         exp = new InvalidOperationException("Progress to recording is not finished");
124                         break;
125                     }
126
127                 case SttError.InProgressToProcessing:
128                     {
129                         exp = new InvalidOperationException("Progress to processing is not finished");
130                         break;
131                     }
132
133                 case SttError.ServiceReset:
134                     {
135                         exp = new InvalidOperationException("Service reset");
136                         break;
137                     }
138
139                 default:
140                     {
141                         exp = new Exception("");
142                         break;
143                     }
144
145             }
146
147             return exp;
148
149         }
150     }
151 }