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()