@joebigelow / wix / commits / 77ec8bfc

Improve Identifier constructor

Rob Mensching committed Dec 29, 2017 at 00:44 UTC 77ec8bfc6df897000619abaa6c9068942a3775c2
1 file changed +22 -2
src/WixToolset.Data/Identifier.cs
+22 -2
@@ -12,20 +12,40 @@ namespace WixToolset.Data
12 [DebuggerDisplay("{Access} {Id,nq}")]
13 public class Identifier
14 {
15 - public static Identifier Invalid = new Identifier(null, AccessModifier.Private);
15 + public static Identifier Invalid = new Identifier(AccessModifier.Private, (string)null);
16
17 + // TODO: [Obsolete] this constructor.
18 public Identifier(string id, AccessModifier access)
19 {
20 this.Id = id;
21 this.Access = access;
22 }
23
24 + // TODO: [Obsolete] this constructor.
25 public Identifier(int id, AccessModifier access)
26 {
27 this.Id = id.ToString();
28 this.Access = access;
29 }
30
31 + public Identifier(AccessModifier access, string id)
32 + {
33 + this.Access = access;
34 + this.Id = id;
35 + }
36 +
37 + public Identifier(AccessModifier access, params string[] ids)
38 + {
39 + this.Access = access;
40 + this.Id = String.Join("/", ids);
41 + }
42 +
43 + public Identifier(AccessModifier access, int id)
44 + {
45 + this.Access = access;
46 + this.Id = id.ToString();
47 + }
48 +
49 /// <summary>
50 /// Access modifier for a tuple.
51 /// </summary>
@@ -42,7 +62,7 @@ namespace WixToolset.Data
62 var accessValue = jsonObject.GetValueOrDefault<string>("access");
63 Enum.TryParse(accessValue, true, out AccessModifier access);
64
45 - return new Identifier(id, access);
65 + return new Identifier(access, id);
66 }
67
68 internal JsonObject Serialize()