main
cs 117 lines 4.6 KB
Raw
1 // 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.
2
3 namespace WixToolset.Data
4 {
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixBundleBundlePackage = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixBundleBundlePackage,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number),
14 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.BundleId), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.EngineVersion), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.Version), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.InstallCommand), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.RepairCommand), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixBundleBundlePackageSymbolFields.UninstallCommand), IntermediateFieldType.String),
20 },
21 typeof(WixBundleBundlePackageSymbol));
22 }
23 }
24
25 namespace WixToolset.Data.Symbols
26 {
27 using System;
28
29 public enum WixBundleBundlePackageSymbolFields
30 {
31 Attributes,
32 BundleId,
33 EngineVersion,
34 Version,
35 InstallCommand,
36 RepairCommand,
37 UninstallCommand,
38 }
39
40 [Flags]
41 public enum WixBundleBundlePackageAttributes
42 {
43 None = 0,
44 SupportsBurnProtocol = 1,
45 }
46
47 public class WixBundleBundlePackageSymbol : IntermediateSymbol
48 {
49 public WixBundleBundlePackageSymbol() : base(SymbolDefinitions.WixBundleBundlePackage, null, null)
50 {
51 }
52
53 public WixBundleBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleBundlePackage, sourceLineNumber, id)
54 {
55 }
56
57 public IntermediateField this[WixBundleBundlePackageSymbolFields index] => this.Fields[(int)index];
58
59 public WixBundleBundlePackageAttributes Attributes
60 {
61 get => (WixBundleBundlePackageAttributes)(int)this.Fields[(int)WixBundleBundlePackageSymbolFields.Attributes];
62 set => this.Set((int)WixBundleBundlePackageSymbolFields.Attributes, (int)value);
63 }
64
65 public string BundleId
66 {
67 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.BundleId];
68 set => this.Set((int)WixBundleBundlePackageSymbolFields.BundleId, value);
69 }
70
71 public string EngineVersion
72 {
73 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.EngineVersion];
74 set => this.Set((int)WixBundleBundlePackageSymbolFields.EngineVersion, value);
75 }
76
77 public string Version
78 {
79 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.Version];
80 set => this.Set((int)WixBundleBundlePackageSymbolFields.Version, value);
81 }
82
83 public string InstallCommand
84 {
85 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.InstallCommand];
86 set => this.Set((int)WixBundleBundlePackageSymbolFields.InstallCommand, value);
87 }
88
89 public string RepairCommand
90 {
91 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.RepairCommand];
92 set => this.Set((int)WixBundleBundlePackageSymbolFields.RepairCommand, value);
93 }
94
95 public string UninstallCommand
96 {
97 get => (string)this.Fields[(int)WixBundleBundlePackageSymbolFields.UninstallCommand];
98 set => this.Set((int)WixBundleBundlePackageSymbolFields.UninstallCommand, value);
99 }
100
101 public bool SupportsBurnProtocol
102 {
103 get { return this.Attributes.HasFlag(WixBundleBundlePackageAttributes.SupportsBurnProtocol); }
104 set
105 {
106 if (value)
107 {
108 this.Attributes |= WixBundleBundlePackageAttributes.SupportsBurnProtocol;
109 }
110 else
111 {
112 this.Attributes &= ~WixBundleBundlePackageAttributes.SupportsBurnProtocol;
113 }
114 }
115 }
116 }
117 }