Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Applications.PackageManager / Tizen.Applications / PackageType.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
19 namespace Tizen.Applications
20 {
21     /// <summary>
22     /// Enumeration for package type.
23     /// </summary>
24     public enum PackageType
25     {
26         UNKNOWN,
27         /// <summary>
28         /// Tizen native application package
29         /// </summary>
30         TPK,
31         /// <summary>
32         /// Tizen web/ hybrid application Package
33         /// </summary>
34         WGT,
35         /// <summary>
36         /// It's a special meaning type to represent the tizen application package which is installed using rpm spec.
37         /// Only some preloaded packages can have this type.
38         /// </summary>
39         RPM
40     }
41
42     internal static class PackageTypeMethods
43     {
44         internal static PackageType ToPackageType(string type)
45         {
46             if (string.IsNullOrEmpty(type))
47             {
48                 throw PackageManagerErrorFactory.GetException(Interop.PackageManager.ErrorCode.InvalidParameter, "type can't be null or empty");
49             }
50
51             string lowerType = type.ToLower();
52             if (lowerType == "tpk")
53             {
54                 return PackageType.TPK;
55             }
56             else if (lowerType == "wgt")
57             {
58                 return PackageType.WGT;
59             }
60             else if (lowerType == "rpm")
61             {
62                 return PackageType.RPM;
63             }
64             else
65             {
66                 throw PackageManagerErrorFactory.GetException(Interop.PackageManager.ErrorCode.InvalidParameter, "type should be tpk or wgt");
67             }
68         }
69     }
70 }