main
cs 142 lines 5.82 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 WixBundleHarvestedBundlePackage = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixBundleHarvestedBundlePackage,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number),
14 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.BundleId), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.EngineVersion), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.ManifestNamespace), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.ProtocolVersion), IntermediateFieldType.Number),
18 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.Version), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String),
20 new IntermediateFieldDefinition(nameof(WixBundleHarvestedBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber),
21 },
22 typeof(WixBundleHarvestedBundlePackageSymbol));
23 }
24 }
25
26 namespace WixToolset.Data.Symbols
27 {
28 using System;
29
30 public enum WixBundleHarvestedBundlePackageSymbolFields
31 {
32 Attributes,
33 BundleId,
34 EngineVersion,
35 ManifestNamespace,
36 ProtocolVersion,
37 Version,
38 DisplayName,
39 InstallSize,
40 }
41
42 [Flags]
43 public enum WixBundleHarvestedBundlePackageAttributes
44 {
45 None = 0x0,
46 PerMachine = 0x1,
47 Win64 = 0x2,
48 }
49
50 public class WixBundleHarvestedBundlePackageSymbol : IntermediateSymbol
51 {
52 public WixBundleHarvestedBundlePackageSymbol() : base(SymbolDefinitions.WixBundleHarvestedBundlePackage, null, null)
53 {
54 }
55
56 public WixBundleHarvestedBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleHarvestedBundlePackage, sourceLineNumber, id)
57 {
58 }
59
60 public IntermediateField this[WixBundleHarvestedBundlePackageSymbolFields index] => this.Fields[(int)index];
61
62 public WixBundleHarvestedBundlePackageAttributes Attributes
63 {
64 get => (WixBundleHarvestedBundlePackageAttributes)this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.Attributes].AsNumber();
65 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.Attributes, (int)value);
66 }
67
68 public string BundleId
69 {
70 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.BundleId].AsString();
71 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.BundleId, value);
72 }
73
74 public string EngineVersion
75 {
76 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.EngineVersion].AsString();
77 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.EngineVersion, value);
78 }
79
80 public string ManifestNamespace
81 {
82 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.ManifestNamespace].AsString();
83 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.ManifestNamespace, value);
84 }
85
86 public int ProtocolVersion
87 {
88 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.ProtocolVersion].AsNumber();
89 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.ProtocolVersion, value);
90 }
91
92 public string Version
93 {
94 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.Version].AsString();
95 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.Version, value);
96 }
97
98 public string DisplayName
99 {
100 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.DisplayName].AsString();
101 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.DisplayName, value);
102 }
103
104 public long InstallSize
105 {
106 get => this.Fields[(int)WixBundleHarvestedBundlePackageSymbolFields.InstallSize].AsLargeNumber();
107 set => this.Set((int)WixBundleHarvestedBundlePackageSymbolFields.InstallSize, value);
108 }
109
110 public bool PerMachine
111 {
112 get { return this.Attributes.HasFlag(WixBundleHarvestedBundlePackageAttributes.PerMachine); }
113 set
114 {
115 if (value)
116 {
117 this.Attributes |= WixBundleHarvestedBundlePackageAttributes.PerMachine;
118 }
119 else
120 {
121 this.Attributes &= ~WixBundleHarvestedBundlePackageAttributes.PerMachine;
122 }
123 }
124 }
125
126 public bool Win64
127 {
128 get { return this.Attributes.HasFlag(WixBundleHarvestedBundlePackageAttributes.Win64); }
129 set
130 {
131 if (value)
132 {
133 this.Attributes |= WixBundleHarvestedBundlePackageAttributes.Win64;
134 }
135 else
136 {
137 this.Attributes &= ~WixBundleHarvestedBundlePackageAttributes.Win64;
138 }
139 }
140 }
141 }
142 }