From 414bf166e07703056ad186fa8ec23a4119dd9993 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 11 Nov 2017 01:40:34 -0800 Subject: Additional IR updates --- src/WixToolset.Data/SourceLineNumber.cs | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/WixToolset.Data/SourceLineNumber.cs') diff --git a/src/WixToolset.Data/SourceLineNumber.cs b/src/WixToolset.Data/SourceLineNumber.cs index 87a36132..742f6e9d 100644 --- a/src/WixToolset.Data/SourceLineNumber.cs +++ b/src/WixToolset.Data/SourceLineNumber.cs @@ -7,6 +7,7 @@ namespace WixToolset.Data using System.Text; using System.Xml; using System.Xml.Linq; + using SimpleJson; /// /// Represents file name and line number for source file @@ -62,6 +63,38 @@ namespace WixToolset.Data } } + internal static SourceLineNumber Deserialize(JsonObject jsonObject) + { + var fileName = jsonObject.GetValueOrDefault("file"); + var lineNumber = jsonObject.GetValueOrDefault("line", null); + + var parentJson = jsonObject.GetValueOrDefault("parent"); + var parent = (parentJson == null) ? null : SourceLineNumber.Deserialize(parentJson); + + return new SourceLineNumber(fileName) + { + LineNumber = lineNumber, + Parent = parent + }; + } + + internal JsonObject Serialize() + { + var jsonObject = new JsonObject + { + { "file", this.FileName }, + { "line", this.LineNumber } + }; + + if (this.Parent != null) + { + var parentJson = this.Parent.Serialize(); + jsonObject.Add("parent", parentJson); + } + + return jsonObject; + } + /// /// Creates a source line number from an encoded string. /// -- cgit v1.2.3-55-g6feb