From 4b3a3e60eb5f621723be7b894a7a71ae331dcf46 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Fri, 19 Jun 2020 13:45:04 +1000 Subject: Add BundleCustomData tuples. Remove Unreal from CustomTable. --- src/WixToolset.Data/Tuples/TupleDefinitions.cs | 12 ++++ .../Tuples/WixBundleCustomDataAttributeTuple.cs | 52 ++++++++++++++++ .../Tuples/WixBundleCustomDataCellTuple.cs | 68 +++++++++++++++++++++ .../Tuples/WixBundleCustomDataTuple.cs | 71 ++++++++++++++++++++++ src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | 8 --- 5 files changed, 203 insertions(+), 8 deletions(-) create mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs create mode 100644 src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs (limited to 'src') diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs index a91b3f8f..10776b67 100644 --- a/src/WixToolset.Data/Tuples/TupleDefinitions.cs +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs @@ -120,6 +120,9 @@ namespace WixToolset.Data WixBundle, WixBundleCatalog, WixBundleContainer, + WixBundleCustomData, + WixBundleCustomDataAttribute, + WixBundleCustomDataCell, WixBundleExePackage, WixBundleExtension, WixBundleMsiFeature, @@ -542,6 +545,15 @@ namespace WixToolset.Data case TupleDefinitionType.WixBundleContainer: return TupleDefinitions.WixBundleContainer; + case TupleDefinitionType.WixBundleCustomData: + return TupleDefinitions.WixBundleCustomData; + + case TupleDefinitionType.WixBundleCustomDataAttribute: + return TupleDefinitions.WixBundleCustomDataAttribute; + + case TupleDefinitionType.WixBundleCustomDataCell: + return TupleDefinitions.WixBundleCustomDataCell; + case TupleDefinitionType.WixBundleExtension: return TupleDefinitions.WixBundleExtension; diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs new file mode 100644 index 00000000..9c27c9f4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataAttributeTuple.cs @@ -0,0 +1,52 @@ +// 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.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCustomDataAttribute = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCustomDataAttribute, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeTupleFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataAttributeTupleFields.Name), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataAttributeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCustomDataAttributeTupleFields + { + CustomDataRef, + Name, + } + + public class WixBundleCustomDataAttributeTuple : IntermediateTuple + { + public WixBundleCustomDataAttributeTuple() : base(TupleDefinitions.WixBundleCustomDataAttribute, null, null) + { + } + + public WixBundleCustomDataAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomDataAttribute, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataAttributeTupleFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeTupleFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataAttributeTupleFields.CustomDataRef, value); + } + + public string Name + { + get => (string)this.Fields[(int)WixBundleCustomDataAttributeTupleFields.Name]; + set => this.Set((int)WixBundleCustomDataAttributeTupleFields.Name, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.cs new file mode 100644 index 00000000..d488d6d0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataCellTuple.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.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCustomDataCell = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCustomDataCell, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.CustomDataRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.AttributeRef), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.ElementId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataCellTupleFields.Value), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataCellTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCustomDataCellTupleFields + { + CustomDataRef, + AttributeRef, + ElementId, + Value, + } + + public class WixBundleCustomDataCellTuple : IntermediateTuple + { + public WixBundleCustomDataCellTuple() : base(TupleDefinitions.WixBundleCustomDataCell, null, null) + { + } + + public WixBundleCustomDataCellTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomDataCell, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataCellTupleFields index] => this.Fields[(int)index]; + + public string CustomDataRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.CustomDataRef]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.CustomDataRef, value); + } + + public string AttributeRef + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.AttributeRef]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.AttributeRef, value); + } + + public string ElementId + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.ElementId]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.ElementId, value); + } + + public string Value + { + get => (string)this.Fields[(int)WixBundleCustomDataCellTupleFields.Value]; + set => this.Set((int)WixBundleCustomDataCellTupleFields.Value, value); + } + } +} diff --git a/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs new file mode 100644 index 00000000..d0878deb --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCustomDataTuple.cs @@ -0,0 +1,71 @@ +// 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.Tuples; + + public static partial class TupleDefinitions + { + public static readonly IntermediateTupleDefinition WixBundleCustomData = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundleCustomData, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.AttributeNames), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.Type), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundleCustomDataTupleFields.BundleExtensionRef), IntermediateFieldType.String), + }, + typeof(WixBundleCustomDataTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + public enum WixBundleCustomDataTupleFields + { + AttributeNames, + Type, + BundleExtensionRef, + } + + public enum WixBundleCustomDataType + { + Unknown, + BootstrapperApplication, + BundleExtension, + } + + public class WixBundleCustomDataTuple : IntermediateTuple + { + public const char AttributeNamesSeparator = '\x85'; + + public WixBundleCustomDataTuple() : base(TupleDefinitions.WixBundleCustomData, null, null) + { + } + + public WixBundleCustomDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCustomData, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundleCustomDataTupleFields index] => this.Fields[(int)index]; + + public string AttributeNames + { + get => (string)this.Fields[(int)WixBundleCustomDataTupleFields.AttributeNames]; + set => this.Set((int)WixBundleCustomDataTupleFields.AttributeNames, value); + } + + public WixBundleCustomDataType Type + { + get => (WixBundleCustomDataType)this.Fields[(int)WixBundleCustomDataTupleFields.Type].AsNumber(); + set => this.Set((int)WixBundleCustomDataTupleFields.Type, (int)value); + } + + public string BundleExtensionRef + { + get => (string)this.Fields[(int)WixBundleCustomDataTupleFields.BundleExtensionRef]; + set => this.Set((int)WixBundleCustomDataTupleFields.BundleExtensionRef, value); + } + + public string[] AttributeNamesSeparated => this.AttributeNames.Split(AttributeNamesSeparator); + } +} diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs index b0d12a63..4d668842 100644 --- a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs @@ -11,7 +11,6 @@ namespace WixToolset.Data new[] { new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), - new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Unreal), IntermediateFieldType.Bool), }, typeof(WixCustomTableTuple)); } @@ -22,7 +21,6 @@ namespace WixToolset.Data.Tuples public enum WixCustomTableTupleFields { ColumnNames, - Unreal, } public class WixCustomTableTuple : IntermediateTuple @@ -45,12 +43,6 @@ namespace WixToolset.Data.Tuples set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); } - public bool Unreal - { - get => (bool)this.Fields[(int)WixCustomTableTupleFields.Unreal]; - set => this.Set((int)WixCustomTableTupleFields.Unreal, value); - } - public string[] ColumnNamesSeparated => this.ColumnNames.Split(ColumnNamesSeparator); } } -- cgit v1.2.3-55-g6feb