Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.Metadata / MetadataEditor / MetadataEditorError.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 Tizen.Internals.Errors;
20
21 namespace Tizen.Multimedia
22 {
23     /// <summary>
24     /// Enumeration for metadata extractor's error codes.
25     /// </summary>
26     internal enum MetadataEditorError
27     {
28         None = ErrorCode.None,
29         InvalidParameter = ErrorCode.InvalidParameter,
30         OutOfMemory = ErrorCode.OutOfMemory,
31         FileNotExists = ErrorCode.FileExists,
32         PermissionDenied = ErrorCode.PermissionDenied,
33         NotSupported = ErrorCode.NotSupported,
34         TizenMetadataEditorError = -0x019C0000,
35         OperationFailed = TizenMetadataEditorError | 0x01
36     }
37
38     internal static class MetadataEditorErrorExtensions
39     {
40         internal static void ThrowIfError(this MetadataEditorError errorCode, string errorMessage)
41         {
42             if (errorCode == MetadataEditorError.None)
43             {
44                 return;
45             }
46
47             switch (errorCode)
48             {
49                 case MetadataEditorError.InvalidParameter:
50                     throw new ArgumentException(errorMessage);
51
52                 case MetadataEditorError.OutOfMemory:
53                     throw new OutOfMemoryException(errorMessage);
54
55                 case MetadataEditorError.FileNotExists:
56                     throw new FileNotFoundException(errorMessage);
57
58                 case MetadataEditorError.PermissionDenied:
59                     throw new UnauthorizedAccessException(errorMessage);
60
61                 case MetadataEditorError.NotSupported:
62                     throw new FileFormatException(errorMessage);
63
64                 case MetadataEditorError.OperationFailed:
65                     throw new InvalidOperationException(errorMessage);
66             }
67         }
68     }
69 }
70