aboutsummaryrefslogtreecommitdiff
path: root/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs')
-rw-r--r--src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs212
1 files changed, 212 insertions, 0 deletions
diff --git a/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
new file mode 100644
index 00000000..cbe7f761
--- /dev/null
+++ b/src/api/wix/WixToolset.Data/Symbols/WixBundlePackageSymbol.cs
@@ -0,0 +1,212 @@
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
3namespace WixToolset.Data
4{
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixBundlePackage = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixBundlePackage,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Type), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PayloadRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Attributes), IntermediateFieldType.Number),
16 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallCondition), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Cache), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.CacheId), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Vital), IntermediateFieldType.Bool),
20 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.PerMachine), IntermediateFieldType.String),
21 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.LogPathVariable), IntermediateFieldType.String),
22 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackLogPathVariable), IntermediateFieldType.String),
23 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Size), IntermediateFieldType.LargeNumber),
24 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.InstallSize), IntermediateFieldType.LargeNumber),
25 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Version), IntermediateFieldType.String),
26 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Language), IntermediateFieldType.Number),
27 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.DisplayName), IntermediateFieldType.String),
28 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Description), IntermediateFieldType.String),
29 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryRef), IntermediateFieldType.String),
30 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef), IntermediateFieldType.String),
31 new IntermediateFieldDefinition(nameof(WixBundlePackageSymbolFields.Win64), IntermediateFieldType.Bool),
32 },
33 typeof(WixBundlePackageSymbol));
34 }
35}
36
37namespace WixToolset.Data.Symbols
38{
39 using System;
40
41 public enum WixBundlePackageSymbolFields
42 {
43 Type,
44 PayloadRef,
45 Attributes,
46 InstallCondition,
47 Cache,
48 CacheId,
49 Vital,
50 PerMachine,
51 LogPathVariable,
52 RollbackLogPathVariable,
53 Size,
54 InstallSize,
55 Version,
56 Language,
57 DisplayName,
58 Description,
59 RollbackBoundaryRef,
60 RollbackBoundaryBackwardRef,
61 Win64,
62 }
63
64 /// <summary>
65 /// Types of bundle packages.
66 /// </summary>
67 public enum WixBundlePackageType
68 {
69 Exe,
70 Msi,
71 Msp,
72 Msu,
73 }
74
75 [Flags]
76 public enum WixBundlePackageAttributes
77 {
78 Permanent = 0x1,
79 Visible = 0x2,
80 PerMachine = 0x4,
81 Win64 = 0x8,
82 }
83
84 public class WixBundlePackageSymbol : IntermediateSymbol
85 {
86 public WixBundlePackageSymbol() : base(SymbolDefinitions.WixBundlePackage, null, null)
87 {
88 }
89
90 public WixBundlePackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundlePackage, sourceLineNumber, id)
91 {
92 }
93
94 public IntermediateField this[WixBundlePackageSymbolFields index] => this.Fields[(int)index];
95
96 public WixBundlePackageType Type
97 {
98 get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageSymbolFields.Type], true);
99 set => this.Set((int)WixBundlePackageSymbolFields.Type, value.ToString());
100 }
101
102 public string PayloadRef
103 {
104 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.PayloadRef];
105 set => this.Set((int)WixBundlePackageSymbolFields.PayloadRef, value);
106 }
107
108 public WixBundlePackageAttributes Attributes
109 {
110 get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageSymbolFields.Attributes];
111 set => this.Set((int)WixBundlePackageSymbolFields.Attributes, (int)value);
112 }
113
114 public string InstallCondition
115 {
116 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.InstallCondition];
117 set => this.Set((int)WixBundlePackageSymbolFields.InstallCondition, value);
118 }
119
120 public YesNoAlwaysType Cache
121 {
122 get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.Cache], true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet;
123 set => this.Set((int)WixBundlePackageSymbolFields.Cache, value.ToString().ToLowerInvariant());
124 }
125
126 public string CacheId
127 {
128 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.CacheId];
129 set => this.Set((int)WixBundlePackageSymbolFields.CacheId, value);
130 }
131
132 public bool? Vital
133 {
134 get => (bool?)this.Fields[(int)WixBundlePackageSymbolFields.Vital];
135 set => this.Set((int)WixBundlePackageSymbolFields.Vital, value);
136 }
137
138 public YesNoDefaultType PerMachine
139 {
140 get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageSymbolFields.PerMachine], true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet;
141 set => this.Set((int)WixBundlePackageSymbolFields.PerMachine, value.ToString().ToLowerInvariant());
142 }
143
144 public string LogPathVariable
145 {
146 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.LogPathVariable];
147 set => this.Set((int)WixBundlePackageSymbolFields.LogPathVariable, value);
148 }
149
150 public string RollbackLogPathVariable
151 {
152 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackLogPathVariable];
153 set => this.Set((int)WixBundlePackageSymbolFields.RollbackLogPathVariable, value);
154 }
155
156 public long Size
157 {
158 get => (long)this.Fields[(int)WixBundlePackageSymbolFields.Size];
159 set => this.Set((int)WixBundlePackageSymbolFields.Size, value);
160 }
161
162 public long? InstallSize
163 {
164 get => (long?)this.Fields[(int)WixBundlePackageSymbolFields.InstallSize];
165 set => this.Set((int)WixBundlePackageSymbolFields.InstallSize, value);
166 }
167
168 public string Version
169 {
170 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Version];
171 set => this.Set((int)WixBundlePackageSymbolFields.Version, value);
172 }
173
174 public int? Language
175 {
176 get => (int?)this.Fields[(int)WixBundlePackageSymbolFields.Language];
177 set => this.Set((int)WixBundlePackageSymbolFields.Language, value);
178 }
179
180 public string DisplayName
181 {
182 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.DisplayName];
183 set => this.Set((int)WixBundlePackageSymbolFields.DisplayName, value);
184 }
185
186 public string Description
187 {
188 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.Description];
189 set => this.Set((int)WixBundlePackageSymbolFields.Description, value);
190 }
191
192 public string RollbackBoundaryRef
193 {
194 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryRef];
195 set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryRef, value);
196 }
197
198 public string RollbackBoundaryBackwardRef
199 {
200 get => (string)this.Fields[(int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef];
201 set => this.Set((int)WixBundlePackageSymbolFields.RollbackBoundaryBackwardRef, value);
202 }
203
204 public bool Win64
205 {
206 get => (bool)this.Fields[(int)WixBundlePackageSymbolFields.Win64];
207 set => this.Set((int)WixBundlePackageSymbolFields.Win64, value);
208 }
209
210 public bool Permanent => (this.Attributes & WixBundlePackageAttributes.Permanent) == WixBundlePackageAttributes.Permanent;
211 }
212} \ No newline at end of file