From f7de7f52a790e989a42fc48935dc61c93f3f4137 Mon Sep 17 00:00:00 2001
From: Rob Mensching <rob@firegiant.com>
Date: Tue, 23 Mar 2021 12:18:42 -0700
Subject: Consolidate ProvidesDependencySymbol into WixDependencyProviderSymbol

Part of wixtoolset/issues#6388
---
 .../Symbols/ProvidesDependencySymbol.cs            | 84 ----------------------
 src/WixToolset.Data/Symbols/SymbolDefinitions.cs   |  3 -
 .../Symbols/WixDependencyProviderSymbol.cs         | 15 ++--
 3 files changed, 9 insertions(+), 93 deletions(-)
 delete mode 100644 src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs

(limited to 'src')

diff --git a/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs b/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs
deleted file mode 100644
index 8d8cb02b..00000000
--- a/src/WixToolset.Data/Symbols/ProvidesDependencySymbol.cs
+++ /dev/null
@@ -1,84 +0,0 @@
-// 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.
-
-namespace WixToolset.Data
-{
-    using WixToolset.Data.Symbols;
-
-    public static partial class SymbolDefinitions
-    {
-        public static readonly IntermediateSymbolDefinition ProvidesDependency = new IntermediateSymbolDefinition(
-            SymbolDefinitionType.ProvidesDependency,
-            new[]
-            {
-                new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.PackageRef), IntermediateFieldType.String),
-                new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Key), IntermediateFieldType.String),
-                new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Version), IntermediateFieldType.String),
-                new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.DisplayName), IntermediateFieldType.String),
-                new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Attributes), IntermediateFieldType.Number),
-                new IntermediateFieldDefinition(nameof(ProvidesDependencySymbolFields.Imported), IntermediateFieldType.Bool),
-            },
-            typeof(ProvidesDependencySymbol));
-    }
-}
-
-namespace WixToolset.Data.Symbols
-{
-    public enum ProvidesDependencySymbolFields
-    {
-        PackageRef,
-        Key,
-        Version,
-        DisplayName,
-        Attributes,
-        Imported,
-    }
-
-    public class ProvidesDependencySymbol : IntermediateSymbol
-    {
-        public ProvidesDependencySymbol() : base(SymbolDefinitions.ProvidesDependency, null, null)
-        {
-        }
-
-        public ProvidesDependencySymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.ProvidesDependency, sourceLineNumber, id)
-        {
-        }
-
-        public IntermediateField this[ProvidesDependencySymbolFields index] => this.Fields[(int)index];
-
-        public string PackageRef
-        {
-            get => (string)this.Fields[(int)ProvidesDependencySymbolFields.PackageRef];
-            set => this.Set((int)ProvidesDependencySymbolFields.PackageRef, value);
-        }
-
-        public string Key
-        {
-            get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Key];
-            set => this.Set((int)ProvidesDependencySymbolFields.Key, value);
-        }
-
-        public string Version
-        {
-            get => (string)this.Fields[(int)ProvidesDependencySymbolFields.Version];
-            set => this.Set((int)ProvidesDependencySymbolFields.Version, value);
-        }
-
-        public string DisplayName
-        {
-            get => (string)this.Fields[(int)ProvidesDependencySymbolFields.DisplayName];
-            set => this.Set((int)ProvidesDependencySymbolFields.DisplayName, value);
-        }
-
-        public int? Attributes
-        {
-            get => (int?)this.Fields[(int)ProvidesDependencySymbolFields.Attributes];
-            set => this.Set((int)ProvidesDependencySymbolFields.Attributes, value);
-        }
-
-        public bool Imported
-        {
-            get => (bool)this.Fields[(int)ProvidesDependencySymbolFields.Imported];
-            set => this.Set((int)ProvidesDependencySymbolFields.Imported, value);
-        }
-    }
-}
diff --git a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs
index 9bb8bcfb..54deb87f 100644
--- a/src/WixToolset.Data/Symbols/SymbolDefinitions.cs
+++ b/src/WixToolset.Data/Symbols/SymbolDefinitions.cs
@@ -461,9 +461,6 @@ namespace WixToolset.Data
                 case SymbolDefinitionType.Property:
                     return SymbolDefinitions.Property;
 
-                case SymbolDefinitionType.ProvidesDependency:
-                    return SymbolDefinitions.ProvidesDependency;
-
                 case SymbolDefinitionType.PublishComponent:
                     return SymbolDefinitions.PublishComponent;
 
diff --git a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
index a4604a9c..0212bfab 100644
--- a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
+++ b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
@@ -10,7 +10,7 @@ namespace WixToolset.Data
             SymbolDefinitionType.WixDependencyProvider,
             new[]
             {
-                new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String),
+                new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ParentRef), IntermediateFieldType.String),
                 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String),
                 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String),
                 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String),
@@ -27,7 +27,7 @@ namespace WixToolset.Data.Symbols
 
     public enum WixDependencyProviderSymbolFields
     {
-        ComponentRef,
+        ParentRef,
         ProviderKey,
         Version,
         DisplayName,
@@ -37,7 +37,8 @@ namespace WixToolset.Data.Symbols
     [Flags]
     public enum WixDependencyProviderAttributes
     {
-        ProvidesAttributesBundle = 0x10000
+        ProvidesAttributesBundle = 0x10000,
+        ProvidesAttributesImported = 0x20000
     }
 
     public class WixDependencyProviderSymbol : IntermediateSymbol
@@ -52,10 +53,10 @@ namespace WixToolset.Data.Symbols
 
         public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index];
 
-        public string ComponentRef
+        public string ParentRef
         {
-            get => this.Fields[(int)WixDependencyProviderSymbolFields.ComponentRef].AsString();
-            set => this.Set((int)WixDependencyProviderSymbolFields.ComponentRef, value);
+            get => this.Fields[(int)WixDependencyProviderSymbolFields.ParentRef].AsString();
+            set => this.Set((int)WixDependencyProviderSymbolFields.ParentRef, value);
         }
 
         public string ProviderKey
@@ -83,5 +84,7 @@ namespace WixToolset.Data.Symbols
         }
 
         public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle;
+
+        public bool Imported => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesImported) == WixDependencyProviderAttributes.ProvidesAttributesImported;
     }
 }
-- 
cgit v1.2.3-55-g6feb