From 7051e6a5fdc8965289fbc34d0de2a78dae14e62e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 27 Apr 2025 11:21:34 -0400 Subject: Add `Payloads` element to harvest bundle payloads. Implements https://github.com/wixtoolset/issues/issues/9049 --- .../Symbols/HarvestPayloadsSymbol.cs | 68 ++++++++++++++++++++++ .../WixToolset.Data/Symbols/SymbolDefinitions.cs | 1 + 2 files changed, 69 insertions(+) create mode 100644 src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs (limited to 'src/api') diff --git a/src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs new file mode 100644 index 00000000..65b424ac --- /dev/null +++ b/src/api/wix/WixToolset.Data/Symbols/HarvestPayloadsSymbol.cs @@ -0,0 +1,68 @@ +// 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 HarvestPayloads = new IntermediateSymbolDefinition( + SymbolDefinitionType.HarvestPayloads, + new[] + { + new IntermediateFieldDefinition(nameof(HarvestFilesSymbolFields.Inclusions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(HarvestFilesSymbolFields.Exclusions), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(HarvestFilesSymbolFields.ComplexReferenceParentType), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(HarvestFilesSymbolFields.ParentId), IntermediateFieldType.String), + }, + typeof(HarvestPayloadsSymbol)); + } +} + +namespace WixToolset.Data.Symbols +{ + public enum HarvestPayloadsSymbolFields + { + Inclusions, + Exclusions, + ComplexReferenceParentType, + ParentId, + } + + public class HarvestPayloadsSymbol : IntermediateSymbol + { + public HarvestPayloadsSymbol() : base(SymbolDefinitions.HarvestPayloads, null, null) + { + } + + public HarvestPayloadsSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.HarvestPayloads, sourceLineNumber, id) + { + } + + public IntermediateField this[HarvestPayloadsSymbolFields index] => this.Fields[(int)index]; + + public string Inclusions + { + get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.Inclusions]; + set => this.Set((int)HarvestPayloadsSymbolFields.Inclusions, value); + } + + public string Exclusions + { + get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.Exclusions]; + set => this.Set((int)HarvestPayloadsSymbolFields.Exclusions, value); + } + + public string ComplexReferenceParentType + { + get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.ComplexReferenceParentType]; + set => this.Set((int)HarvestPayloadsSymbolFields.ComplexReferenceParentType, value); + } + + public string ParentId + { + get => (string)this.Fields[(int)HarvestPayloadsSymbolFields.ParentId]; + set => this.Set((int)HarvestPayloadsSymbolFields.ParentId, value); + } + } +} diff --git a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs index 64f51162..64c1a2a5 100644 --- a/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs +++ b/src/api/wix/WixToolset.Data/Symbols/SymbolDefinitions.cs @@ -41,6 +41,7 @@ namespace WixToolset.Data File, FileSFPCatalog, HarvestFiles, + HarvestPayloads, Icon, ImageFamilies, IniFile, -- cgit v1.2.3-55-g6feb