From 69b15d96cebdbb7201b1849b4f62786633d70b8d Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Wed, 1 Nov 2017 10:56:09 -0700 Subject: Introduce WiX Intermediate Representation --- .../Tuples/WixBundlePackageExitCodeTuple.cs | 71 ++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs (limited to 'src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs') diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs new file mode 100644 index 00000000..64c91316 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.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 WixBundlePackageExitCode = new IntermediateTupleDefinition( + TupleDefinitionType.WixBundlePackageExitCode, + new[] + { + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.ChainPackageId), IntermediateFieldType.String), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Code), IntermediateFieldType.Number), + new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Behavior), IntermediateFieldType.String), + }, + typeof(WixBundlePackageExitCodeTuple)); + } +} + +namespace WixToolset.Data.Tuples +{ + using System; + + public enum WixBundlePackageExitCodeTupleFields + { + ChainPackageId, + Code, + Behavior, + } + + public enum ExitCodeBehaviorType + { + NotSet = -1, + Success, + Error, + ScheduleReboot, + ForceReboot, + } + + public class WixBundlePackageExitCodeTuple : IntermediateTuple + { + public WixBundlePackageExitCodeTuple() : base(TupleDefinitions.WixBundlePackageExitCode, null, null) + { + } + + public WixBundlePackageExitCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) + { + } + + public IntermediateField this[WixBundlePackageExitCodeTupleFields index] => this.Fields[(int)index]; + + public string ChainPackageId + { + get => (string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.ChainPackageId]?.Value; + set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value); + } + + public int Code + { + get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]?.Value; + set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value); + } + + public ExitCodeBehaviorType Behavior + { + get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Behavior]?.Value, true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; + set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString()); + } + } +} \ No newline at end of file -- cgit v1.2.3-55-g6feb