From d0462be8000f18aa7dc0791d02142f000bb19fbf Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 22 May 2019 00:58:13 -0700 Subject: Integrate latest changes to tuple definitions --- src/WixToolset.Core/Link/WixGroupingOrdering.cs | 57 ++++++++++++------------- 1 file changed, 28 insertions(+), 29 deletions(-) (limited to 'src/WixToolset.Core/Link') diff --git a/src/WixToolset.Core/Link/WixGroupingOrdering.cs b/src/WixToolset.Core/Link/WixGroupingOrdering.cs index 4e89e607..c40af502 100644 --- a/src/WixToolset.Core/Link/WixGroupingOrdering.cs +++ b/src/WixToolset.Core/Link/WixGroupingOrdering.cs @@ -18,11 +18,11 @@ namespace WixToolset.Core.Link /// internal class WixGroupingOrdering { - private IMessaging messageHandler; + private readonly IMessaging messageHandler; private List groupTypes; private List itemTypes; private ItemCollection items; - private List rowsUsed; + private readonly List rowsUsed; private bool loaded; private bool encounteredError; @@ -50,10 +50,10 @@ namespace WixToolset.Core.Link /// /// Group types to include. /// Item types to include. - public void UseTypes(IEnumerable groupTypes, IEnumerable itemTypes) + public void UseTypes(IEnumerable groupTypes, IEnumerable itemTypes) { - this.groupTypes = new List(groupTypes); - this.itemTypes = new List(itemTypes); + this.groupTypes = new List(groupTypes.Select(g => g.ToString())); + this.itemTypes = new List(itemTypes.Select(i => i.ToString())); this.items = new ItemCollection(); this.loaded = false; @@ -65,17 +65,18 @@ namespace WixToolset.Core.Link /// The group type for the parent group to flatten. /// The identifier of the parent group to flatten. /// Whether to remove used group rows before returning. - public void FlattenAndRewriteRows(string parentType, string parentId, bool removeUsedRows) + public void FlattenAndRewriteRows(ComplexReferenceChildType parentType, string parentId, bool removeUsedRows) { - Debug.Assert(this.groupTypes.Contains(parentType)); + var parentTypeString = parentType.ToString(); + Debug.Assert(this.groupTypes.Contains(parentTypeString)); - this.CreateOrderedList(parentType, parentId, out var orderedItems); + this.CreateOrderedList(parentTypeString, parentId, out var orderedItems); if (this.encounteredError) { return; } - this.CreateNewGroupRows(parentType, parentId, orderedItems); + this.CreateNewGroupRows(parentTypeString, parentId, orderedItems); if (removeUsedRows) { @@ -88,9 +89,10 @@ namespace WixToolset.Core.Link /// /// The type of the parent group to flatten. /// Whether to remove used group rows before returning. - public void FlattenAndRewriteGroups(string parentType, bool removeUsedRows) + public void FlattenAndRewriteGroups(ComplexReferenceParentType parentType, bool removeUsedRows) { - Debug.Assert(this.groupTypes.Contains(parentType)); + var parentTypeString = parentType.ToString(); + Debug.Assert(this.groupTypes.Contains(parentTypeString)); this.LoadFlattenOrderGroups(); if (this.encounteredError) @@ -100,10 +102,9 @@ namespace WixToolset.Core.Link foreach (Item item in this.items) { - if (parentType == item.Type) + if (parentTypeString == item.Type) { - List orderedItems; - this.CreateOrderedList(item.Type, item.Id, out orderedItems); + this.CreateOrderedList(item.Type, item.Id, out var orderedItems); this.CreateNewGroupRows(item.Type, item.Id, orderedItems); } } @@ -131,8 +132,7 @@ namespace WixToolset.Core.Link return; } - Item parentItem; - if (!this.items.TryGetValue(parentType, parentId, out parentItem)) + if (!this.items.TryGetValue(parentType, parentId, out var parentItem)) { this.messageHandler.Write(ErrorMessages.IdentifierNotFound(parentType, parentId)); return; @@ -360,9 +360,9 @@ namespace WixToolset.Core.Link foreach (var row in this.EntrySection.Tuples.OfType()) { - var rowItemType = row.ItemType; + var rowItemType = row.ItemType.ToString(); var rowItemName = row.ItemId_; - var rowDependsOnType = row.DependsOnType; + var rowDependsOnType = row.DependsOnType.ToString(); var rowDependsOnName = row.DependsOnId_; // If this row specifies some other (unknown) type in either @@ -510,8 +510,8 @@ namespace WixToolset.Core.Link /// ordering dependencies. internal class Item { - private ItemCollection afterItems; - private ItemCollection beforeItems; // for checking for circular references + private readonly ItemCollection afterItems; + private readonly ItemCollection beforeItems; // for checking for circular references private bool flattenedAfterItems; public Item(IntermediateTuple row, string type, string id) @@ -522,9 +522,9 @@ namespace WixToolset.Core.Link this.Key = ItemCollection.CreateKeyFromTypeId(type, id); - afterItems = new ItemCollection(); - beforeItems = new ItemCollection(); - flattenedAfterItems = false; + this.afterItems = new ItemCollection(); + this.beforeItems = new ItemCollection(); + this.flattenedAfterItems = false; } public IntermediateTuple Row { get; private set; } @@ -540,8 +540,7 @@ namespace WixToolset.Core.Link } #endif // DEBUG - private ItemCollection childItems = new ItemCollection(); - public ItemCollection ChildItems { get { return childItems; } } + public ItemCollection ChildItems { get; } = new ItemCollection(); /// /// Removes any nested groups under this item and replaces @@ -614,7 +613,7 @@ namespace WixToolset.Core.Link { if (this.ShouldItemPropagateChildOrdering()) { - foreach (Item childItem in this.childItems) + foreach (Item childItem in this.ChildItems) { childItem.AddAfter(this.afterItems, messageHandler); } @@ -667,9 +666,9 @@ namespace WixToolset.Core.Link // first payload to be the entrypoint. private bool ShouldItemPropagateChildOrdering() { - if (String.Equals("Package", this.Type, StringComparison.Ordinal) || - (String.Equals("Container", this.Type, StringComparison.Ordinal) && - !String.Equals(Compiler.BurnUXContainerId, this.Id, StringComparison.Ordinal))) + if (String.Equals(nameof(ComplexReferenceChildType.Package), this.Type, StringComparison.Ordinal) || + (String.Equals(nameof(ComplexReferenceParentType.Container), this.Type, StringComparison.Ordinal) && + !String.Equals(Compiler.BurnUXContainerId.Id, this.Id, StringComparison.Ordinal))) { return false; } -- cgit v1.2.3-55-g6feb