Release 4.0.0-preview1-00051
[platform/core/csapi/tizenfx.git] / src / Tizen.Multimedia.Metadata / ObjectDescriptionBuilder.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.Reflection;
19 using System.Text;
20
21 namespace Tizen.Multimedia
22 {
23     /// <summary>
24     /// Represents a point in 2D space.
25     /// </summary>
26     internal static class ObjectDescriptionBuilder
27     {
28         internal static string BuildWithProperties(object obj)
29         {
30             StringBuilder sb = new StringBuilder();
31
32             foreach (var property in obj.GetType().GetRuntimeProperties())
33             {
34                 object value = property.GetValue(obj);
35
36                 sb.Append(property.Name).Append("=");
37
38                 bool isObjectType = Convert.GetTypeCode(value) == TypeCode.Object;
39
40                 if (isObjectType)
41                 {
42                     sb.Append("[").Append(value).Append("]");
43                 }
44                 else
45                 {
46                     sb.Append(value);
47                 }
48
49                 sb.Append(", ");
50             }
51             if (sb.Length >= 2)
52             {
53                 sb.Remove(sb.Length - 1, 2);
54             }
55
56             return sb.ToString();
57         }
58     }
59 }