aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/Bind
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-12-30 01:31:32 -0800
committerRob Mensching <rob@firegiant.com>2017-12-30 01:31:32 -0800
commit7b013ac66a36e0f73d480ef28771a65f64b57e19 (patch)
tree4a2996a1a539337ae27f3b9dfc692cf6052b897c /src/WixToolset.Data/Bind
parentbcfae2a06a3a6c7e778b615e765b5a9efe847c0c (diff)
downloadwix-7b013ac66a36e0f73d480ef28771a65f64b57e19.tar.gz
wix-7b013ac66a36e0f73d480ef28771a65f64b57e19.tar.bz2
wix-7b013ac66a36e0f73d480ef28771a65f64b57e19.zip
Support serializing localization information in Intermediates
Diffstat (limited to 'src/WixToolset.Data/Bind')
-rw-r--r--src/WixToolset.Data/Bind/BindVariable.cs33
1 files changed, 31 insertions, 2 deletions
diff --git a/src/WixToolset.Data/Bind/BindVariable.cs b/src/WixToolset.Data/Bind/BindVariable.cs
index 06c004e1..276dae38 100644
--- a/src/WixToolset.Data/Bind/BindVariable.cs
+++ b/src/WixToolset.Data/Bind/BindVariable.cs
@@ -1,9 +1,11 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. 1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2 2
3namespace WixToolset.Data.Rows 3namespace WixToolset.Data.Bind
4{ 4{
5 using SimpleJson;
6
5 /// <summary> 7 /// <summary>
6 /// Specialization of a row for the WixVariable table. 8 /// Bind variable.
7 /// </summary> 9 /// </summary>
8 public sealed class BindVariable 10 public sealed class BindVariable
9 { 11 {
@@ -29,5 +31,32 @@ namespace WixToolset.Data.Rows
29 /// </summary> 31 /// </summary>
30 /// <value>Whether this variable is overridable.</value> 32 /// <value>Whether this variable is overridable.</value>
31 public bool Overridable { get; set; } 33 public bool Overridable { get; set; }
34
35 internal JsonObject Serialize()
36 {
37 var jsonObject = new JsonObject
38 {
39 { "name", this.Id },
40 };
41
42 jsonObject.AddIsNotNullOrEmpty("value", this.Value);
43 jsonObject.AddNonDefaultValue("overridable", this.Overridable, false);
44 jsonObject.AddNonDefaultValue("ln", this.SourceLineNumbers?.Serialize());
45
46 return jsonObject;
47 }
48
49 internal static BindVariable Deserialize(JsonObject jsonObject)
50 {
51 var variable = new BindVariable()
52 {
53 Id = jsonObject.GetValueOrDefault<string>("name"),
54 Value = jsonObject.GetValueOrDefault<string>("value"),
55 Overridable = jsonObject.GetValueOrDefault("overridable", false),
56 SourceLineNumbers = jsonObject.GetValueOrDefault<SourceLineNumber>("ln")
57 };
58
59 return variable;
60 }
32 } 61 }
33} 62}