forked from dcariola/XCodeEditor-for-Unity
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathPBXObject.cs
More file actions
115 lines (92 loc) · 2.89 KB
/
PBXObject.cs
File metadata and controls
115 lines (92 loc) · 2.89 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
namespace UnityEditor.XCodeEditor
{
using System.Collections.Generic;
using UnityEngine;
public class PBXObject
{
protected const string ISA_KEY = "isa";
protected string _guid;
protected PBXDictionary _data;
public string guid {
get {
if( string.IsNullOrEmpty( _guid ) )
_guid = GenerateGuid();
return _guid;
}
}
public PBXDictionary data {
get {
if( _data == null )
_data = new PBXDictionary();
return _data;
}
}
public PBXObject()
{
_data = new PBXDictionary();
_data[ ISA_KEY ] = this.GetType().Name;
_guid = GenerateGuid();
}
public PBXObject( string guid ) : this()
{
if( IsGuid( guid ) )
_guid = guid;
}
public PBXObject( string guid, PBXDictionary dictionary ) : this( guid )
{
if( !dictionary.ContainsKey( ISA_KEY ) || ((string)dictionary[ ISA_KEY ]).CompareTo( this.GetType().Name ) != 0 )
Debug.LogError( "PBXDictionary is not a valid ISA object" );
foreach( KeyValuePair<string, object> item in dictionary ) {
_data[ item.Key ] = item.Value;
}
}
public static bool IsGuid( string aString )
{
return System.Text.RegularExpressions.Regex.IsMatch( aString, @"^[A-F0-9]{24}$" );
}
public static string GenerateGuid()
{
return System.Guid.NewGuid().ToString("N").Substring( 8 ).ToUpper();
}
public void Add( string key, object obj )
{
_data.Add( key, obj );
}
public bool Remove( string key )
{
return _data.Remove( key );
}
public bool ContainsKey( string key )
{
return _data.ContainsKey( key );
}
}
public class PBXNativeTarget : PBXObject
{
public PBXNativeTarget() : base() {
}
public PBXNativeTarget( string guid, PBXDictionary dictionary ) : base( guid, dictionary ) {
}
}
public class PBXContainerItemProxy : PBXObject
{
public PBXContainerItemProxy() : base() {
}
public PBXContainerItemProxy( string guid, PBXDictionary dictionary ) : base( guid, dictionary ) {
}
}
public class PBXReferenceProxy : PBXObject
{
public PBXReferenceProxy() : base() {
}
public PBXReferenceProxy( string guid, PBXDictionary dictionary ) : base( guid, dictionary ) {
}
}
public class PBXVariantGroup : PBXObject
{
public PBXVariantGroup() : base() {
}
public PBXVariantGroup( string guid, PBXDictionary dictionary ) : base( guid, dictionary ) {
}
}
}