Release 4.0.0-preview1-00172
[platform/core/csapi/tizenfx.git] / src / Tizen.Content.MediaContent / Tizen.Content.MediaContent / Folder.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.Content.MediaContent
20 {
21     /// <summary>
22     /// Represents the folder information for the media.
23     /// </summary>
24     /// <remarks>
25     /// The <see cref="Folder"/> is used to organize media content files, i.e., image, audio, and video files,
26     /// in the physical storage of the device.
27     /// </remarks>
28     public class Folder
29     {
30         internal Folder(IntPtr handle)
31         {
32             Id = InteropHelper.GetString(handle, Interop.Folder.GetFolderId);
33             Path = InteropHelper.GetString(handle, Interop.Folder.GetPath);
34             Name = InteropHelper.GetString(handle, Interop.Folder.GetName);
35
36             StorageType = InteropHelper.GetValue<StorageType>(handle, Interop.Folder.GetStorageType);
37             StorageId = InteropHelper.GetString(handle, Interop.Folder.GetStorageId);
38         }
39
40         internal static Folder FromHandle(IntPtr handle) => new Folder(handle);
41
42         /// <summary>
43         /// Gets the ID of the folder.
44         /// </summary>
45         /// <value>The unique ID of the folder.</value>
46         public string Id { get; }
47
48         /// <summary>
49         /// Gets the path of the folder.
50         /// </summary>
51         /// <value>The path of the folder.</value>
52         public string Path { get; }
53
54         /// <summary>
55         /// Gets the name of the folder.
56         /// </summary>
57         /// <value>The name of the folder.</value>
58         public string Name { get; }
59
60         /// <summary>
61         /// Gets the <see cref="StorageType"/> of the storage that the folder exists.
62         /// </summary>
63         /// <value>The <see cref="StorageType"/> of the storage that the folder exists.</value>
64         public StorageType StorageType { get; }
65
66         /// <summary>
67         /// Gets the storage ID of the storage that the folder exists.
68         /// </summary>
69         /// <value>The storage ID of the storage that the folder exists.</value>
70         public string StorageId { get; }
71
72         /// <summary>
73         /// Returns a string representation of the folder.
74         /// </summary>
75         /// <returns>A string representation of the current folder.</returns>
76         public override string ToString() =>
77             $"Id={Id}, Name={Name}, Path={Path}, StorageType={StorageType}, StorageId={StorageType}";
78     }
79 }