diff options
author | Rob Mensching <rob@firegiant.com> | 2017-11-01 10:56:09 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2017-11-01 10:56:09 -0700 |
commit | 69b15d96cebdbb7201b1849b4f62786633d70b8d (patch) | |
tree | 4b65de8679e4b4ab81b69edcccbac1ae9f55a16d /src | |
parent | a8656a87887d6cb2c54f4bbeacee37f7074f1032 (diff) | |
download | wix-69b15d96cebdbb7201b1849b4f62786633d70b8d.tar.gz wix-69b15d96cebdbb7201b1849b4f62786633d70b8d.tar.bz2 wix-69b15d96cebdbb7201b1849b4f62786633d70b8d.zip |
Introduce WiX Intermediate Representation
Diffstat (limited to 'src')
313 files changed, 22797 insertions, 12677 deletions
diff --git a/src/WixToolset.Data/AssemblyInfo.cs b/src/WixToolset.Data/AssemblyInfo.cs index 6512230a..b3740b2a 100644 --- a/src/WixToolset.Data/AssemblyInfo.cs +++ b/src/WixToolset.Data/AssemblyInfo.cs | |||
@@ -5,5 +5,5 @@ using System.Reflection; | |||
5 | using System.Runtime.InteropServices; | 5 | using System.Runtime.InteropServices; |
6 | 6 | ||
7 | [assembly: AssemblyCulture("")] | 7 | [assembly: AssemblyCulture("")] |
8 | [assembly:CLSCompliant(true)] | 8 | [assembly: CLSCompliant(true)] |
9 | [assembly: ComVisible(false)] | 9 | [assembly: ComVisible(false)] |
diff --git a/src/WixToolset.Data/BindPath.cs b/src/WixToolset.Data/Bind/BindPath.cs index 823a57c9..823a57c9 100644 --- a/src/WixToolset.Data/BindPath.cs +++ b/src/WixToolset.Data/Bind/BindPath.cs | |||
diff --git a/src/WixToolset.Data/Bind/BindVariable.cs b/src/WixToolset.Data/Bind/BindVariable.cs new file mode 100644 index 00000000..06c004e1 --- /dev/null +++ b/src/WixToolset.Data/Bind/BindVariable.cs | |||
@@ -0,0 +1,33 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixVariable table. | ||
7 | /// </summary> | ||
8 | public sealed class BindVariable | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Gets or sets the source line number. | ||
12 | /// </summary> | ||
13 | public SourceLineNumber SourceLineNumbers { get; set; } | ||
14 | |||
15 | /// <summary> | ||
16 | /// Gets or sets the variable identifier. | ||
17 | /// </summary> | ||
18 | /// <value>The variable identifier.</value> | ||
19 | public string Id { get; set; } | ||
20 | |||
21 | /// <summary> | ||
22 | /// Gets or sets the variable's value. | ||
23 | /// </summary> | ||
24 | /// <value>The variable's value.</value> | ||
25 | public string Value { get; set; } | ||
26 | |||
27 | /// <summary> | ||
28 | /// Gets or sets whether this variable is overridable. | ||
29 | /// </summary> | ||
30 | /// <value>Whether this variable is overridable.</value> | ||
31 | public bool Overridable { get; set; } | ||
32 | } | ||
33 | } | ||
diff --git a/src/WixToolset.Data/ColumnDefinition.cs b/src/WixToolset.Data/ColumnDefinition.cs deleted file mode 100644 index 7e5a07c5..00000000 --- a/src/WixToolset.Data/ColumnDefinition.cs +++ /dev/null | |||
@@ -1,1032 +0,0 @@ | |||
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 System; | ||
6 | using System.Globalization; | ||
7 | using System.Xml; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Defines MSI column types. | ||
11 | /// </summary> | ||
12 | public enum ColumnType | ||
13 | { | ||
14 | /// <summary>Unknown column type, default and invalid.</summary> | ||
15 | Unknown, | ||
16 | |||
17 | /// <summary>Column is a string.</summary> | ||
18 | String, | ||
19 | |||
20 | /// <summary>Column is a localizable string.</summary> | ||
21 | Localized, | ||
22 | |||
23 | /// <summary>Column is a number.</summary> | ||
24 | Number, | ||
25 | |||
26 | /// <summary>Column is a binary stream.</summary> | ||
27 | Object, | ||
28 | |||
29 | /// <summary>Column is a string that is preserved in transforms (like Object).</summary> | ||
30 | Preserved, | ||
31 | } | ||
32 | |||
33 | /// <summary> | ||
34 | /// Specifies if the column should be modularized. | ||
35 | /// </summary> | ||
36 | public enum ColumnModularizeType | ||
37 | { | ||
38 | /// <summary>Column should not be modularized.</summary> | ||
39 | None, | ||
40 | |||
41 | /// <summary>Column should be modularized.</summary> | ||
42 | Column, | ||
43 | |||
44 | /// <summary>When the column is an primary or foreign key to the Icon table it should be modularized special.</summary> | ||
45 | Icon, | ||
46 | |||
47 | /// <summary>When the column is a companion file it should be modularized.</summary> | ||
48 | CompanionFile, | ||
49 | |||
50 | /// <summary>Column is a condition and should be modularized.</summary> | ||
51 | Condition, | ||
52 | |||
53 | /// <summary>Special modularization type for the ControlEvent table's Argument column.</summary> | ||
54 | ControlEventArgument, | ||
55 | |||
56 | /// <summary>Special modularization type for the Control table's Text column.</summary> | ||
57 | ControlText, | ||
58 | |||
59 | /// <summary>Any Properties in the column should be modularized.</summary> | ||
60 | Property, | ||
61 | |||
62 | /// <summary>Semi-colon list of keys, all of which need to be modularized.</summary> | ||
63 | SemicolonDelimited, | ||
64 | } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Column validation category type | ||
68 | /// </summary> | ||
69 | public enum ColumnCategory | ||
70 | { | ||
71 | /// <summary>Unknown category, default and invalid.</summary> | ||
72 | Unknown, | ||
73 | |||
74 | /// <summary>Text category.</summary> | ||
75 | Text, | ||
76 | |||
77 | /// <summary>UpperCase category.</summary> | ||
78 | UpperCase, | ||
79 | |||
80 | /// <summary>LowerCase category.</summary> | ||
81 | LowerCase, | ||
82 | |||
83 | /// <summary>Integer category.</summary> | ||
84 | Integer, | ||
85 | |||
86 | /// <summary>DoubleInteger category.</summary> | ||
87 | DoubleInteger, | ||
88 | |||
89 | /// <summary>TimeDate category.</summary> | ||
90 | TimeDate, | ||
91 | |||
92 | /// <summary>Identifier category.</summary> | ||
93 | Identifier, | ||
94 | |||
95 | /// <summary>Property category.</summary> | ||
96 | Property, | ||
97 | |||
98 | /// <summary>Filename category.</summary> | ||
99 | Filename, | ||
100 | |||
101 | /// <summary>WildCardFilename category.</summary> | ||
102 | WildCardFilename, | ||
103 | |||
104 | /// <summary>Path category.</summary> | ||
105 | Path, | ||
106 | |||
107 | /// <summary>Paths category.</summary> | ||
108 | Paths, | ||
109 | |||
110 | /// <summary>AnyPath category.</summary> | ||
111 | AnyPath, | ||
112 | |||
113 | /// <summary>DefaultDir category.</summary> | ||
114 | DefaultDir, | ||
115 | |||
116 | /// <summary>RegPath category.</summary> | ||
117 | RegPath, | ||
118 | |||
119 | /// <summary>Formatted category.</summary> | ||
120 | Formatted, | ||
121 | |||
122 | /// <summary>Template category.</summary> | ||
123 | Template, | ||
124 | |||
125 | /// <summary>Condition category.</summary> | ||
126 | Condition, | ||
127 | |||
128 | /// <summary>Guid category.</summary> | ||
129 | Guid, | ||
130 | |||
131 | /// <summary>Version category.</summary> | ||
132 | Version, | ||
133 | |||
134 | /// <summary>Language category.</summary> | ||
135 | Language, | ||
136 | |||
137 | /// <summary>Binary category.</summary> | ||
138 | Binary, | ||
139 | |||
140 | /// <summary>CustomSource category.</summary> | ||
141 | CustomSource, | ||
142 | |||
143 | /// <summary>Cabinet category.</summary> | ||
144 | Cabinet, | ||
145 | |||
146 | /// <summary>Shortcut category.</summary> | ||
147 | Shortcut, | ||
148 | |||
149 | /// <summary>Formatted SDDL category.</summary> | ||
150 | FormattedSDDLText, | ||
151 | } | ||
152 | |||
153 | /// <summary> | ||
154 | /// Definition of a table's column. | ||
155 | /// </summary> | ||
156 | public sealed class ColumnDefinition : IComparable<ColumnDefinition> | ||
157 | { | ||
158 | private string name; | ||
159 | private ColumnType type; | ||
160 | private int length; | ||
161 | private bool primaryKey; | ||
162 | private bool nullable; | ||
163 | private ColumnModularizeType modularize; | ||
164 | private bool localizable; | ||
165 | private bool added; | ||
166 | |||
167 | private bool minValueSet; | ||
168 | private long minValue; | ||
169 | private bool maxValueSet; | ||
170 | private long maxValue; | ||
171 | private string keyTable; | ||
172 | private bool keyColumnSet; | ||
173 | private int keyColumn; | ||
174 | private ColumnCategory category; | ||
175 | private string possibilities; | ||
176 | private string description; | ||
177 | private bool escapeIdtCharacters; | ||
178 | private bool useCData; | ||
179 | |||
180 | /// <summary> | ||
181 | /// Creates a new column definition. | ||
182 | /// </summary> | ||
183 | /// <param name="name">Name of column.</param> | ||
184 | /// <param name="type">Type of column</param> | ||
185 | /// <param name="length">Length of column.</param> | ||
186 | /// <param name="primaryKey">If column is primary key.</param> | ||
187 | /// <param name="nullable">If column is nullable.</param> | ||
188 | /// <param name="modularizeType">Type of modularization for column</param> | ||
189 | /// <param name="localizable">If the column is localizable.</param> | ||
190 | /// <param name="minValueSet">If the minimum of the value was set.</param> | ||
191 | /// <param name="minValue">Minimum value for the column.</param> | ||
192 | /// <param name="maxValueSet">If the maximum value was set.</param> | ||
193 | /// <param name="maxValue">Maximum value for the colum.</param> | ||
194 | /// <param name="keyTable">Optional name of table for foreign key.</param> | ||
195 | /// <param name="keyColumnSet">If the key column was set.</param> | ||
196 | /// <param name="keyColumn">Optional name of column for foreign key.</param> | ||
197 | /// <param name="category">Validation category for column.</param> | ||
198 | /// <param name="possibilities">Set of possible values for column.</param> | ||
199 | /// <param name="description">Description of column in vaidation table.</param> | ||
200 | /// <param name="escapeIdtCharacters">If characters should be escaped in IDT.</param> | ||
201 | /// <param name="useCData">If whitespace should be preserved in a CDATA node.</param> | ||
202 | public ColumnDefinition(string name, ColumnType type, int length, bool primaryKey, bool nullable, ColumnModularizeType modularizeType, bool localizable, bool minValueSet, long minValue, bool maxValueSet, long maxValue, string keyTable, bool keyColumnSet, int keyColumn, ColumnCategory category, string possibilities, string description, bool escapeIdtCharacters, bool useCData) | ||
203 | { | ||
204 | this.name = name; | ||
205 | this.type = type; | ||
206 | this.length = length; | ||
207 | this.primaryKey = primaryKey; | ||
208 | this.nullable = nullable; | ||
209 | this.modularize = modularizeType; | ||
210 | this.localizable = localizable; | ||
211 | this.minValueSet = minValueSet; | ||
212 | this.minValue = minValue; | ||
213 | this.maxValueSet = maxValueSet; | ||
214 | this.maxValue = maxValue; | ||
215 | this.keyTable = keyTable; | ||
216 | this.keyColumnSet = keyColumnSet; | ||
217 | this.keyColumn = keyColumn; | ||
218 | this.category = category; | ||
219 | this.possibilities = possibilities; | ||
220 | this.description = description; | ||
221 | this.escapeIdtCharacters = escapeIdtCharacters; | ||
222 | this.useCData = useCData; | ||
223 | } | ||
224 | |||
225 | /// <summary> | ||
226 | /// Gets whether this column was added via a transform. | ||
227 | /// </summary> | ||
228 | /// <value>Whether this column was added via a transform.</value> | ||
229 | public bool Added | ||
230 | { | ||
231 | get { return this.added; } | ||
232 | set { this.added = value; } | ||
233 | } | ||
234 | |||
235 | /// <summary> | ||
236 | /// Gets the name of the column. | ||
237 | /// </summary> | ||
238 | /// <value>Name of column.</value> | ||
239 | public string Name | ||
240 | { | ||
241 | get { return this.name; } | ||
242 | } | ||
243 | |||
244 | /// <summary> | ||
245 | /// Gets the type of the column. | ||
246 | /// </summary> | ||
247 | /// <value>Type of column.</value> | ||
248 | public ColumnType Type | ||
249 | { | ||
250 | get { return this.type; } | ||
251 | } | ||
252 | |||
253 | /// <summary> | ||
254 | /// Gets the length of the column. | ||
255 | /// </summary> | ||
256 | /// <value>Length of column.</value> | ||
257 | public int Length | ||
258 | { | ||
259 | get { return this.length; } | ||
260 | } | ||
261 | |||
262 | /// <summary> | ||
263 | /// Gets if the column is a primary key. | ||
264 | /// </summary> | ||
265 | /// <value>true if column is primary key.</value> | ||
266 | public bool PrimaryKey | ||
267 | { | ||
268 | get { return this.primaryKey; } | ||
269 | } | ||
270 | |||
271 | /// <summary> | ||
272 | /// Gets if the column is nullable. | ||
273 | /// </summary> | ||
274 | /// <value>true if column is nullable.</value> | ||
275 | public bool Nullable | ||
276 | { | ||
277 | get { return this.nullable; } | ||
278 | } | ||
279 | |||
280 | /// <summary> | ||
281 | /// Gets the type of modularization for this column. | ||
282 | /// </summary> | ||
283 | /// <value>Column's modularization type.</value> | ||
284 | public ColumnModularizeType ModularizeType | ||
285 | { | ||
286 | get { return this.modularize; } | ||
287 | } | ||
288 | |||
289 | /// <summary> | ||
290 | /// Gets if the column is localizable. Can be because the type is localizable, or because the column | ||
291 | /// was explicitly set to be so. | ||
292 | /// </summary> | ||
293 | /// <value>true if column is localizable.</value> | ||
294 | public bool IsLocalizable | ||
295 | { | ||
296 | get { return this.localizable || ColumnType.Localized == this.Type; } | ||
297 | } | ||
298 | |||
299 | /// <summary> | ||
300 | /// Gets if the minimum value of the column is set. | ||
301 | /// </summary> | ||
302 | /// <value>true if minimum value is set.</value> | ||
303 | public bool IsMinValueSet | ||
304 | { | ||
305 | get { return this.minValueSet; } | ||
306 | } | ||
307 | |||
308 | /// <summary> | ||
309 | /// Gets the minimum value for the column, only valid if IsMinValueSet returns true. | ||
310 | /// </summary> | ||
311 | /// <value>Minimum value for the column.</value> | ||
312 | public long MinValue | ||
313 | { | ||
314 | get { return this.minValue; } | ||
315 | } | ||
316 | |||
317 | /// <summary> | ||
318 | /// Gets if the maximum value of the column is set. | ||
319 | /// </summary> | ||
320 | /// <value>true if maximum value is set.</value> | ||
321 | public bool IsMaxValueSet | ||
322 | { | ||
323 | get { return this.maxValueSet; } | ||
324 | } | ||
325 | |||
326 | /// <summary> | ||
327 | /// Gets the maximum value for the column, only valid if IsMinValueSet returns true. | ||
328 | /// </summary> | ||
329 | /// <value>Maximum value for the column.</value> | ||
330 | public long MaxValue | ||
331 | { | ||
332 | get { return this.maxValue; } | ||
333 | } | ||
334 | |||
335 | /// <summary> | ||
336 | /// Gets the table that has the foreign key for this column | ||
337 | /// </summary> | ||
338 | /// <value>Foreign key table name.</value> | ||
339 | public string KeyTable | ||
340 | { | ||
341 | get { return this.keyTable; } | ||
342 | } | ||
343 | |||
344 | /// <summary> | ||
345 | /// Gets if the key column is set. | ||
346 | /// </summary> | ||
347 | /// <value>True if the key column is set.</value> | ||
348 | public bool IsKeyColumnSet | ||
349 | { | ||
350 | get { return this.keyColumnSet; } | ||
351 | } | ||
352 | |||
353 | /// <summary> | ||
354 | /// Gets the foreign key column that this column refers to. | ||
355 | /// </summary> | ||
356 | /// <value>Foreign key column.</value> | ||
357 | public int KeyColumn | ||
358 | { | ||
359 | get { return this.keyColumn; } | ||
360 | } | ||
361 | |||
362 | /// <summary> | ||
363 | /// Gets the validation category for this column. | ||
364 | /// </summary> | ||
365 | /// <value>Validation category.</value> | ||
366 | public ColumnCategory Category | ||
367 | { | ||
368 | get { return this.category; } | ||
369 | } | ||
370 | |||
371 | /// <summary> | ||
372 | /// Gets the set of possibilities for this column. | ||
373 | /// </summary> | ||
374 | /// <value>Set of possibilities for this column.</value> | ||
375 | public string Possibilities | ||
376 | { | ||
377 | get { return this.possibilities; } | ||
378 | } | ||
379 | |||
380 | /// <summary> | ||
381 | /// Gets the description for this column. | ||
382 | /// </summary> | ||
383 | /// <value>Description of column.</value> | ||
384 | public string Description | ||
385 | { | ||
386 | get { return this.description; } | ||
387 | } | ||
388 | |||
389 | /// <summary> | ||
390 | /// Gets if characters should be escaped to fit into IDT. | ||
391 | /// </summary> | ||
392 | /// <value>true if data should be escaped when adding to IDT.</value> | ||
393 | public bool EscapeIdtCharacters | ||
394 | { | ||
395 | get { return this.escapeIdtCharacters; } | ||
396 | } | ||
397 | |||
398 | /// <summary> | ||
399 | /// Gets if whitespace should be preserved in a CDATA node. | ||
400 | /// </summary> | ||
401 | /// <value>true if whitespace should be preserved in a CDATA node.</value> | ||
402 | public bool UseCData | ||
403 | { | ||
404 | get { return this.useCData; } | ||
405 | } | ||
406 | |||
407 | /// <summary> | ||
408 | /// Gets the type of the column in IDT format. | ||
409 | /// </summary> | ||
410 | /// <value>IDT format for column type.</value> | ||
411 | public string IdtType | ||
412 | { | ||
413 | get | ||
414 | { | ||
415 | char typeCharacter; | ||
416 | switch (this.type) | ||
417 | { | ||
418 | case ColumnType.Number: | ||
419 | typeCharacter = this.nullable ? 'I' : 'i'; | ||
420 | break; | ||
421 | case ColumnType.Preserved: | ||
422 | case ColumnType.String: | ||
423 | typeCharacter = this.nullable ? 'S' : 's'; | ||
424 | break; | ||
425 | case ColumnType.Localized: | ||
426 | typeCharacter = this.nullable ? 'L' : 'l'; | ||
427 | break; | ||
428 | case ColumnType.Object: | ||
429 | typeCharacter = this.nullable ? 'V' : 'v'; | ||
430 | break; | ||
431 | default: | ||
432 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_UnknownColumnType, this.type)); | ||
433 | } | ||
434 | |||
435 | return String.Concat(typeCharacter, this.length); | ||
436 | } | ||
437 | } | ||
438 | |||
439 | /// <summary> | ||
440 | /// Parses a column definition in a table definition. | ||
441 | /// </summary> | ||
442 | /// <param name="reader">Reader to get data from.</param> | ||
443 | /// <returns>The ColumnDefintion represented by the Xml.</returns> | ||
444 | internal static ColumnDefinition Read(XmlReader reader) | ||
445 | { | ||
446 | if (!reader.LocalName.Equals("columnDefinition")) | ||
447 | { | ||
448 | throw new XmlException(); | ||
449 | } | ||
450 | |||
451 | bool added = false; | ||
452 | ColumnCategory category = ColumnCategory.Unknown; | ||
453 | string description = null; | ||
454 | bool empty = reader.IsEmptyElement; | ||
455 | bool escapeIdtCharacters = false; | ||
456 | int keyColumn = -1; | ||
457 | bool keyColumnSet = false; | ||
458 | string keyTable = null; | ||
459 | int length = -1; | ||
460 | bool localizable = false; | ||
461 | long maxValue = 0; | ||
462 | bool maxValueSet = false; | ||
463 | long minValue = 0; | ||
464 | bool minValueSet = false; | ||
465 | ColumnModularizeType modularize = ColumnModularizeType.None; | ||
466 | string name = null; | ||
467 | bool nullable = false; | ||
468 | string possibilities = null; | ||
469 | bool primaryKey = false; | ||
470 | ColumnType type = ColumnType.Unknown; | ||
471 | bool useCData = false; | ||
472 | |||
473 | // parse the attributes | ||
474 | while (reader.MoveToNextAttribute()) | ||
475 | { | ||
476 | switch (reader.LocalName) | ||
477 | { | ||
478 | case "added": | ||
479 | added = reader.Value.Equals("yes"); | ||
480 | break; | ||
481 | case "category": | ||
482 | switch (reader.Value) | ||
483 | { | ||
484 | case "anyPath": | ||
485 | category = ColumnCategory.AnyPath; | ||
486 | break; | ||
487 | case "binary": | ||
488 | category = ColumnCategory.Binary; | ||
489 | break; | ||
490 | case "cabinet": | ||
491 | category = ColumnCategory.Cabinet; | ||
492 | break; | ||
493 | case "condition": | ||
494 | category = ColumnCategory.Condition; | ||
495 | break; | ||
496 | case "customSource": | ||
497 | category = ColumnCategory.CustomSource; | ||
498 | break; | ||
499 | case "defaultDir": | ||
500 | category = ColumnCategory.DefaultDir; | ||
501 | break; | ||
502 | case "doubleInteger": | ||
503 | category = ColumnCategory.DoubleInteger; | ||
504 | break; | ||
505 | case "filename": | ||
506 | category = ColumnCategory.Filename; | ||
507 | break; | ||
508 | case "formatted": | ||
509 | category = ColumnCategory.Formatted; | ||
510 | break; | ||
511 | case "formattedSddl": | ||
512 | category = ColumnCategory.FormattedSDDLText; | ||
513 | break; | ||
514 | case "guid": | ||
515 | category = ColumnCategory.Guid; | ||
516 | break; | ||
517 | case "identifier": | ||
518 | category = ColumnCategory.Identifier; | ||
519 | break; | ||
520 | case "integer": | ||
521 | category = ColumnCategory.Integer; | ||
522 | break; | ||
523 | case "language": | ||
524 | category = ColumnCategory.Language; | ||
525 | break; | ||
526 | case "lowerCase": | ||
527 | category = ColumnCategory.LowerCase; | ||
528 | break; | ||
529 | case "path": | ||
530 | category = ColumnCategory.Path; | ||
531 | break; | ||
532 | case "paths": | ||
533 | category = ColumnCategory.Paths; | ||
534 | break; | ||
535 | case "property": | ||
536 | category = ColumnCategory.Property; | ||
537 | break; | ||
538 | case "regPath": | ||
539 | category = ColumnCategory.RegPath; | ||
540 | break; | ||
541 | case "shortcut": | ||
542 | category = ColumnCategory.Shortcut; | ||
543 | break; | ||
544 | case "template": | ||
545 | category = ColumnCategory.Template; | ||
546 | break; | ||
547 | case "text": | ||
548 | category = ColumnCategory.Text; | ||
549 | break; | ||
550 | case "timeDate": | ||
551 | category = ColumnCategory.TimeDate; | ||
552 | break; | ||
553 | case "upperCase": | ||
554 | category = ColumnCategory.UpperCase; | ||
555 | break; | ||
556 | case "version": | ||
557 | category = ColumnCategory.Version; | ||
558 | break; | ||
559 | case "wildCardFilename": | ||
560 | category = ColumnCategory.WildCardFilename; | ||
561 | break; | ||
562 | default: | ||
563 | throw new InvalidOperationException(); | ||
564 | } | ||
565 | break; | ||
566 | case "description": | ||
567 | description = reader.Value; | ||
568 | break; | ||
569 | case "escapeIdtCharacters": | ||
570 | escapeIdtCharacters = reader.Value.Equals("yes"); | ||
571 | break; | ||
572 | case "keyColumn": | ||
573 | keyColumnSet = true; | ||
574 | keyColumn = Convert.ToInt32(reader.Value, 10); | ||
575 | break; | ||
576 | case "keyTable": | ||
577 | keyTable = reader.Value; | ||
578 | break; | ||
579 | case "length": | ||
580 | length = Convert.ToInt32(reader.Value, 10); | ||
581 | break; | ||
582 | case "localizable": | ||
583 | localizable = reader.Value.Equals("yes"); | ||
584 | break; | ||
585 | case "maxValue": | ||
586 | maxValueSet = true; | ||
587 | maxValue = Convert.ToInt32(reader.Value, 10); | ||
588 | break; | ||
589 | case "minValue": | ||
590 | minValueSet = true; | ||
591 | minValue = Convert.ToInt32(reader.Value, 10); | ||
592 | break; | ||
593 | case "modularize": | ||
594 | switch (reader.Value) | ||
595 | { | ||
596 | case "column": | ||
597 | modularize = ColumnModularizeType.Column; | ||
598 | break; | ||
599 | case "companionFile": | ||
600 | modularize = ColumnModularizeType.CompanionFile; | ||
601 | break; | ||
602 | case "condition": | ||
603 | modularize = ColumnModularizeType.Condition; | ||
604 | break; | ||
605 | case "controlEventArgument": | ||
606 | modularize = ColumnModularizeType.ControlEventArgument; | ||
607 | break; | ||
608 | case "controlText": | ||
609 | modularize = ColumnModularizeType.ControlText; | ||
610 | break; | ||
611 | case "icon": | ||
612 | modularize = ColumnModularizeType.Icon; | ||
613 | break; | ||
614 | case "none": | ||
615 | modularize = ColumnModularizeType.None; | ||
616 | break; | ||
617 | case "property": | ||
618 | modularize = ColumnModularizeType.Property; | ||
619 | break; | ||
620 | case "semicolonDelimited": | ||
621 | modularize = ColumnModularizeType.SemicolonDelimited; | ||
622 | break; | ||
623 | default: | ||
624 | throw new XmlException(); | ||
625 | } | ||
626 | break; | ||
627 | case "name": | ||
628 | switch (reader.Value) | ||
629 | { | ||
630 | case "CREATE": | ||
631 | case "DELETE": | ||
632 | case "DROP": | ||
633 | case "INSERT": | ||
634 | throw new XmlException(); | ||
635 | default: | ||
636 | name = reader.Value; | ||
637 | break; | ||
638 | } | ||
639 | break; | ||
640 | case "nullable": | ||
641 | nullable = reader.Value.Equals("yes"); | ||
642 | break; | ||
643 | case "primaryKey": | ||
644 | primaryKey = reader.Value.Equals("yes"); | ||
645 | break; | ||
646 | case "set": | ||
647 | possibilities = reader.Value; | ||
648 | break; | ||
649 | case "type": | ||
650 | switch (reader.Value) | ||
651 | { | ||
652 | case "localized": | ||
653 | type = ColumnType.Localized; | ||
654 | break; | ||
655 | case "number": | ||
656 | type = ColumnType.Number; | ||
657 | break; | ||
658 | case "object": | ||
659 | type = ColumnType.Object; | ||
660 | break; | ||
661 | case "string": | ||
662 | type = ColumnType.String; | ||
663 | break; | ||
664 | case "preserved": | ||
665 | type = ColumnType.Preserved; | ||
666 | break; | ||
667 | default: | ||
668 | throw new XmlException(); | ||
669 | } | ||
670 | break; | ||
671 | case "useCData": | ||
672 | useCData = reader.Value.Equals("yes"); | ||
673 | break; | ||
674 | } | ||
675 | } | ||
676 | |||
677 | // parse the child elements (there should be none) | ||
678 | if (!empty) | ||
679 | { | ||
680 | bool done = false; | ||
681 | |||
682 | while (!done && reader.Read()) | ||
683 | { | ||
684 | switch (reader.NodeType) | ||
685 | { | ||
686 | case XmlNodeType.Element: | ||
687 | throw new XmlException(); | ||
688 | case XmlNodeType.EndElement: | ||
689 | done = true; | ||
690 | break; | ||
691 | } | ||
692 | } | ||
693 | |||
694 | if (!done) | ||
695 | { | ||
696 | throw new XmlException(); | ||
697 | } | ||
698 | } | ||
699 | |||
700 | ColumnDefinition columnDefinition = new ColumnDefinition(name, type, length, primaryKey, nullable, modularize, localizable, minValueSet, minValue, maxValueSet, maxValue, keyTable, keyColumnSet, keyColumn, category, possibilities, description, escapeIdtCharacters, useCData); | ||
701 | columnDefinition.Added = added; | ||
702 | |||
703 | return columnDefinition; | ||
704 | } | ||
705 | |||
706 | /// <summary> | ||
707 | /// Persists a ColumnDefinition in an XML format. | ||
708 | /// </summary> | ||
709 | /// <param name="writer">XmlWriter where the Output should persist itself as XML.</param> | ||
710 | internal void Write(XmlWriter writer) | ||
711 | { | ||
712 | writer.WriteStartElement("columnDefinition", TableDefinitionCollection.XmlNamespaceUri); | ||
713 | |||
714 | writer.WriteAttributeString("name", this.name); | ||
715 | |||
716 | switch (this.type) | ||
717 | { | ||
718 | case ColumnType.Localized: | ||
719 | writer.WriteAttributeString("type", "localized"); | ||
720 | break; | ||
721 | case ColumnType.Number: | ||
722 | writer.WriteAttributeString("type", "number"); | ||
723 | break; | ||
724 | case ColumnType.Object: | ||
725 | writer.WriteAttributeString("type", "object"); | ||
726 | break; | ||
727 | case ColumnType.String: | ||
728 | writer.WriteAttributeString("type", "string"); | ||
729 | break; | ||
730 | case ColumnType.Preserved: | ||
731 | writer.WriteAttributeString("type", "preserved"); | ||
732 | break; | ||
733 | } | ||
734 | |||
735 | writer.WriteAttributeString("length", this.length.ToString(CultureInfo.InvariantCulture.NumberFormat)); | ||
736 | |||
737 | if (this.primaryKey) | ||
738 | { | ||
739 | writer.WriteAttributeString("primaryKey", "yes"); | ||
740 | } | ||
741 | |||
742 | if (this.nullable) | ||
743 | { | ||
744 | writer.WriteAttributeString("nullable", "yes"); | ||
745 | } | ||
746 | |||
747 | if (this.localizable) | ||
748 | { | ||
749 | writer.WriteAttributeString("localizable", "yes"); | ||
750 | } | ||
751 | |||
752 | if (this.added) | ||
753 | { | ||
754 | writer.WriteAttributeString("added", "yes"); | ||
755 | } | ||
756 | |||
757 | switch (this.modularize) | ||
758 | { | ||
759 | case ColumnModularizeType.Column: | ||
760 | writer.WriteAttributeString("modularize", "column"); | ||
761 | break; | ||
762 | case ColumnModularizeType.CompanionFile: | ||
763 | writer.WriteAttributeString("modularize", "companionFile"); | ||
764 | break; | ||
765 | case ColumnModularizeType.Condition: | ||
766 | writer.WriteAttributeString("modularize", "condition"); | ||
767 | break; | ||
768 | case ColumnModularizeType.ControlEventArgument: | ||
769 | writer.WriteAttributeString("modularize", "controlEventArgument"); | ||
770 | break; | ||
771 | case ColumnModularizeType.ControlText: | ||
772 | writer.WriteAttributeString("modularize", "controlText"); | ||
773 | break; | ||
774 | case ColumnModularizeType.Icon: | ||
775 | writer.WriteAttributeString("modularize", "icon"); | ||
776 | break; | ||
777 | case ColumnModularizeType.None: | ||
778 | // this is the default value | ||
779 | break; | ||
780 | case ColumnModularizeType.Property: | ||
781 | writer.WriteAttributeString("modularize", "property"); | ||
782 | break; | ||
783 | case ColumnModularizeType.SemicolonDelimited: | ||
784 | writer.WriteAttributeString("modularize", "semicolonDelimited"); | ||
785 | break; | ||
786 | } | ||
787 | |||
788 | if (this.minValueSet) | ||
789 | { | ||
790 | writer.WriteAttributeString("minValue", this.minValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); | ||
791 | } | ||
792 | |||
793 | if (this.maxValueSet) | ||
794 | { | ||
795 | writer.WriteAttributeString("maxValue", this.maxValue.ToString(CultureInfo.InvariantCulture.NumberFormat)); | ||
796 | } | ||
797 | |||
798 | if (!String.IsNullOrEmpty(this.keyTable)) | ||
799 | { | ||
800 | writer.WriteAttributeString("keyTable", this.keyTable); | ||
801 | } | ||
802 | |||
803 | if (this.keyColumnSet) | ||
804 | { | ||
805 | writer.WriteAttributeString("keyColumn", this.keyColumn.ToString(CultureInfo.InvariantCulture.NumberFormat)); | ||
806 | } | ||
807 | |||
808 | switch (this.category) | ||
809 | { | ||
810 | case ColumnCategory.AnyPath: | ||
811 | writer.WriteAttributeString("category", "anyPath"); | ||
812 | break; | ||
813 | case ColumnCategory.Binary: | ||
814 | writer.WriteAttributeString("category", "binary"); | ||
815 | break; | ||
816 | case ColumnCategory.Cabinet: | ||
817 | writer.WriteAttributeString("category", "cabinet"); | ||
818 | break; | ||
819 | case ColumnCategory.Condition: | ||
820 | writer.WriteAttributeString("category", "condition"); | ||
821 | break; | ||
822 | case ColumnCategory.CustomSource: | ||
823 | writer.WriteAttributeString("category", "customSource"); | ||
824 | break; | ||
825 | case ColumnCategory.DefaultDir: | ||
826 | writer.WriteAttributeString("category", "defaultDir"); | ||
827 | break; | ||
828 | case ColumnCategory.DoubleInteger: | ||
829 | writer.WriteAttributeString("category", "doubleInteger"); | ||
830 | break; | ||
831 | case ColumnCategory.Filename: | ||
832 | writer.WriteAttributeString("category", "filename"); | ||
833 | break; | ||
834 | case ColumnCategory.Formatted: | ||
835 | writer.WriteAttributeString("category", "formatted"); | ||
836 | break; | ||
837 | case ColumnCategory.FormattedSDDLText: | ||
838 | writer.WriteAttributeString("category", "formattedSddl"); | ||
839 | break; | ||
840 | case ColumnCategory.Guid: | ||
841 | writer.WriteAttributeString("category", "guid"); | ||
842 | break; | ||
843 | case ColumnCategory.Identifier: | ||
844 | writer.WriteAttributeString("category", "identifier"); | ||
845 | break; | ||
846 | case ColumnCategory.Integer: | ||
847 | writer.WriteAttributeString("category", "integer"); | ||
848 | break; | ||
849 | case ColumnCategory.Language: | ||
850 | writer.WriteAttributeString("category", "language"); | ||
851 | break; | ||
852 | case ColumnCategory.LowerCase: | ||
853 | writer.WriteAttributeString("category", "lowerCase"); | ||
854 | break; | ||
855 | case ColumnCategory.Path: | ||
856 | writer.WriteAttributeString("category", "path"); | ||
857 | break; | ||
858 | case ColumnCategory.Paths: | ||
859 | writer.WriteAttributeString("category", "paths"); | ||
860 | break; | ||
861 | case ColumnCategory.Property: | ||
862 | writer.WriteAttributeString("category", "property"); | ||
863 | break; | ||
864 | case ColumnCategory.RegPath: | ||
865 | writer.WriteAttributeString("category", "regPath"); | ||
866 | break; | ||
867 | case ColumnCategory.Shortcut: | ||
868 | writer.WriteAttributeString("category", "shortcut"); | ||
869 | break; | ||
870 | case ColumnCategory.Template: | ||
871 | writer.WriteAttributeString("category", "template"); | ||
872 | break; | ||
873 | case ColumnCategory.Text: | ||
874 | writer.WriteAttributeString("category", "text"); | ||
875 | break; | ||
876 | case ColumnCategory.TimeDate: | ||
877 | writer.WriteAttributeString("category", "timeDate"); | ||
878 | break; | ||
879 | case ColumnCategory.UpperCase: | ||
880 | writer.WriteAttributeString("category", "upperCase"); | ||
881 | break; | ||
882 | case ColumnCategory.Version: | ||
883 | writer.WriteAttributeString("category", "version"); | ||
884 | break; | ||
885 | case ColumnCategory.WildCardFilename: | ||
886 | writer.WriteAttributeString("category", "wildCardFilename"); | ||
887 | break; | ||
888 | } | ||
889 | |||
890 | if (!String.IsNullOrEmpty(this.possibilities)) | ||
891 | { | ||
892 | writer.WriteAttributeString("set", this.possibilities); | ||
893 | } | ||
894 | |||
895 | if (!String.IsNullOrEmpty(this.description)) | ||
896 | { | ||
897 | writer.WriteAttributeString("description", this.description); | ||
898 | } | ||
899 | |||
900 | if (this.escapeIdtCharacters) | ||
901 | { | ||
902 | writer.WriteAttributeString("escapeIdtCharacters", "yes"); | ||
903 | } | ||
904 | |||
905 | if (this.useCData) | ||
906 | { | ||
907 | writer.WriteAttributeString("useCData", "yes"); | ||
908 | } | ||
909 | |||
910 | writer.WriteEndElement(); | ||
911 | } | ||
912 | |||
913 | /// <summary> | ||
914 | /// Validate a value for this column. | ||
915 | /// </summary> | ||
916 | /// <param name="value">The value to validate.</param> | ||
917 | /// <returns>Validated value.</returns> | ||
918 | internal object ValidateValue(object value) | ||
919 | { | ||
920 | if (null == value) | ||
921 | { | ||
922 | if (!this.nullable) | ||
923 | { | ||
924 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with a null value because this is a required field.", this.name)); | ||
925 | } | ||
926 | } | ||
927 | else // check numerical values against their specified minimum and maximum values. | ||
928 | { | ||
929 | if (ColumnType.Number == this.type && !this.IsLocalizable) | ||
930 | { | ||
931 | // For now all enums in the tables can be represented by integers. This if statement would need to | ||
932 | // be enhanced if that ever changes. | ||
933 | if (value is int || value.GetType().IsEnum) | ||
934 | { | ||
935 | int intValue = (int)value; | ||
936 | |||
937 | // validate the value against the minimum allowed value | ||
938 | if (this.minValueSet && this.minValue > intValue) | ||
939 | { | ||
940 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", this.name, intValue, this.minValue)); | ||
941 | } | ||
942 | |||
943 | // validate the value against the maximum allowed value | ||
944 | if (this.maxValueSet && this.maxValue < intValue) | ||
945 | { | ||
946 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", this.name, intValue, this.maxValue)); | ||
947 | } | ||
948 | |||
949 | return intValue; | ||
950 | } | ||
951 | else if (value is long) | ||
952 | { | ||
953 | long longValue = (long)value; | ||
954 | |||
955 | // validate the value against the minimum allowed value | ||
956 | if (this.minValueSet && this.minValue > longValue) | ||
957 | { | ||
958 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is less than the minimum allowed value for this column, {2}.", this.name, longValue, this.minValue)); | ||
959 | } | ||
960 | |||
961 | // validate the value against the maximum allowed value | ||
962 | if (this.maxValueSet && this.maxValue < longValue) | ||
963 | { | ||
964 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set column '{0}' with value {1} because it is greater than the maximum allowed value for this column, {2}.", this.name, longValue, this.maxValue)); | ||
965 | } | ||
966 | |||
967 | return longValue; | ||
968 | } | ||
969 | else | ||
970 | { | ||
971 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set number column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); | ||
972 | } | ||
973 | } | ||
974 | else | ||
975 | { | ||
976 | if (!(value is string)) | ||
977 | { | ||
978 | throw new InvalidOperationException(String.Format(CultureInfo.InvariantCulture, "Cannot set string column '{0}' with a value of type '{1}'.", this.name, value.GetType().ToString())); | ||
979 | } | ||
980 | } | ||
981 | } | ||
982 | |||
983 | return value; | ||
984 | } | ||
985 | |||
986 | /// <summary> | ||
987 | /// Compare this column definition to another column definition. | ||
988 | /// </summary> | ||
989 | /// <remarks> | ||
990 | /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. | ||
991 | /// </remarks> | ||
992 | /// <param name="other">The <see cref="ColumnDefinition"/> to compare with this one.</param> | ||
993 | /// <returns>0 if the columns' core propeties are the same; otherwise, non-0.</returns> | ||
994 | public int CompareTo(ColumnDefinition other) | ||
995 | { | ||
996 | // by definition, this object is greater than null | ||
997 | if (null == other) | ||
998 | { | ||
999 | return 1; | ||
1000 | } | ||
1001 | |||
1002 | // compare column names | ||
1003 | int ret = String.Compare(this.Name, other.Name, StringComparison.Ordinal); | ||
1004 | |||
1005 | // compare column types | ||
1006 | if (0 == ret) | ||
1007 | { | ||
1008 | ret = this.Type == other.Type ? 0 : -1; | ||
1009 | |||
1010 | // compare column lengths | ||
1011 | if (0 == ret) | ||
1012 | { | ||
1013 | ret = this.Length == other.Length ? 0 : -1; | ||
1014 | |||
1015 | // compare whether both are primary keys | ||
1016 | if (0 == ret) | ||
1017 | { | ||
1018 | ret = this.PrimaryKey == other.PrimaryKey ? 0 : -1; | ||
1019 | |||
1020 | // compare nullability | ||
1021 | if (0 == ret) | ||
1022 | { | ||
1023 | ret = this.Nullable == other.Nullable ? 0 : -1; | ||
1024 | } | ||
1025 | } | ||
1026 | } | ||
1027 | } | ||
1028 | |||
1029 | return ret; | ||
1030 | } | ||
1031 | } | ||
1032 | } | ||
diff --git a/src/WixToolset.Data/Common.cs b/src/WixToolset.Data/Common.cs index 8d6ef7b4..f75ad33e 100644 --- a/src/WixToolset.Data/Common.cs +++ b/src/WixToolset.Data/Common.cs | |||
@@ -11,14 +11,12 @@ namespace WixToolset.Data | |||
11 | 11 | ||
12 | internal static class Common | 12 | internal static class Common |
13 | { | 13 | { |
14 | public const int IntegerNotSet = int.MinValue; | 14 | public const int IntegerNotSet = Int32.MinValue; |
15 | 15 | ||
16 | internal static readonly XNamespace W3SchemaPrefix = "http://www.w3.org/"; | 16 | internal static readonly XNamespace W3SchemaPrefix = "http://www.w3.org/"; |
17 | 17 | ||
18 | internal static readonly string[] ReservedFileNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" }; | 18 | internal static readonly string[] ReservedFileNames = { "CON", "PRN", "AUX", "NUL", "COM1", "COM2", "COM3", "COM4", "COM5", "COM6", "COM7", "COM8", "COM9", "LPT1", "LPT2", "LPT3", "LPT4", "LPT5", "LPT6", "LPT7", "LPT8", "LPT9" }; |
19 | 19 | ||
20 | private static readonly Regex LegalIdentifierCharacters = new Regex(@"^[_A-Za-z][0-9A-Za-z_\.]*$", RegexOptions.Compiled); | ||
21 | |||
22 | internal static string GetFileHash(FileInfo fileInfo) | 20 | internal static string GetFileHash(FileInfo fileInfo) |
23 | { | 21 | { |
24 | byte[] hashBytes; | 22 | byte[] hashBytes; |
@@ -38,18 +36,5 @@ namespace WixToolset.Data | |||
38 | 36 | ||
39 | return sb.ToString(); | 37 | return sb.ToString(); |
40 | } | 38 | } |
41 | |||
42 | public static bool IsIdentifier(string value) | ||
43 | { | ||
44 | if (!String.IsNullOrEmpty(value)) | ||
45 | { | ||
46 | if (LegalIdentifierCharacters.IsMatch(value)) | ||
47 | { | ||
48 | return true; | ||
49 | } | ||
50 | } | ||
51 | |||
52 | return false; | ||
53 | } | ||
54 | } | 39 | } |
55 | } | 40 | } |
diff --git a/src/WixToolset.Data/CompressionLevel.cs b/src/WixToolset.Data/CompressionLevel.cs index 13242051..c98eb9e1 100644 --- a/src/WixToolset.Data/CompressionLevel.cs +++ b/src/WixToolset.Data/CompressionLevel.cs | |||
@@ -1,8 +1,7 @@ | |||
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. | 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 | 2 | ||
3 | namespace WixToolset.Data | 3 | namespace WixToolset.Data |
4 | { | 4 | { |
5 | |||
6 | /// <summary> | 5 | /// <summary> |
7 | /// Compression level to use when creating cabinet. | 6 | /// Compression level to use when creating cabinet. |
8 | /// </summary> | 7 | /// </summary> |
@@ -23,4 +22,4 @@ namespace WixToolset.Data | |||
23 | /// <summary>Use ms-zip compression.</summary> | 22 | /// <summary>Use ms-zip compression.</summary> |
24 | Mszip | 23 | Mszip |
25 | } | 24 | } |
26 | } | 25 | } \ No newline at end of file |
diff --git a/src/WixToolset.Data/Data/actions.xml b/src/WixToolset.Data/Data/actions.xml deleted file mode 100644 index f65b792d..00000000 --- a/src/WixToolset.Data/Data/actions.xml +++ /dev/null | |||
@@ -1,76 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- 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. --> | ||
3 | |||
4 | |||
5 | <actions xmlns="http://wixtoolset.org/schemas/v4/wi/actions"> | ||
6 | <action name="InstallInitialize" sequence="1500" AdminExecuteSequence="yes" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
7 | <action name="InstallExecute" condition="NOT Installed" sequence="6500" InstallExecuteSequence="yes" /> | ||
8 | <action name="InstallExecuteAgain" condition="NOT Installed" sequence="6550" InstallExecuteSequence="yes" /> | ||
9 | <action name="InstallFinalize" sequence="6600" AdminExecuteSequence="yes" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
10 | <action name="InstallFiles" sequence="4000" AdminExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
11 | <action name="InstallAdminPackage" sequence="3900" AdminExecuteSequence="yes" /> | ||
12 | <action name="FileCost" sequence="900" AdminExecuteSequence="yes" AdminUISequence="yes" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
13 | <action name="CostInitialize" sequence="800" AdminExecuteSequence="yes" AdminUISequence="yes" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
14 | <action name="CostFinalize" sequence="1000" AdminExecuteSequence="yes" AdminUISequence="yes" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
15 | <action name="InstallValidate" sequence="1400" AdminExecuteSequence="yes" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
16 | <action name="ExecuteAction" sequence="1300" AdminUISequence="yes" InstallUISequence="yes" /> | ||
17 | <action name="CreateShortcuts" sequence="4500" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
18 | <action name="MsiPublishAssemblies" sequence="6250" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
19 | <action name="PublishComponents" sequence="6200" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
20 | <action name="PublishFeatures" sequence="6300" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
21 | <action name="PublishProduct" sequence="6400" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
22 | <action name="RegisterClassInfo" sequence="4600" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
23 | <action name="RegisterExtensionInfo" sequence="4700" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
24 | <action name="RegisterMIMEInfo" sequence="4900" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
25 | <action name="RegisterProgIdInfo" sequence="4800" AdvtExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
26 | <action name="AllocateRegistrySpace" condition="NOT Installed" sequence="1550" InstallExecuteSequence="yes" /> | ||
27 | <action name="AppSearch" sequence="50" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
28 | <action name="BindImage" sequence="4300" InstallExecuteSequence="yes" /> | ||
29 | <action name="CCPSearch" condition="NOT Installed" sequence="500" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
30 | <action name="CreateFolders" sequence="3700" InstallExecuteSequence="yes" /> | ||
31 | <action name="DeleteServices" condition="VersionNT" sequence="2000" InstallExecuteSequence="yes" /> | ||
32 | <action name="DuplicateFiles" sequence="4210" InstallExecuteSequence="yes" /> | ||
33 | <action name="FindRelatedProducts" sequence="25" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
34 | <action name="InstallODBC" sequence="5400" InstallExecuteSequence="yes" /> | ||
35 | <action name="InstallServices" condition="VersionNT" sequence="5800" InstallExecuteSequence="yes" /> | ||
36 | <action name="MsiConfigureServices" condition="VersionNT>=600" sequence="5850" InstallExecuteSequence="yes" /> | ||
37 | <action name="IsolateComponents" sequence="950" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
38 | <action name="LaunchConditions" sequence="100" AdminExecuteSequence="yes" AdminUISequence="yes" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
39 | <action name="MigrateFeatureStates" sequence="1200" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
40 | <action name="MoveFiles" sequence="3800" InstallExecuteSequence="yes" /> | ||
41 | <action name="PatchFiles" sequence="4090" AdminExecuteSequence="yes" InstallExecuteSequence="yes" /> | ||
42 | <action name="ProcessComponents" sequence="1600" InstallExecuteSequence="yes" /> | ||
43 | <action name="RegisterComPlus" sequence="5700" InstallExecuteSequence="yes" /> | ||
44 | <action name="RegisterFonts" sequence="5300" InstallExecuteSequence="yes" /> | ||
45 | <action name="RegisterProduct" sequence="6100" InstallExecuteSequence="yes" /> | ||
46 | <action name="RegisterTypeLibraries" sequence="5500" InstallExecuteSequence="yes" /> | ||
47 | <action name="RegisterUser" sequence="6000" InstallExecuteSequence="yes" /> | ||
48 | <action name="RemoveDuplicateFiles" sequence="3400" InstallExecuteSequence="yes" /> | ||
49 | <action name="RemoveEnvironmentStrings" sequence="3300" InstallExecuteSequence="yes" /> | ||
50 | <action name="RemoveFiles" sequence="3500" InstallExecuteSequence="yes" /> | ||
51 | <action name="RemoveFolders" sequence="3600" InstallExecuteSequence="yes" /> | ||
52 | <action name="RemoveIniValues" sequence="3100" InstallExecuteSequence="yes" /> | ||
53 | <action name="RemoveODBC" sequence="2400" InstallExecuteSequence="yes" /> | ||
54 | <action name="RemoveRegistryValues" sequence="2600" InstallExecuteSequence="yes" /> | ||
55 | <action name="RemoveShortcuts" sequence="3200" InstallExecuteSequence="yes" /> | ||
56 | <action name="RMCCPSearch" condition="NOT Installed" sequence="600" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
57 | <action name="SelfRegModules" sequence="5600" InstallExecuteSequence="yes" /> | ||
58 | <action name="SelfUnregModules" sequence="2200" InstallExecuteSequence="yes" /> | ||
59 | <action name="SetODBCFolders" sequence="1100" InstallExecuteSequence="yes" /> | ||
60 | <action name="StartServices" condition="VersionNT" sequence="5900" InstallExecuteSequence="yes" /> | ||
61 | <action name="StopServices" condition="VersionNT" sequence="1900" InstallExecuteSequence="yes" /> | ||
62 | <action name="MsiUnpublishAssemblies" sequence="1750" InstallExecuteSequence="yes" /> | ||
63 | <action name="UnpublishComponents" sequence="1700" InstallExecuteSequence="yes" /> | ||
64 | <action name="UnpublishFeatures" sequence="1800" InstallExecuteSequence="yes" /> | ||
65 | <action name="UnregisterClassInfo" sequence="2700" InstallExecuteSequence="yes" /> | ||
66 | <action name="UnregisterComPlus" sequence="2100" InstallExecuteSequence="yes" /> | ||
67 | <action name="UnregisterExtensionInfo" sequence="2800" InstallExecuteSequence="yes" /> | ||
68 | <action name="UnregisterFonts" sequence="2500" InstallExecuteSequence="yes" /> | ||
69 | <action name="UnregisterMIMEInfo" sequence="3000" InstallExecuteSequence="yes" /> | ||
70 | <action name="UnregisterProgIdInfo" sequence="2900" InstallExecuteSequence="yes" /> | ||
71 | <action name="UnregisterTypeLibraries" sequence="2300" InstallExecuteSequence="yes" /> | ||
72 | <action name="ValidateProductID" sequence="700" InstallExecuteSequence="yes" InstallUISequence="yes" /> | ||
73 | <action name="WriteEnvironmentStrings" sequence="5200" InstallExecuteSequence="yes" /> | ||
74 | <action name="WriteIniValues" sequence="5100" InstallExecuteSequence="yes" /> | ||
75 | <action name="WriteRegistryValues" sequence="5000" InstallExecuteSequence="yes" /> | ||
76 | </actions> | ||
diff --git a/src/WixToolset.Data/Data/tables.xml b/src/WixToolset.Data/Data/tables.xml deleted file mode 100644 index 280d87a8..00000000 --- a/src/WixToolset.Data/Data/tables.xml +++ /dev/null | |||
@@ -1,1962 +0,0 @@ | |||
1 | <?xml version="1.0" encoding="utf-8"?> | ||
2 | <!-- 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. --> | ||
3 | |||
4 | |||
5 | <tableDefinitions xmlns="http://wixtoolset.org/schemas/v4/wi/tables"> | ||
6 | <tableDefinition name="ActionText"> | ||
7 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" modularize="column" | ||
8 | category="identifier" description="Name of action to be described."/> | ||
9 | <columnDefinition name="Description" type="localized" length="0" nullable="yes" escapeIdtCharacters="yes" | ||
10 | category="text" description="Localized description displayed in progress dialog and log when action is executing."/> | ||
11 | <columnDefinition name="Template" type="localized" length="0" nullable="yes" escapeIdtCharacters="yes" modularize="property" | ||
12 | category="template" description="Optional localized format template used to format action data records for display during action execution."/> | ||
13 | </tableDefinition> | ||
14 | <tableDefinition name="AdminExecuteSequence"> | ||
15 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" | ||
16 | category="identifier" description="Name of action to invoke, either in the engine or the handler DLL."/> | ||
17 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
18 | category="condition" description="Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData."/> | ||
19 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
20 | minValue="-4" maxValue="32767" description="Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."/> | ||
21 | </tableDefinition> | ||
22 | <tableDefinition name="Condition"> | ||
23 | <columnDefinition name="Feature_" type="string" length="38" primaryKey="yes" | ||
24 | keyTable="Feature" keyColumn="1" category="identifier" description="Reference to a Feature entry in Feature table."/> | ||
25 | <columnDefinition name="Level" type="number" length="2" primaryKey="yes" | ||
26 | minValue="0" maxValue="32767" description="New selection Level to set in Feature table if Condition evaluates to TRUE."/> | ||
27 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
28 | category="condition" description="Expression evaluated to determine if Level in the Feature table is to change."/> | ||
29 | </tableDefinition> | ||
30 | <tableDefinition name="AdminUISequence"> | ||
31 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" | ||
32 | category="identifier" description="Name of action to invoke, either in the engine or the handler DLL."/> | ||
33 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
34 | category="condition" description="Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData."/> | ||
35 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
36 | minValue="-4" maxValue="32767" description="Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."/> | ||
37 | </tableDefinition> | ||
38 | <tableDefinition name="AdvtExecuteSequence"> | ||
39 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" | ||
40 | category="identifier" description="Name of action to invoke, either in the engine or the handler DLL."/> | ||
41 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
42 | category="condition" description="Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData."/> | ||
43 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
44 | minValue="-4" maxValue="32767" description="Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."/> | ||
45 | </tableDefinition> | ||
46 | <tableDefinition name="AdvtUISequence"> | ||
47 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" | ||
48 | category="identifier" description="Name of action to invoke, either in the engine or the handler DLL."/> | ||
49 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
50 | category="condition" description="Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData."/> | ||
51 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
52 | minValue="-4" maxValue="32767" description="Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."/> | ||
53 | </tableDefinition> | ||
54 | <tableDefinition name="AppId" createSymbols="yes"> | ||
55 | <columnDefinition name="AppId" type="string" length="38" primaryKey="yes" | ||
56 | category="guid"/> | ||
57 | <columnDefinition name="RemoteServerName" type="string" length="255" nullable="yes" modularize="property" | ||
58 | category="formatted"/> | ||
59 | <columnDefinition name="LocalService" type="string" length="255" nullable="yes" | ||
60 | category="text"/> | ||
61 | <columnDefinition name="ServiceParameters" type="string" length="255" nullable="yes" | ||
62 | category="text"/> | ||
63 | <columnDefinition name="DllSurrogate" type="string" length="255" nullable="yes" | ||
64 | category="text"/> | ||
65 | <columnDefinition name="ActivateAtStorage" type="number" length="2" nullable="yes" | ||
66 | minValue="0" maxValue="1"/> | ||
67 | <columnDefinition name="RunAsInteractiveUser" type="number" length="2" nullable="yes" | ||
68 | minValue="0" maxValue="1"/> | ||
69 | </tableDefinition> | ||
70 | <tableDefinition name="AppSearch"> | ||
71 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
72 | category="identifier" description="The property associated with a Signature"/> | ||
73 | <columnDefinition name="Signature_" type="string" length="72" primaryKey="yes" modularize="column" | ||
74 | keyTable="Signature;RegLocator;IniLocator;DrLocator;CompLocator" keyColumn="1" category="identifier" description="The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."/> | ||
75 | </tableDefinition> | ||
76 | <tableDefinition name="Property" createSymbols="yes"> | ||
77 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
78 | category="identifier" description="Name of property, uppercase if settable by launcher or loader."/> | ||
79 | <columnDefinition name="Value" type="localized" length="0" escapeIdtCharacters="yes" | ||
80 | category="text" description="String value for property. Never null or empty."/> | ||
81 | </tableDefinition> | ||
82 | <tableDefinition name="BBControl" createSymbols="yes"> | ||
83 | <columnDefinition name="Billboard_" type="string" length="50" primaryKey="yes" modularize="column" | ||
84 | keyTable="Billboard" keyColumn="1" category="identifier" description="External key to the Billboard table, name of the billboard."/> | ||
85 | <columnDefinition name="BBControl" type="string" length="50" primaryKey="yes" | ||
86 | category="identifier" description="Name of the control. This name must be unique within a billboard, but can repeat on different billboard."/> | ||
87 | <columnDefinition name="Type" type="string" length="50" | ||
88 | category="identifier" description="The type of the control."/> | ||
89 | <columnDefinition name="X" type="number" length="2" localizable="yes" | ||
90 | minValue="0" maxValue="32767" description="Horizontal coordinate of the upper left corner of the bounding rectangle of the control."/> | ||
91 | <columnDefinition name="Y" type="number" length="2" localizable="yes" | ||
92 | minValue="0" maxValue="32767" description="Vertical coordinate of the upper left corner of the bounding rectangle of the control."/> | ||
93 | <columnDefinition name="Width" type="number" length="2" localizable="yes" | ||
94 | minValue="0" maxValue="32767" description="Width of the bounding rectangle of the control."/> | ||
95 | <columnDefinition name="Height" type="number" length="2" localizable="yes" | ||
96 | minValue="0" maxValue="32767" description="Height of the bounding rectangle of the control."/> | ||
97 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" | ||
98 | minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to this control."/> | ||
99 | <columnDefinition name="Text" type="localized" length="50" nullable="yes" escapeIdtCharacters="yes" | ||
100 | category="text" description="A string used to set the initial text contained within a control (if appropriate)."/> | ||
101 | </tableDefinition> | ||
102 | <tableDefinition name="Billboard" createSymbols="yes"> | ||
103 | <columnDefinition name="Billboard" type="string" length="50" primaryKey="yes" modularize="column" | ||
104 | category="identifier" description="Name of the billboard."/> | ||
105 | <columnDefinition name="Feature_" type="string" length="38" | ||
106 | keyTable="Feature" keyColumn="1" category="identifier" description="An external key to the Feature Table. The billboard is shown only if this feature is being installed."/> | ||
107 | <columnDefinition name="Action" type="string" length="50" nullable="yes" | ||
108 | category="identifier" description="The name of an action. The billboard is displayed during the progress messages received from this action."/> | ||
109 | <columnDefinition name="Ordering" type="number" length="2" nullable="yes" | ||
110 | minValue="0" maxValue="32767" description="A positive integer. If there is more than one billboard corresponding to an action they will be shown in the order defined by this column."/> | ||
111 | </tableDefinition> | ||
112 | <tableDefinition name="Feature" createSymbols="yes"> | ||
113 | <columnDefinition name="Feature" type="string" length="38" primaryKey="yes" | ||
114 | category="identifier" description="Primary key used to identify a particular feature record."/> | ||
115 | <columnDefinition name="Feature_Parent" type="string" length="38" nullable="yes" | ||
116 | keyTable="Feature" keyColumn="1" category="identifier" description="Optional key of a parent record in the same table. If the parent is not selected, then the record will not be installed. Null indicates a root item."/> | ||
117 | <columnDefinition name="Title" type="localized" length="64" nullable="yes" escapeIdtCharacters="yes" | ||
118 | category="text" description="Short text identifying a visible feature item."/> | ||
119 | <columnDefinition name="Description" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" | ||
120 | category="text" description="Longer descriptive text describing a visible feature item."/> | ||
121 | <columnDefinition name="Display" type="number" length="2" nullable="yes" | ||
122 | minValue="0" maxValue="32767" description="Numeric sort order, used to force a specific display ordering."/> | ||
123 | <columnDefinition name="Level" type="number" length="2" | ||
124 | minValue="0" maxValue="32767" description="The install level at which record will be initially selected. An install level of 0 will disable an item and prevent its display."/> | ||
125 | <columnDefinition name="Directory_" type="string" length="72" nullable="yes" modularize="column" | ||
126 | keyTable="Directory" keyColumn="1" category="upperCase" description="The name of the Directory that can be configured by the UI. A non-null value will enable the browse button."/> | ||
127 | <columnDefinition name="Attributes" type="number" length="2" | ||
128 | set="0;1;2;4;5;6;8;9;10;16;17;18;20;21;22;24;25;26;32;33;34;36;37;38;48;49;50;52;53;54" description="Feature attributes"/> | ||
129 | </tableDefinition> | ||
130 | <tableDefinition name="Binary" createSymbols="yes"> | ||
131 | <columnDefinition name="Name" type="string" length="72" primaryKey="yes" modularize="column" | ||
132 | category="identifier" description="Unique key identifying the binary data."/> | ||
133 | <columnDefinition name="Data" type="object" length="0" | ||
134 | category="binary" description="The unformatted binary data."/> | ||
135 | </tableDefinition> | ||
136 | <tableDefinition name="BindImage"> | ||
137 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
138 | keyTable="File" keyColumn="1" category="identifier" description="The index into the File table. This must be an executable file."/> | ||
139 | <columnDefinition name="Path" type="string" length="255" nullable="yes" modularize="property" | ||
140 | category="paths" description="A list of ; delimited paths that represent the paths to be searched for the import DLLS. The list is usually a list of properties each enclosed within square brackets [] ."/> | ||
141 | </tableDefinition> | ||
142 | <tableDefinition name="File" createSymbols="yes"> | ||
143 | <columnDefinition name="File" type="string" length="72" primaryKey="yes" modularize="column" | ||
144 | category="identifier" description="Primary key, non-localized token, must match identifier in cabinet. For uncompressed files, this field is ignored."/> | ||
145 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
146 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the file."/> | ||
147 | <columnDefinition name="FileName" type="localized" length="255" | ||
148 | category="filename" description="File name used for installation, may be localized. This may contain a "short name|long name" pair."/> | ||
149 | <columnDefinition name="FileSize" type="number" length="4" | ||
150 | minValue="0" maxValue="2147483647" description="Size of file in bytes (long integer)."/> | ||
151 | <columnDefinition name="Version" type="string" length="72" nullable="yes" modularize="companionFile" | ||
152 | keyTable="File" keyColumn="1" category="version" description="Version string for versioned files; Blank for unversioned files."/> | ||
153 | <columnDefinition name="Language" type="string" length="20" nullable="yes" | ||
154 | category="language" description="List of decimal language Ids, comma-separated if more than one."/> | ||
155 | <columnDefinition name="Attributes" type="number" length="2" nullable="yes" | ||
156 | minValue="0" maxValue="32767" description="Integer containing bit flags representing file attributes (with the decimal value of each bit position in parentheses)"/> | ||
157 | <columnDefinition name="Sequence" type="number" length="4" | ||
158 | minValue="1" maxValue="2147483647" description="Sequence with respect to the media images; order must track cabinet order."/> | ||
159 | </tableDefinition> | ||
160 | <tableDefinition name="CCPSearch"> | ||
161 | <columnDefinition name="Signature_" type="string" length="72" primaryKey="yes" | ||
162 | keyTable="Signature;RegLocator;IniLocator;DrLocator;CompLocator" keyColumn="1" category="identifier" description="The Signature_ represents a unique file signature and is also the foreign key in the Signature, RegLocator, IniLocator, CompLocator and the DrLocator tables."/> | ||
163 | </tableDefinition> | ||
164 | <tableDefinition name="CheckBox" createSymbols="yes"> | ||
165 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
166 | category="identifier" description="A named property to be tied to the item."/> | ||
167 | <columnDefinition name="Value" type="string" length="64" nullable="yes" modularize="property" | ||
168 | category="formatted" description="The value string associated with the item."/> | ||
169 | </tableDefinition> | ||
170 | <tableDefinition name="Class" createSymbols="yes"> | ||
171 | <columnDefinition name="CLSID" type="string" length="38" primaryKey="yes" | ||
172 | category="guid" description="The CLSID of an OLE factory."/> | ||
173 | <columnDefinition name="Context" type="string" length="32" primaryKey="yes" | ||
174 | category="identifier" description="The numeric server context for this server. CLSCTX_xxxx"/> | ||
175 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
176 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent."/> | ||
177 | <columnDefinition name="ProgId_Default" type="string" length="255" nullable="yes" | ||
178 | keyTable="ProgId" keyColumn="1" category="text" description="Optional ProgId associated with this CLSID."/> | ||
179 | <columnDefinition name="Description" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" | ||
180 | category="text" description="Localized description for the Class."/> | ||
181 | <columnDefinition name="AppId_" type="string" length="38" nullable="yes" | ||
182 | keyTable="AppId" keyColumn="1" category="guid" description="Optional AppID containing DCOM information for associated application (string GUID)."/> | ||
183 | <columnDefinition name="FileTypeMask" type="string" length="255" nullable="yes" | ||
184 | category="text" description="Optional string containing information for the HKCRthis CLSID) key. If multiple patterns exist, they must be delimited by a semicolon, and numeric subkeys will be generated: 0,1,2..."/> | ||
185 | <columnDefinition name="Icon_" type="string" length="72" nullable="yes" modularize="icon" | ||
186 | keyTable="Icon" keyColumn="1" category="identifier" description="Optional foreign key into the Icon Table, specifying the icon file associated with this CLSID. Will be written under the DefaultIcon key."/> | ||
187 | <columnDefinition name="IconIndex" type="number" length="2" nullable="yes" | ||
188 | minValue="-32767" maxValue="32767" description="Optional icon index."/> | ||
189 | <columnDefinition name="DefInprocHandler" type="string" length="32" nullable="yes" | ||
190 | category="filename" set="1;2;3" description="Optional default inproc handler. Only optionally provided if Context=CLSCTX_LOCAL_SERVER. Typically "ole32.dll" or "mapi32.dll""/> | ||
191 | <columnDefinition name="Argument" type="string" length="255" nullable="yes" | ||
192 | category="formatted" description="optional argument for LocalServers."/> | ||
193 | <columnDefinition name="Feature_" type="string" length="38" | ||
194 | keyTable="Feature" keyColumn="1" category="identifier" description="Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."/> | ||
195 | <columnDefinition name="Attributes" type="number" length="2" nullable="yes" | ||
196 | maxValue="32767" description="Class registration attributes."/> | ||
197 | </tableDefinition> | ||
198 | <tableDefinition name="Component" createSymbols="yes"> | ||
199 | <columnDefinition name="Component" type="string" length="72" primaryKey="yes" modularize="column" | ||
200 | category="identifier" description="Primary key used to identify a particular component record."/> | ||
201 | <columnDefinition name="ComponentId" type="string" length="38" nullable="yes" | ||
202 | category="guid" description="A string GUID unique to this component, version, and language."/> | ||
203 | <columnDefinition name="Directory_" type="string" length="72" modularize="column" | ||
204 | keyTable="Directory" keyColumn="1" category="identifier" description="Required key of a Directory table record. This is actually a property name whose value contains the actual path, set either by the AppSearch action or with the default setting obtained from the Directory table."/> | ||
205 | <columnDefinition name="Attributes" type="number" length="2" | ||
206 | description="Remote execution option, one of irsEnum"/> | ||
207 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
208 | category="condition" description="A conditional statement that will disable this component if the specified condition evaluates to the 'True' state. If a component is disabled, it will not be installed, regardless of the 'Action' state associated with the component."/> | ||
209 | <columnDefinition name="KeyPath" type="string" length="72" nullable="yes" modularize="column" | ||
210 | keyTable="File;Registry;ODBCDataSource" keyColumn="1" category="identifier" description="Either the primary key into the File table, Registry table, or ODBCDataSource table. This extract path is stored when the component is installed, and is used to detect the presence of the component and to return the path to it."/> | ||
211 | </tableDefinition> | ||
212 | <tableDefinition name="Icon" createSymbols="yes"> | ||
213 | <columnDefinition name="Name" type="string" length="72" primaryKey="yes" modularize="icon" | ||
214 | category="identifier" description="Primary key. Name of the icon file."/> | ||
215 | <columnDefinition name="Data" type="object" length="0" | ||
216 | category="binary" description="Binary stream. The binary icon data in PE (.DLL or .EXE) or icon (.ICO) format."/> | ||
217 | </tableDefinition> | ||
218 | <tableDefinition name="ProgId"> | ||
219 | <columnDefinition name="ProgId" type="string" length="255" primaryKey="yes" | ||
220 | category="text" description="The Program Identifier. Primary key."/> | ||
221 | <columnDefinition name="ProgId_Parent" type="string" length="255" nullable="yes" | ||
222 | keyTable="ProgId" keyColumn="1" category="text" description="The Parent Program Identifier. If specified, the ProgId column becomes a version independent prog id."/> | ||
223 | <columnDefinition name="Class_" type="string" length="38" nullable="yes" | ||
224 | keyTable="Class" keyColumn="1" category="guid" description="The CLSID of an OLE factory corresponding to the ProgId."/> | ||
225 | <columnDefinition name="Description" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" | ||
226 | category="text" description="Localized description for the Program identifier."/> | ||
227 | <columnDefinition name="Icon_" type="string" length="72" nullable="yes" modularize="icon" | ||
228 | keyTable="Icon" keyColumn="1" category="identifier" description="Optional foreign key into the Icon Table, specifying the icon file associated with this ProgId. Will be written under the DefaultIcon key."/> | ||
229 | <columnDefinition name="IconIndex" type="number" length="2" nullable="yes" | ||
230 | minValue="-32767" maxValue="32767" description="Optional icon index."/> | ||
231 | </tableDefinition> | ||
232 | <tableDefinition name="ComboBox"> | ||
233 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
234 | category="identifier" description="A named property to be tied to this item. All the items tied to the same property become part of the same combobox."/> | ||
235 | <columnDefinition name="Order" type="number" length="2" primaryKey="yes" | ||
236 | minValue="1" maxValue="32767" description="A positive integer used to determine the ordering of the items within one list. The integers do not have to be consecutive."/> | ||
237 | <columnDefinition name="Value" type="string" length="64" modularize="property" localizable="yes" | ||
238 | category="formatted" description="The value string associated with this item. Selecting the line will set the associated property to this value."/> | ||
239 | <columnDefinition name="Text" type="localized" length="64" nullable="yes" modularize="property" escapeIdtCharacters="yes" | ||
240 | category="formatted" description="The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."/> | ||
241 | </tableDefinition> | ||
242 | <tableDefinition name="CompLocator"> | ||
243 | <columnDefinition name="Signature_" type="string" length="72" primaryKey="yes" modularize="column" | ||
244 | category="identifier" description="The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table."/> | ||
245 | <columnDefinition name="ComponentId" type="string" length="38" | ||
246 | category="guid" description="A string GUID unique to this component, version, and language."/> | ||
247 | <columnDefinition name="Type" type="number" length="2" nullable="yes" | ||
248 | minValue="0" maxValue="1" description="A boolean value that determines if the registry value is a filename or a directory location."/> | ||
249 | </tableDefinition> | ||
250 | <tableDefinition name="Complus"> | ||
251 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
252 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the ComPlus component."/> | ||
253 | <columnDefinition name="ExpType" type="number" length="2" nullable="yes" | ||
254 | minValue="0" maxValue="32767" description="ComPlus component attributes."/> | ||
255 | </tableDefinition> | ||
256 | <tableDefinition name="Directory" createSymbols="yes"> | ||
257 | <columnDefinition name="Directory" type="string" length="72" primaryKey="yes" modularize="column" | ||
258 | category="identifier" description="Unique identifier for directory entry, primary key. If a property by this name is defined, it contains the full path to the directory."/> | ||
259 | <columnDefinition name="Directory_Parent" type="string" length="72" nullable="yes" modularize="column" | ||
260 | keyTable="Directory" keyColumn="1" category="identifier" description="Reference to the entry in this table specifying the default parent directory. A record parented to itself or with a Null parent represents a root of the install tree."/> | ||
261 | <columnDefinition name="DefaultDir" type="localized" length="255" | ||
262 | category="defaultDir" description="The default sub-path under parent's path."/> | ||
263 | </tableDefinition> | ||
264 | <tableDefinition name="Control"> | ||
265 | <columnDefinition name="Dialog_" type="string" length="72" primaryKey="yes" modularize="column" | ||
266 | keyTable="Dialog" keyColumn="1" category="identifier" description="External key to the Dialog table, name of the dialog."/> | ||
267 | <columnDefinition name="Control" type="string" length="50" primaryKey="yes" | ||
268 | category="identifier" description="Name of the control. This name must be unique within a dialog, but can repeat on different dialogs. "/> | ||
269 | <columnDefinition name="Type" type="string" length="20" | ||
270 | category="identifier" description="The type of the control."/> | ||
271 | <columnDefinition name="X" type="number" length="2" localizable="yes" | ||
272 | minValue="0" maxValue="32767" description="Horizontal coordinate of the upper left corner of the bounding rectangle of the control."/> | ||
273 | <columnDefinition name="Y" type="number" length="2" localizable="yes" | ||
274 | minValue="0" maxValue="32767" description="Vertical coordinate of the upper left corner of the bounding rectangle of the control."/> | ||
275 | <columnDefinition name="Width" type="number" length="2" localizable="yes" | ||
276 | minValue="0" maxValue="32767" description="Width of the bounding rectangle of the control."/> | ||
277 | <columnDefinition name="Height" type="number" length="2" localizable="yes" | ||
278 | minValue="0" maxValue="32767" description="Height of the bounding rectangle of the control."/> | ||
279 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" | ||
280 | minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to this control."/> | ||
281 | <columnDefinition name="Property" type="string" length="72" nullable="yes" modularize="column" | ||
282 | category="identifier" description="The name of a defined property to be linked to this control. "/> | ||
283 | <columnDefinition name="Text" type="localized" length="0" nullable="yes" modularize="controlText" escapeIdtCharacters="yes" | ||
284 | category="formatted" description="A string used to set the initial text contained within a control (if appropriate)."/> | ||
285 | <columnDefinition name="Control_Next" type="string" length="50" nullable="yes" | ||
286 | keyTable="Control" keyColumn="2" category="identifier" description="The name of an other control on the same dialog. This link defines the tab order of the controls. The links have to form one or more cycles!"/> | ||
287 | <columnDefinition name="Help" type="localized" length="50" nullable="yes" escapeIdtCharacters="yes" | ||
288 | category="text" description="The help strings used with the button. The text is optional. "/> | ||
289 | </tableDefinition> | ||
290 | <tableDefinition name="Dialog" createSymbols="yes"> | ||
291 | <columnDefinition name="Dialog" type="string" length="72" primaryKey="yes" modularize="column" | ||
292 | category="identifier" description="Name of the dialog."/> | ||
293 | <columnDefinition name="HCentering" type="number" length="2" | ||
294 | minValue="0" maxValue="100" description="Horizontal position of the dialog on a 0-100 scale. 0 means left end, 100 means right end of the screen, 50 center."/> | ||
295 | <columnDefinition name="VCentering" type="number" length="2" | ||
296 | minValue="0" maxValue="100" description="Vertical position of the dialog on a 0-100 scale. 0 means top end, 100 means bottom end of the screen, 50 center."/> | ||
297 | <columnDefinition name="Width" type="number" length="2" | ||
298 | minValue="0" maxValue="32767" description="Width of the bounding rectangle of the dialog."/> | ||
299 | <columnDefinition name="Height" type="number" length="2" | ||
300 | minValue="0" maxValue="32767" description="Height of the bounding rectangle of the dialog."/> | ||
301 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" | ||
302 | minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to this dialog."/> | ||
303 | <columnDefinition name="Title" type="localized" length="128" nullable="yes" modularize="property" escapeIdtCharacters="yes" | ||
304 | category="formatted" description="A text string specifying the title to be displayed in the title bar of the dialog's window."/> | ||
305 | <columnDefinition name="Control_First" type="string" length="50" | ||
306 | keyTable="Control" keyColumn="2" category="identifier" description="Defines the control that has the focus when the dialog is created."/> | ||
307 | <columnDefinition name="Control_Default" type="string" length="50" nullable="yes" | ||
308 | keyTable="Control" keyColumn="2" category="identifier" description="Defines the default control. Hitting return is equivalent to pushing this button."/> | ||
309 | <columnDefinition name="Control_Cancel" type="string" length="50" nullable="yes" | ||
310 | keyTable="Control" keyColumn="2" category="identifier" description="Defines the cancel control. Hitting escape or clicking on the close icon on the dialog is equivalent to pushing this button."/> | ||
311 | </tableDefinition> | ||
312 | <tableDefinition name="ControlCondition"> | ||
313 | <columnDefinition name="Dialog_" type="string" length="72" primaryKey="yes" modularize="column" | ||
314 | keyTable="Dialog" keyColumn="1" category="identifier" description="A foreign key to the Dialog table, name of the dialog."/> | ||
315 | <columnDefinition name="Control_" type="string" length="50" primaryKey="yes" | ||
316 | keyTable="Control" keyColumn="2" category="identifier" description="A foreign key to the Control table, name of the control."/> | ||
317 | <columnDefinition name="Action" type="string" length="50" primaryKey="yes" | ||
318 | set="Default;Disable;Enable;Hide;Show" description="The desired action to be taken on the specified control."/> | ||
319 | <columnDefinition name="Condition" type="string" length="255" primaryKey="yes" modularize="condition" localizable="yes" | ||
320 | category="condition" description="A standard conditional statement that specifies under which conditions the action should be triggered."/> | ||
321 | </tableDefinition> | ||
322 | <tableDefinition name="ControlEvent" createSymbols="yes"> | ||
323 | <columnDefinition name="Dialog_" type="string" length="72" primaryKey="yes" modularize="column" | ||
324 | keyTable="Dialog" keyColumn="1" category="identifier" description="A foreign key to the Dialog table, name of the dialog."/> | ||
325 | <columnDefinition name="Control_" type="string" length="50" primaryKey="yes" | ||
326 | keyTable="Control" keyColumn="2" category="identifier" description="A foreign key to the Control table, name of the control"/> | ||
327 | <columnDefinition name="Event" type="string" length="50" primaryKey="yes" modularize="property" | ||
328 | category="formatted" description="An identifier that specifies the type of the event that should take place when the user interacts with control specified by the first two entries."/> | ||
329 | <columnDefinition name="Argument" type="string" length="255" primaryKey="yes" modularize="controlEventArgument" localizable="yes" | ||
330 | category="formatted" description="A value to be used as a modifier when triggering a particular event."/> | ||
331 | <columnDefinition name="Condition" type="string" length="255" primaryKey="yes" nullable="yes" modularize="condition" localizable="yes" | ||
332 | category="condition" description="A standard conditional statement that specifies under which conditions an event should be triggered."/> | ||
333 | <columnDefinition name="Ordering" type="number" length="2" nullable="yes" | ||
334 | minValue="0" maxValue="2147483647" description="An integer used to order several events tied to the same control. Can be left blank."/> | ||
335 | </tableDefinition> | ||
336 | <tableDefinition name="CreateFolder"> | ||
337 | <columnDefinition name="Directory_" type="string" length="72" primaryKey="yes" modularize="column" | ||
338 | keyTable="Directory" keyColumn="1" category="identifier" description="Primary key, could be foreign key into the Directory table."/> | ||
339 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
340 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table."/> | ||
341 | </tableDefinition> | ||
342 | <tableDefinition name="CustomAction" createSymbols="yes"> | ||
343 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" modularize="column" | ||
344 | category="identifier" description="Primary key, name of action, normally appears in sequence table unless private use."/> | ||
345 | <columnDefinition name="Type" type="number" length="2" | ||
346 | minValue="1" maxValue="32767" description="The numeric custom action type, consisting of source location, code type, entry, option flags."/> | ||
347 | <columnDefinition name="Source" type="string" length="72" nullable="yes" modularize="column" | ||
348 | category="customSource" description="The table reference of the source of the code."/> | ||
349 | <columnDefinition name="Target" type="string" length="255" nullable="yes" modularize="property" escapeIdtCharacters="yes" localizable="yes" | ||
350 | category="formatted" description="Excecution parameter, depends on the type of custom action"/> | ||
351 | <columnDefinition name="ExtendedType" type="number" length="4" nullable="yes" minValue="0" maxValue="2147483647" | ||
352 | description="A numeric custom action type that extends code type or option flags of the Type column."/> | ||
353 | </tableDefinition> | ||
354 | <tableDefinition name="DrLocator" createSymbols="yes"> | ||
355 | <columnDefinition name="Signature_" type="string" length="72" primaryKey="yes" modularize="column" | ||
356 | category="identifier" description="The Signature_ represents a unique file signature and is also the foreign key in the Signature table."/> | ||
357 | <columnDefinition name="Parent" type="string" length="72" primaryKey="yes" nullable="yes" modularize="column" | ||
358 | category="identifier" description="The parent file signature. It is also a foreign key in the Signature table. If null and the Path column does not expand to a full path, then all the fixed drives of the user system are searched using the Path."/> | ||
359 | <columnDefinition name="Path" type="string" length="255" primaryKey="yes" nullable="yes" modularize="property" | ||
360 | category="anyPath" description="The path on the user system. This is a either a subpath below the value of the Parent or a full path. The path may contain properties enclosed within [ ] that will be expanded."/> | ||
361 | <columnDefinition name="Depth" type="number" length="2" nullable="yes" | ||
362 | minValue="0" maxValue="32767" description="The depth below the path to which the Signature_ is recursively searched. If absent, the depth is assumed to be 0."/> | ||
363 | </tableDefinition> | ||
364 | <tableDefinition name="DuplicateFile"> | ||
365 | <columnDefinition name="FileKey" type="string" length="72" primaryKey="yes" modularize="column" | ||
366 | category="identifier" description="Primary key used to identify a particular file entry"/> | ||
367 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
368 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the duplicate file."/> | ||
369 | <columnDefinition name="File_" type="string" length="72" modularize="column" | ||
370 | keyTable="File" keyColumn="1" category="identifier" description="Foreign key referencing the source file to be duplicated."/> | ||
371 | <columnDefinition name="DestName" type="localized" length="255" nullable="yes" | ||
372 | category="filename" description="Filename to be given to the duplicate file."/> | ||
373 | <columnDefinition name="DestFolder" type="string" length="72" nullable="yes" modularize="column" | ||
374 | category="identifier" description="Name of a property whose value is assumed to resolve to the full pathname to a destination folder."/> | ||
375 | </tableDefinition> | ||
376 | <tableDefinition name="Environment"> | ||
377 | <columnDefinition name="Environment" type="string" length="72" primaryKey="yes" modularize="column" | ||
378 | category="identifier" description="Unique identifier for the environmental variable setting"/> | ||
379 | <columnDefinition name="Name" type="localized" length="255" | ||
380 | category="text" description="The name of the environmental value."/> | ||
381 | <columnDefinition name="Value" type="localized" length="255" nullable="yes" modularize="property" | ||
382 | category="formatted" description="The value to set in the environmental settings."/> | ||
383 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
384 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table referencing component that controls the installing of the environmental value."/> | ||
385 | </tableDefinition> | ||
386 | <tableDefinition name="Error" createSymbols="yes"> | ||
387 | <columnDefinition name="Error" type="number" length="2" primaryKey="yes" | ||
388 | minValue="0" maxValue="32767" description="Integer error number, obtained from header file IError(...) macros."/> | ||
389 | <columnDefinition name="Message" type="localized" length="0" nullable="yes" escapeIdtCharacters="yes" useCData="yes" modularize="property" | ||
390 | category="template" description="Error formatting template, obtained from user ed. or localizers."/> | ||
391 | </tableDefinition> | ||
392 | <tableDefinition name="EventMapping"> | ||
393 | <columnDefinition name="Dialog_" type="string" length="72" primaryKey="yes" modularize="column" | ||
394 | keyTable="Dialog" keyColumn="1" category="identifier" description="A foreign key to the Dialog table, name of the Dialog."/> | ||
395 | <columnDefinition name="Control_" type="string" length="50" primaryKey="yes" | ||
396 | keyTable="Control" keyColumn="2" category="identifier" description="A foreign key to the Control table, name of the control."/> | ||
397 | <columnDefinition name="Event" type="string" length="50" primaryKey="yes" | ||
398 | category="identifier" description="An identifier that specifies the type of the event that the control subscribes to."/> | ||
399 | <columnDefinition name="Attribute" type="string" length="50" | ||
400 | category="identifier" description="The name of the control attribute, that is set when this event is received."/> | ||
401 | </tableDefinition> | ||
402 | <tableDefinition name="Extension"> | ||
403 | <columnDefinition name="Extension" type="string" length="255" primaryKey="yes" | ||
404 | category="text" description="The extension associated with the table row."/> | ||
405 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
406 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent."/> | ||
407 | <columnDefinition name="ProgId_" type="string" length="255" nullable="yes" | ||
408 | keyTable="ProgId" keyColumn="1" category="text" description="Optional ProgId associated with this extension."/> | ||
409 | <columnDefinition name="MIME_" type="string" length="64" nullable="yes" | ||
410 | keyTable="MIME" keyColumn="1" category="text" description="Optional Context identifier, typically "type/format" associated with the extension"/> | ||
411 | <columnDefinition name="Feature_" type="string" length="38" | ||
412 | keyTable="Feature" keyColumn="1" category="identifier" description="Required foreign key into the Feature Table, specifying the feature to validate or install in order for the CLSID factory to be operational."/> | ||
413 | </tableDefinition> | ||
414 | <tableDefinition name="MIME"> | ||
415 | <columnDefinition name="ContentType" type="string" length="64" primaryKey="yes" | ||
416 | category="text" description="Primary key. Context identifier, typically "type/format"."/> | ||
417 | <columnDefinition name="Extension_" type="string" length="255" | ||
418 | keyTable="Extension" keyColumn="1" category="text" description="Optional associated extension (without dot)"/> | ||
419 | <columnDefinition name="CLSID" type="string" length="38" nullable="yes" | ||
420 | category="guid" description="Optional associated CLSID."/> | ||
421 | </tableDefinition> | ||
422 | <tableDefinition name="FeatureComponents"> | ||
423 | <columnDefinition name="Feature_" type="string" length="38" primaryKey="yes" | ||
424 | keyTable="Feature" keyColumn="1" category="identifier" description="Foreign key into Feature table."/> | ||
425 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
426 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into Component table."/> | ||
427 | </tableDefinition> | ||
428 | <tableDefinition name="FileSFPCatalog"> | ||
429 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
430 | keyTable="File" keyColumn="1" category="identifier" description="File associated with the catalog"/> | ||
431 | <columnDefinition name="SFPCatalog_" type="string" length="255" primaryKey="yes" | ||
432 | keyTable="SFPCatalog" keyColumn="1" category="filename" description="Catalog associated with the file"/> | ||
433 | </tableDefinition> | ||
434 | <tableDefinition name="SFPCatalog"> | ||
435 | <columnDefinition name="SFPCatalog" type="string" length="255" primaryKey="yes" | ||
436 | category="filename" description="File name for the catalog."/> | ||
437 | <columnDefinition name="Catalog" type="object" length="0" | ||
438 | category="binary" description="SFP Catalog"/> | ||
439 | <columnDefinition name="Dependency" type="string" length="0" nullable="yes" modularize="property" | ||
440 | category="formatted" description="Parent catalog - only used by SFP"/> | ||
441 | </tableDefinition> | ||
442 | <tableDefinition name="Font"> | ||
443 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
444 | keyTable="File" keyColumn="1" category="identifier" description="Primary key, foreign key into File table referencing font file."/> | ||
445 | <columnDefinition name="FontTitle" type="string" length="128" nullable="yes" | ||
446 | category="text" description="Font name."/> | ||
447 | </tableDefinition> | ||
448 | <tableDefinition name="IniFile"> | ||
449 | <columnDefinition name="IniFile" type="string" length="72" primaryKey="yes" modularize="column" | ||
450 | category="identifier" description="Primary key, non-localized token."/> | ||
451 | <columnDefinition name="FileName" type="localized" length="255" | ||
452 | category="filename" description="The .INI file name in which to write the information"/> | ||
453 | <columnDefinition name="DirProperty" type="string" length="72" nullable="yes" modularize="column" | ||
454 | category="identifier" description="Foreign key into the Directory table denoting the directory where the .INI file is."/> | ||
455 | <columnDefinition name="Section" type="localized" length="96" modularize="property" | ||
456 | category="formatted" description="The .INI file Section."/> | ||
457 | <columnDefinition name="Key" type="localized" length="128" modularize="property" | ||
458 | category="formatted" description="The .INI file key below Section."/> | ||
459 | <columnDefinition name="Value" type="localized" length="255" modularize="property" escapeIdtCharacters="yes" | ||
460 | category="formatted" description="The value to be written."/> | ||
461 | <columnDefinition name="Action" type="number" length="2" | ||
462 | set="0;1;3" description="The type of modification to be made, one of iifEnum"/> | ||
463 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
464 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table referencing component that controls the installing of the .INI value."/> | ||
465 | </tableDefinition> | ||
466 | <tableDefinition name="IniLocator"> | ||
467 | <columnDefinition name="Signature_" type="string" length="72" primaryKey="yes" modularize="column" | ||
468 | category="identifier" description="The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table."/> | ||
469 | <columnDefinition name="FileName" type="string" length="255" | ||
470 | category="filename" description="The .INI file name."/> | ||
471 | <columnDefinition name="Section" type="string" length="96" | ||
472 | category="text" description="Section name within in file (within square brackets in INI file)."/> | ||
473 | <columnDefinition name="Key" type="string" length="128" | ||
474 | category="text" description="Key value (followed by an equals sign in INI file)."/> | ||
475 | <columnDefinition name="Field" type="number" length="2" nullable="yes" | ||
476 | minValue="0" maxValue="32767" description="The field in the .INI line. If Field is null or 0 the entire line is read."/> | ||
477 | <columnDefinition name="Type" type="number" length="2" nullable="yes" | ||
478 | minValue="0" maxValue="2" description="An integer value that determines if the .INI value read is a filename or a directory location or to be used as is w/o interpretation."/> | ||
479 | </tableDefinition> | ||
480 | <tableDefinition name="InstallExecuteSequence"> | ||
481 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" | ||
482 | category="identifier" description="Name of action to invoke, either in the engine or the handler DLL."/> | ||
483 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
484 | category="condition" description="Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData."/> | ||
485 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
486 | minValue="-4" maxValue="32767" description="Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."/> | ||
487 | </tableDefinition> | ||
488 | <tableDefinition name="InstallUISequence"> | ||
489 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes" | ||
490 | category="identifier" description="Name of action to invoke, either in the engine or the handler DLL."/> | ||
491 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
492 | category="condition" description="Optional expression which skips the action if evaluates to expFalse.If the expression syntax is invalid, the engine will terminate, returning iesBadActionData."/> | ||
493 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
494 | minValue="-4" maxValue="32767" description="Number that determines the sort order in which the actions are to be executed. Leave blank to suppress action."/> | ||
495 | </tableDefinition> | ||
496 | <tableDefinition name="IsolatedComponent"> | ||
497 | <columnDefinition name="Component_Shared" type="string" length="72" primaryKey="yes" modularize="column" | ||
498 | keyTable="Component" keyColumn="1" category="identifier" description="Key to Component table item to be isolated"/> | ||
499 | <columnDefinition name="Component_Application" type="string" length="72" primaryKey="yes" modularize="column" | ||
500 | keyTable="Component" keyColumn="1" category="identifier" description="Key to Component table item for application"/> | ||
501 | </tableDefinition> | ||
502 | <tableDefinition name="LaunchCondition"> | ||
503 | <columnDefinition name="Condition" type="string" length="255" primaryKey="yes" localizable="yes" | ||
504 | category="condition" description="Expression which must evaluate to TRUE in order for install to commence."/> | ||
505 | <columnDefinition name="Description" type="localized" length="255" escapeIdtCharacters="yes" | ||
506 | category="formatted" description="Localizable text to display when condition fails and install must abort."/> | ||
507 | </tableDefinition> | ||
508 | <tableDefinition name="ListBox"> | ||
509 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
510 | category="identifier" description="A named property to be tied to this item. All the items tied to the same property become part of the same listbox."/> | ||
511 | <columnDefinition name="Order" type="number" length="2" primaryKey="yes" | ||
512 | minValue="1" maxValue="32767" description="A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."/> | ||
513 | <columnDefinition name="Value" type="string" length="64" modularize="property" | ||
514 | category="formatted" description="The value string associated with this item. Selecting the line will set the associated property to this value."/> | ||
515 | <columnDefinition name="Text" type="localized" length="64" nullable="yes" escapeIdtCharacters="yes" | ||
516 | category="text" description="The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."/> | ||
517 | </tableDefinition> | ||
518 | <tableDefinition name="ListView"> | ||
519 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
520 | category="identifier" description="A named property to be tied to this item. All the items tied to the same property become part of the same listview."/> | ||
521 | <columnDefinition name="Order" type="number" length="2" primaryKey="yes" | ||
522 | minValue="1" maxValue="32767" description="A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."/> | ||
523 | <columnDefinition name="Value" type="string" length="64" modularize="property" | ||
524 | category="formatted" description="The value string associated with this item. Selecting the line will set the associated property to this value."/> | ||
525 | <columnDefinition name="Text" type="localized" length="64" nullable="yes" escapeIdtCharacters="yes" modularize="property" | ||
526 | category="formatted" description="The visible text to be assigned to the item. Optional. If this entry or the entire column is missing, the text is the same as the value."/> | ||
527 | <columnDefinition name="Binary_" type="string" length="72" nullable="yes" modularize="column" | ||
528 | keyTable="Binary" keyColumn="1" category="identifier" description="The name of the icon to be displayed with the icon. The binary information is looked up from the Binary Table."/> | ||
529 | </tableDefinition> | ||
530 | <tableDefinition name="LockPermissions"> | ||
531 | <columnDefinition name="LockObject" type="string" length="72" primaryKey="yes" modularize="column" | ||
532 | category="identifier" description="Foreign key into Registry or File table"/> | ||
533 | <columnDefinition name="Table" type="string" length="32" primaryKey="yes" | ||
534 | category="identifier" set="Directory;File;Registry" description="Reference to another table name"/> | ||
535 | <columnDefinition name="Domain" type="string" length="255" primaryKey="yes" nullable="yes" modularize="property" | ||
536 | category="formatted" description="Domain name for user whose permissions are being set. (usually a property)"/> | ||
537 | <columnDefinition name="User" type="string" length="255" primaryKey="yes" modularize="property" | ||
538 | category="formatted" description="User for permissions to be set. (usually a property)"/> | ||
539 | <columnDefinition name="Permission" type="number" length="4" nullable="yes" | ||
540 | minValue="-2147483647" maxValue="2147483647" description="Permission Access mask. Full Control = 268435456 (GENERIC_ALL = 0x10000000)"/> | ||
541 | </tableDefinition> | ||
542 | <tableDefinition name="MsiLockPermissionsEx"> | ||
543 | <columnDefinition name="MsiLockPermissionsEx" type="string" length="72" primaryKey="yes" modularize="column" | ||
544 | category="identifier" description="Primary key, non-localized token"/> | ||
545 | <columnDefinition name="LockObject" type="string" length="72" modularize="column" | ||
546 | category="identifier" description="Foreign key into Registry, File, CreateFolder, or ServiceInstall table"/> | ||
547 | <columnDefinition name="Table" type="string" length="32" | ||
548 | category="identifier" set="CreateFolder;File;Registry;ServiceInstall" description="Reference to another table name"/> | ||
549 | <columnDefinition name="SDDLText" type="string" length="0" modularize="property" | ||
550 | category="formattedSddl" description="String to indicate permissions to be applied to the LockObject"/> | ||
551 | <columnDefinition name="Condition" type="string" length="255" modularize="property" nullable="yes" | ||
552 | category="formatted" description="Expression which must evaluate to TRUE in order for this set of permissions to be applied"/> | ||
553 | </tableDefinition> | ||
554 | <tableDefinition name="Media" createSymbols="yes"> | ||
555 | <columnDefinition name="DiskId" type="number" length="2" primaryKey="yes" | ||
556 | minValue="1" maxValue="32767" description="Primary key, integer to determine sort order for table."/> | ||
557 | <columnDefinition name="LastSequence" type="number" length="4" | ||
558 | minValue="0" maxValue="2147483647" description="File sequence number for the last file for this media."/> | ||
559 | <columnDefinition name="DiskPrompt" type="localized" length="64" nullable="yes" escapeIdtCharacters="yes" | ||
560 | category="text" description="Disk name: the visible text actually printed on the disk. This will be used to prompt the user when this disk needs to be inserted."/> | ||
561 | <columnDefinition name="Cabinet" type="string" length="255" nullable="yes" | ||
562 | category="cabinet" description="If some or all of the files stored on the media are compressed in a cabinet, the name of that cabinet."/> | ||
563 | <columnDefinition name="VolumeLabel" type="string" length="32" nullable="yes" | ||
564 | category="text" description="The label attributed to the volume."/> | ||
565 | <columnDefinition name="Source" type="string" length="72" nullable="yes" | ||
566 | category="property" description="The property defining the location of the cabinet file."/> | ||
567 | </tableDefinition> | ||
568 | <tableDefinition name="MoveFile"> | ||
569 | <columnDefinition name="FileKey" type="string" length="72" primaryKey="yes" modularize="column" | ||
570 | category="identifier" description="Primary key that uniquely identifies a particular MoveFile record"/> | ||
571 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
572 | keyTable="Component" keyColumn="1" category="identifier" description="If this component is not "selected" for installation or removal, no action will be taken on the associated MoveFile entry"/> | ||
573 | <columnDefinition name="SourceName" type="localized" length="255" nullable="yes" | ||
574 | category="text" description="Name of the source file(s) to be moved or copied. Can contain the '*' or '?' wildcards."/> | ||
575 | <columnDefinition name="DestName" type="localized" length="255" nullable="yes" | ||
576 | category="filename" description="Name to be given to the original file after it is moved or copied. If blank, the destination file will be given the same name as the source file"/> | ||
577 | <columnDefinition name="SourceFolder" type="string" length="72" nullable="yes" modularize="column" | ||
578 | category="identifier" description="Name of a property whose value is assumed to resolve to the full path to the source directory"/> | ||
579 | <columnDefinition name="DestFolder" type="string" length="72" modularize="column" | ||
580 | category="identifier" description="Name of a property whose value is assumed to resolve to the full path to the destination directory"/> | ||
581 | <columnDefinition name="Options" type="number" length="2" | ||
582 | minValue="0" maxValue="1" description="Integer value specifying the MoveFile operating mode, one of imfoEnum"/> | ||
583 | </tableDefinition> | ||
584 | <tableDefinition name="MsiAssembly"> | ||
585 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
586 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into Component table."/> | ||
587 | <columnDefinition name="Feature_" type="string" length="38" | ||
588 | keyTable="Feature" keyColumn="1" category="identifier" description="Foreign key into Feature table."/> | ||
589 | <columnDefinition name="File_Manifest" type="string" length="72" nullable="yes" modularize="column" | ||
590 | keyTable="File" keyColumn="1" category="identifier" description="Foreign key into the File table denoting the manifest file for the assembly."/> | ||
591 | <columnDefinition name="File_Application" type="string" length="72" nullable="yes" modularize="column" | ||
592 | keyTable="File" keyColumn="1" category="identifier" description="Foreign key into File table, denoting the application context for private assemblies. Null for global assemblies."/> | ||
593 | <columnDefinition name="Attributes" type="number" length="2" nullable="yes" | ||
594 | description="Assembly attributes"/> | ||
595 | </tableDefinition> | ||
596 | <tableDefinition name="MsiAssemblyName"> | ||
597 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
598 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into Component table."/> | ||
599 | <columnDefinition name="Name" type="string" length="255" primaryKey="yes" | ||
600 | category="text" description="The name part of the name-value pairs for the assembly name."/> | ||
601 | <columnDefinition name="Value" type="string" length="255" | ||
602 | category="text" description="The value part of the name-value pairs for the assembly name."/> | ||
603 | </tableDefinition> | ||
604 | <tableDefinition name="MsiDigitalCertificate"> | ||
605 | <columnDefinition name="DigitalCertificate" type="string" length="72" primaryKey="yes" | ||
606 | category="identifier" description="A unique identifier for the row"/> | ||
607 | <columnDefinition name="CertData" type="object" length="0" | ||
608 | category="binary" description="A certificate context blob for a signer certificate"/> | ||
609 | </tableDefinition> | ||
610 | <tableDefinition name="MsiDigitalSignature"> | ||
611 | <columnDefinition name="Table" type="string" length="32" primaryKey="yes" | ||
612 | set="Media" description="Reference to another table name (only Media table is supported)"/> | ||
613 | <columnDefinition name="SignObject" type="string" length="72" primaryKey="yes" | ||
614 | category="text" description="Foreign key to Media table"/> | ||
615 | <columnDefinition name="DigitalCertificate_" type="string" length="72" | ||
616 | keyTable="MsiDigitalCertificate" keyColumn="1" category="identifier" description="Foreign key to MsiDigitalCertificate table identifying the signer certificate"/> | ||
617 | <columnDefinition name="Hash" type="object" length="0" nullable="yes" | ||
618 | category="binary" description="The encoded hash blob from the digital signature"/> | ||
619 | </tableDefinition> | ||
620 | <tableDefinition name="MsiEmbeddedChainer" createSymbols="yes"> | ||
621 | <columnDefinition name="MsiEmbeddedChainer" type="string" length="72" primaryKey="yes" modularize="column" | ||
622 | category="identifier" description="The primary key for the table."/> | ||
623 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes" | ||
624 | category="condition" description="A conditional statement for running the user-defined function."/> | ||
625 | <columnDefinition name="CommandLine" type="string" length="255" nullable="yes" modularize="property" | ||
626 | category="formatted" description="The value in this field is a part of the command line string passed to the executable file identified in the Source column."/> | ||
627 | <columnDefinition name="Source" type="string" length="72" modularize="column" | ||
628 | category="customSource" description="The location of the executable file for the user-defined function."/> | ||
629 | <columnDefinition name="Type" type="number" length="2" | ||
630 | set="2;18;50" description="The functions listed in the MsiEmbeddedChainer table are described using the following custom action numeric types."/> | ||
631 | </tableDefinition> | ||
632 | <tableDefinition name="MsiEmbeddedUI"> | ||
633 | <columnDefinition name="MsiEmbeddedUI" type="string" length="72" primaryKey="yes" modularize="column" | ||
634 | category="identifier" description="The primary key for the table."/> | ||
635 | <columnDefinition name="FileName" type="localized" length="255" | ||
636 | category="text" description="The name of the file that receives the binary information in the Data column."/> | ||
637 | <columnDefinition name="Attributes" type="number" length="2" | ||
638 | set="0;1;2;3" description="Information about the data in the Data column."/> | ||
639 | <columnDefinition name="MessageFilter" type="number" length="4" nullable="yes" | ||
640 | description="Specifies the types of messages that are sent to the user interface DLL."/> | ||
641 | <columnDefinition name="Data" type="object" length="0" | ||
642 | category="binary" description="This column contains binary information."/> | ||
643 | </tableDefinition> | ||
644 | <tableDefinition name="MsiFileHash"> | ||
645 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
646 | keyTable="File" keyColumn="1" category="identifier" description="Primary key, foreign key into File table referencing file with this hash"/> | ||
647 | <columnDefinition name="Options" type="number" length="2" | ||
648 | minValue="0" maxValue="32767" description="Various options and attributes for this hash."/> | ||
649 | <columnDefinition name="HashPart1" type="number" length="4" | ||
650 | description="Size of file in bytes (long integer)."/> | ||
651 | <columnDefinition name="HashPart2" type="number" length="4" | ||
652 | description="Size of file in bytes (long integer)."/> | ||
653 | <columnDefinition name="HashPart3" type="number" length="4" | ||
654 | description="Size of file in bytes (long integer)."/> | ||
655 | <columnDefinition name="HashPart4" type="number" length="4" | ||
656 | description="Size of file in bytes (long integer)."/> | ||
657 | </tableDefinition> | ||
658 | <tableDefinition name="MsiPackageCertificate"> | ||
659 | <columnDefinition name="PackageCertificate" type="string" length="72" primaryKey="yes" | ||
660 | category="identifier" description="Primary key. A unique identifier for the row."/> | ||
661 | <columnDefinition name="DigitalCertificate_" type="string" length="72" primaryKey="yes" | ||
662 | keyTable="MsiDigitalCertificate" keyColumn="1" category="identifier" description="Foreign key to MsiDigitalCertificate table identifying the signer certificate."/> | ||
663 | </tableDefinition> | ||
664 | <tableDefinition name="MsiPatchCertificate"> | ||
665 | <columnDefinition name="PatchCertificate" type="string" length="72" primaryKey="yes" | ||
666 | category="identifier" description="Primary key. A unique identifier for the row."/> | ||
667 | <columnDefinition name="DigitalCertificate_" type="string" length="72" primaryKey="yes" | ||
668 | keyTable="MsiDigitalCertificate" keyColumn="1" category="identifier" description="Foreign key to MsiDigitalCertificate table identifying the signer certificate."/> | ||
669 | </tableDefinition> | ||
670 | <tableDefinition name="MsiPatchHeaders"> | ||
671 | <columnDefinition name="StreamRef" type="string" length="38" primaryKey="yes" | ||
672 | category="identifier" description="Primary key. A unique identifier for the row."/> | ||
673 | <columnDefinition name="Header" type="object" length="0" | ||
674 | category="binary" description="Binary stream. The patch header, used for patch validation."/> | ||
675 | </tableDefinition> | ||
676 | <tableDefinition name="PatchMetadata"> | ||
677 | <columnDefinition name="Company" type="string" length="72" primaryKey="yes" nullable="yes" | ||
678 | category="identifier" description="Primary key. The name of the company."/> | ||
679 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" | ||
680 | category="identifier" description="Primary key. The name of the property."/> | ||
681 | <columnDefinition name="Value" type="localized" length="0" escapeIdtCharacters="yes" | ||
682 | category="text" description="Non-null, non-empty value of the metadata property."/> | ||
683 | </tableDefinition> | ||
684 | <tableDefinition name="MsiPatchMetadata"> | ||
685 | <columnDefinition name="Company" type="string" length="72" primaryKey="yes" nullable="yes" | ||
686 | /> | ||
687 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" | ||
688 | /> | ||
689 | <columnDefinition name="Value" type="localized" length="0" | ||
690 | /> | ||
691 | </tableDefinition> | ||
692 | <tableDefinition name="MsiPatchOldAssemblyFile"> | ||
693 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
694 | keyTable="File" keyColumn="1" category="identifier" description="Foreign key into File table. Patch-only table."/> | ||
695 | <columnDefinition name="Assembly_" type="string" length="72" primaryKey="yes" modularize="column" | ||
696 | keyTable="MsiPatchOldAssemblyName" keyColumn="1" category="identifier" description="Foreign key into MsiPatchOldAssemblyName table."/> | ||
697 | </tableDefinition> | ||
698 | <tableDefinition name="MsiPatchOldAssemblyName"> | ||
699 | <columnDefinition name="Assembly" type="string" length="72" primaryKey="yes" modularize="column" | ||
700 | category="identifier" description="A unique identifier for the row."/> | ||
701 | <columnDefinition name="Name" type="string" length="255" primaryKey="yes" | ||
702 | category="text" description="The name part of the name-value pairs for the assembly name. This represents the old name for the assembly."/> | ||
703 | <columnDefinition name="Value" type="string" length="255" | ||
704 | category="text" description="The value part of the name-value pairs for the assembly name. This represents the old name for the assembly."/> | ||
705 | </tableDefinition> | ||
706 | <tableDefinition name="PatchSequence"> | ||
707 | <columnDefinition name="PatchFamily" type="string" length="72" primaryKey="yes" | ||
708 | category="identifier" description="Primary key. The name of the family for the patch."/> | ||
709 | <columnDefinition name="Target" type="string" length="72" primaryKey="yes" nullable="yes" | ||
710 | category="text" description="Primary key. Determines product code filtering for family."/> | ||
711 | <columnDefinition name="Sequence" type="string" length="72" nullable="yes" | ||
712 | category="text" description="Sequence information in version (x.x.x.x) format."/> | ||
713 | <columnDefinition name="Supersede" type="number" length="4" nullable="yes" | ||
714 | description="Indicates that this patch supersedes earlier patches."/> | ||
715 | </tableDefinition> | ||
716 | <tableDefinition name="MsiPatchSequence" createSymbols="yes"> | ||
717 | <columnDefinition name="PatchFamily" type="string" length="72" primaryKey="yes" | ||
718 | /> | ||
719 | <columnDefinition name="ProductCode" type="string" length="38" primaryKey="yes" nullable="yes" | ||
720 | /> | ||
721 | <columnDefinition name="Sequence" type="string" length="72" | ||
722 | /> | ||
723 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" | ||
724 | /> | ||
725 | </tableDefinition> | ||
726 | <tableDefinition name="ODBCAttribute"> | ||
727 | <columnDefinition name="Driver_" type="string" length="72" primaryKey="yes" modularize="column" | ||
728 | keyTable="ODBCDriver" keyColumn="1" category="identifier" description="Reference to ODBC driver in ODBCDriver table"/> | ||
729 | <columnDefinition name="Attribute" type="string" length="40" primaryKey="yes" | ||
730 | category="text" description="Name of ODBC driver attribute"/> | ||
731 | <columnDefinition name="Value" type="localized" length="255" nullable="yes" | ||
732 | category="formatted" description="Value for ODBC driver attribute"/> | ||
733 | </tableDefinition> | ||
734 | <tableDefinition name="ODBCDriver"> | ||
735 | <columnDefinition name="Driver" type="string" length="72" primaryKey="yes" modularize="column" | ||
736 | category="identifier" description="Primary key, non-localized.internal token for driver"/> | ||
737 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
738 | keyTable="Component" keyColumn="1" category="identifier" description="Reference to associated component"/> | ||
739 | <columnDefinition name="Description" type="string" length="255" | ||
740 | category="text" description="Text used as registered name for driver, non-localized"/> | ||
741 | <columnDefinition name="File_" type="string" length="72" modularize="column" | ||
742 | keyTable="File" keyColumn="1" category="identifier" description="Reference to key driver file"/> | ||
743 | <columnDefinition name="File_Setup" type="string" length="72" nullable="yes" modularize="column" | ||
744 | keyTable="File" keyColumn="1" category="identifier" description="Optional reference to key driver setup DLL"/> | ||
745 | </tableDefinition> | ||
746 | <tableDefinition name="ODBCDataSource"> | ||
747 | <columnDefinition name="DataSource" type="string" length="72" primaryKey="yes" modularize="column" | ||
748 | category="identifier" description="Primary key, non-localized.internal token for data source"/> | ||
749 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
750 | keyTable="Component" keyColumn="1" category="identifier" description="Reference to associated component"/> | ||
751 | <columnDefinition name="Description" type="string" length="255" | ||
752 | category="text" description="Text used as registered name for data source"/> | ||
753 | <columnDefinition name="DriverDescription" type="string" length="255" | ||
754 | category="text" description="Reference to driver description, may be existing driver"/> | ||
755 | <columnDefinition name="Registration" type="number" length="2" | ||
756 | minValue="0" maxValue="1" description="Registration option: 0=machine, 1=user, others t.b.d."/> | ||
757 | </tableDefinition> | ||
758 | <tableDefinition name="ODBCSourceAttribute"> | ||
759 | <columnDefinition name="DataSource_" type="string" length="72" primaryKey="yes" modularize="column" | ||
760 | keyTable="ODBCDataSource" keyColumn="1" category="identifier" description="Reference to ODBC data source in ODBCDataSource table"/> | ||
761 | <columnDefinition name="Attribute" type="string" length="32" primaryKey="yes" | ||
762 | category="text" description="Name of ODBC data source attribute"/> | ||
763 | <columnDefinition name="Value" type="localized" length="255" nullable="yes" | ||
764 | category="formatted" description="Value for ODBC data source attribute"/> | ||
765 | </tableDefinition> | ||
766 | <tableDefinition name="ODBCTranslator"> | ||
767 | <columnDefinition name="Translator" type="string" length="72" primaryKey="yes" modularize="column" | ||
768 | category="identifier" description="Primary key, non-localized.internal token for translator"/> | ||
769 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
770 | keyTable="Component" keyColumn="1" category="identifier" description="Reference to associated component"/> | ||
771 | <columnDefinition name="Description" type="string" length="255" | ||
772 | category="text" description="Text used as registered name for translator"/> | ||
773 | <columnDefinition name="File_" type="string" length="72" modularize="column" | ||
774 | keyTable="File" keyColumn="1" category="identifier" description="Reference to key translator file"/> | ||
775 | <columnDefinition name="File_Setup" type="string" length="72" nullable="yes" modularize="column" | ||
776 | keyTable="File" keyColumn="1" category="identifier" description="Optional reference to key translator setup DLL"/> | ||
777 | </tableDefinition> | ||
778 | <tableDefinition name="Patch"> | ||
779 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
780 | category="identifier" description="Primary key, non-localized token, foreign key to File table, must match identifier in cabinet."/> | ||
781 | <columnDefinition name="Sequence" type="number" length="4" primaryKey="yes" | ||
782 | minValue="0" maxValue="2147483647" description="Primary key, sequence with respect to the media images; order must track cabinet order."/> | ||
783 | <columnDefinition name="PatchSize" type="number" length="4" | ||
784 | minValue="0" maxValue="2147483647" description="Size of patch in bytes (long integer)."/> | ||
785 | <columnDefinition name="Attributes" type="number" length="2" | ||
786 | minValue="0" maxValue="32767" description="Integer containing bit flags representing patch attributes"/> | ||
787 | <columnDefinition name="Header" type="object" length="0" nullable="yes" | ||
788 | category="binary" description="Binary stream. The patch header, used for patch validation."/> | ||
789 | <columnDefinition name="StreamRef_" type="string" length="38" nullable="yes" | ||
790 | category="identifier" description="Identifier. Foreign key to the StreamRef column of the MsiPatchHeaders table."/> | ||
791 | </tableDefinition> | ||
792 | <tableDefinition name="PatchPackage"> | ||
793 | <columnDefinition name="PatchId" type="string" length="38" primaryKey="yes" | ||
794 | category="guid" description="A unique string GUID representing this patch."/> | ||
795 | <columnDefinition name="Media_" type="number" length="2" | ||
796 | minValue="0" maxValue="32767" description="Foreign key to DiskId column of Media table. Indicates the disk containing the patch package."/> | ||
797 | </tableDefinition> | ||
798 | <tableDefinition name="PublishComponent"> | ||
799 | <columnDefinition name="ComponentId" type="string" length="38" primaryKey="yes" | ||
800 | category="guid" description="A string GUID that represents the component id that will be requested by the alien product."/> | ||
801 | <columnDefinition name="Qualifier" type="string" length="255" primaryKey="yes" | ||
802 | category="text" description="This is defined only when the ComponentId column is an Qualified Component Id. This is the Qualifier for ProvideComponentIndirect."/> | ||
803 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
804 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table."/> | ||
805 | <columnDefinition name="AppData" type="localized" length="0" nullable="yes" escapeIdtCharacters="yes" | ||
806 | category="text" description="This is localisable Application specific data that can be associated with a Qualified Component."/> | ||
807 | <columnDefinition name="Feature_" type="string" length="38" | ||
808 | keyTable="Feature" keyColumn="1" category="identifier" description="Foreign key into the Feature table."/> | ||
809 | </tableDefinition> | ||
810 | <tableDefinition name="RadioButton"> | ||
811 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes" modularize="column" | ||
812 | category="identifier" description="A named property to be tied to this radio button. All the buttons tied to the same property become part of the same group."/> | ||
813 | <columnDefinition name="Order" type="number" length="2" primaryKey="yes" | ||
814 | minValue="1" maxValue="32767" description="A positive integer used to determine the ordering of the items within one list..The integers do not have to be consecutive."/> | ||
815 | <columnDefinition name="Value" type="string" length="64" modularize="property" escapeIdtCharacters="yes" | ||
816 | category="formatted" description="The value string associated with this button. Selecting the button will set the associated property to this value."/> | ||
817 | <columnDefinition name="X" type="number" length="2" localizable="yes" | ||
818 | minValue="0" maxValue="32767" description="The horizontal coordinate of the upper left corner of the bounding rectangle of the radio button."/> | ||
819 | <columnDefinition name="Y" type="number" length="2" localizable="yes" | ||
820 | minValue="0" maxValue="32767" description="The vertical coordinate of the upper left corner of the bounding rectangle of the radio button."/> | ||
821 | <columnDefinition name="Width" type="number" length="2" localizable="yes" | ||
822 | minValue="0" maxValue="32767" description="The width of the button."/> | ||
823 | <columnDefinition name="Height" type="number" length="2" localizable="yes" | ||
824 | minValue="0" maxValue="32767" description="The height of the button."/> | ||
825 | <columnDefinition name="Text" type="localized" length="0" nullable="yes" escapeIdtCharacters="yes" | ||
826 | category="text" description="The visible title to be assigned to the radio button."/> | ||
827 | <columnDefinition name="Help" type="localized" length="50" nullable="yes" escapeIdtCharacters="yes" | ||
828 | category="text" description="The help strings used with the button. The text is optional."/> | ||
829 | </tableDefinition> | ||
830 | <tableDefinition name="Registry"> | ||
831 | <columnDefinition name="Registry" type="string" length="72" primaryKey="yes" modularize="column" | ||
832 | category="identifier" description="Primary key, non-localized token."/> | ||
833 | <columnDefinition name="Root" type="number" length="2" | ||
834 | minValue="-1" maxValue="3" description="The predefined root key for the registry value, one of rrkEnum."/> | ||
835 | <columnDefinition name="Key" type="localized" length="255" modularize="property" | ||
836 | category="regPath" description="The key for the registry value."/> | ||
837 | <columnDefinition name="Name" type="localized" length="255" nullable="yes" modularize="property" | ||
838 | category="formatted" description="The registry value name."/> | ||
839 | <columnDefinition name="Value" type="localized" length="0" nullable="yes" modularize="property" escapeIdtCharacters="yes" | ||
840 | category="formatted" description="The registry value."/> | ||
841 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
842 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table referencing component that controls the installing of the registry value."/> | ||
843 | </tableDefinition> | ||
844 | <tableDefinition name="RegLocator" createSymbols="yes"> | ||
845 | <columnDefinition name="Signature_" type="string" length="72" primaryKey="yes" modularize="column" | ||
846 | category="identifier" description="The table key. The Signature_ represents a unique file signature and is also the foreign key in the Signature table. If the type is 0, the registry values refers a directory, and _Signature is not a foreign key."/> | ||
847 | <columnDefinition name="Root" type="number" length="2" | ||
848 | minValue="0" maxValue="3" description="The predefined root key for the registry value, one of rrkEnum."/> | ||
849 | <columnDefinition name="Key" type="string" length="255" modularize="property" localizable="yes" | ||
850 | category="regPath" description="The key for the registry value."/> | ||
851 | <columnDefinition name="Name" type="string" length="255" nullable="yes" modularize="property" localizable="yes" | ||
852 | category="formatted" description="The registry value name."/> | ||
853 | <columnDefinition name="Type" type="number" length="2" nullable="yes" | ||
854 | minValue="0" maxValue="18" description="An integer value that determines if the registry value is a filename or a directory location or to be used as is w/o interpretation."/> | ||
855 | </tableDefinition> | ||
856 | <tableDefinition name="RemoveFile"> | ||
857 | <columnDefinition name="FileKey" type="string" length="72" primaryKey="yes" modularize="column" | ||
858 | category="identifier" description="Primary key used to identify a particular file entry"/> | ||
859 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
860 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key referencing Component that controls the file to be removed."/> | ||
861 | <columnDefinition name="FileName" type="localized" length="255" nullable="yes" | ||
862 | category="wildCardFilename" description="Name of the file to be removed."/> | ||
863 | <columnDefinition name="DirProperty" type="string" length="72" modularize="column" | ||
864 | category="identifier" description="Name of a property whose value is assumed to resolve to the full pathname to the folder of the file to be removed."/> | ||
865 | <columnDefinition name="InstallMode" type="number" length="2" | ||
866 | set="1;2;3" description="Installation option, one of iimEnum."/> | ||
867 | </tableDefinition> | ||
868 | <tableDefinition name="RemoveIniFile"> | ||
869 | <columnDefinition name="RemoveIniFile" type="string" length="72" primaryKey="yes" modularize="column" | ||
870 | category="identifier" description="Primary key, non-localized token."/> | ||
871 | <columnDefinition name="FileName" type="localized" length="255" | ||
872 | category="filename" description="The .INI file name in which to delete the information"/> | ||
873 | <columnDefinition name="DirProperty" type="string" length="72" nullable="yes" modularize="column" | ||
874 | category="identifier" description="Foreign key into the Directory table denoting the directory where the .INI file is."/> | ||
875 | <columnDefinition name="Section" type="localized" length="96" modularize="property" | ||
876 | category="formatted" description="The .INI file Section."/> | ||
877 | <columnDefinition name="Key" type="localized" length="128" modularize="property" | ||
878 | category="formatted" description="The .INI file key below Section."/> | ||
879 | <columnDefinition name="Value" type="localized" length="255" nullable="yes" modularize="property" | ||
880 | category="formatted" description="The value to be deleted. The value is required when Action is iifIniRemoveTag"/> | ||
881 | <columnDefinition name="Action" type="number" length="2" | ||
882 | set="2;4" description="The type of modification to be made, one of iifEnum."/> | ||
883 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
884 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table referencing component that controls the deletion of the .INI value."/> | ||
885 | </tableDefinition> | ||
886 | <tableDefinition name="RemoveRegistry"> | ||
887 | <columnDefinition name="RemoveRegistry" type="string" length="72" primaryKey="yes" modularize="column" | ||
888 | category="identifier" description="Primary key, non-localized token."/> | ||
889 | <columnDefinition name="Root" type="number" length="2" | ||
890 | minValue="-1" maxValue="3" description="The predefined root key for the registry value, one of rrkEnum"/> | ||
891 | <columnDefinition name="Key" type="localized" length="255" modularize="property" | ||
892 | category="regPath" description="The key for the registry value."/> | ||
893 | <columnDefinition name="Name" type="localized" length="255" nullable="yes" modularize="property" | ||
894 | category="formatted" description="The registry value name."/> | ||
895 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
896 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table referencing component that controls the deletion of the registry value."/> | ||
897 | </tableDefinition> | ||
898 | <tableDefinition name="ReserveCost"> | ||
899 | <columnDefinition name="ReserveKey" type="string" length="72" primaryKey="yes" modularize="column" | ||
900 | category="identifier" description="Primary key that uniquely identifies a particular ReserveCost record"/> | ||
901 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
902 | keyTable="Component" keyColumn="1" category="identifier" description="Reserve a specified amount of space if this component is to be installed."/> | ||
903 | <columnDefinition name="ReserveFolder" type="string" length="72" nullable="yes" modularize="column" | ||
904 | category="identifier" description="Name of a property whose value is assumed to resolve to the full path to the destination directory"/> | ||
905 | <columnDefinition name="ReserveLocal" type="number" length="4" | ||
906 | minValue="0" maxValue="2147483647" description="Disk space to reserve if linked component is installed locally."/> | ||
907 | <columnDefinition name="ReserveSource" type="number" length="4" | ||
908 | minValue="0" maxValue="2147483647" description="Disk space to reserve if linked component is installed to run from the source location."/> | ||
909 | </tableDefinition> | ||
910 | <tableDefinition name="SelfReg"> | ||
911 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" | ||
912 | keyTable="File" keyColumn="1" category="identifier" description="Foreign key into the File table denoting the module that needs to be registered."/> | ||
913 | <columnDefinition name="Cost" type="number" length="2" nullable="yes" | ||
914 | minValue="0" maxValue="32767" description="The cost of registering the module."/> | ||
915 | </tableDefinition> | ||
916 | <tableDefinition name="ServiceControl"> | ||
917 | <columnDefinition name="ServiceControl" type="string" length="72" primaryKey="yes" modularize="column" | ||
918 | category="identifier" description="Primary key, non-localized token."/> | ||
919 | <columnDefinition name="Name" type="localized" length="255" modularize="property" | ||
920 | category="formatted" description="Name of a service. /, \, comma and space are invalid"/> | ||
921 | <columnDefinition name="Event" type="number" length="2" | ||
922 | minValue="0" maxValue="187" description="Bit field: Install: 0x1 = Start, 0x2 = Stop, 0x8 = Delete, Uninstall: 0x10 = Start, 0x20 = Stop, 0x80 = Delete"/> | ||
923 | <columnDefinition name="Arguments" type="localized" length="255" nullable="yes" modularize="property" | ||
924 | category="formatted" description="Arguments for the service. Separate by [~]."/> | ||
925 | <columnDefinition name="Wait" type="number" length="2" nullable="yes" | ||
926 | minValue="0" maxValue="1" description="Boolean for whether to wait for the service to fully start"/> | ||
927 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
928 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table that controls the startup of the service"/> | ||
929 | </tableDefinition> | ||
930 | <tableDefinition name="ServiceInstall"> | ||
931 | <columnDefinition name="ServiceInstall" type="string" length="72" primaryKey="yes" modularize="column" | ||
932 | category="identifier" description="Primary key, non-localized token."/> | ||
933 | <columnDefinition name="Name" type="string" length="255" modularize="property" | ||
934 | category="formatted" description="Internal Name of the Service"/> | ||
935 | <columnDefinition name="DisplayName" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" modularize="property" | ||
936 | category="formatted" description="External Name of the Service"/> | ||
937 | <columnDefinition name="ServiceType" type="number" length="4" | ||
938 | minValue="-2147483647" maxValue="2147483647" description="Type of the service"/> | ||
939 | <columnDefinition name="StartType" type="number" length="4" | ||
940 | minValue="0" maxValue="4" description="Type of the service"/> | ||
941 | <columnDefinition name="ErrorControl" type="number" length="4" | ||
942 | minValue="-2147483647" maxValue="2147483647" description="Severity of error if service fails to start"/> | ||
943 | <columnDefinition name="LoadOrderGroup" type="string" length="255" nullable="yes" modularize="property" | ||
944 | category="formatted" description="LoadOrderGroup"/> | ||
945 | <columnDefinition name="Dependencies" type="string" length="255" nullable="yes" modularize="property" | ||
946 | category="formatted" description="Other services this depends on to start. Separate by [~], and end with [~][~]"/> | ||
947 | <columnDefinition name="StartName" type="string" length="255" nullable="yes" modularize="property" | ||
948 | category="formatted" description="User or object name to run service as"/> | ||
949 | <columnDefinition name="Password" type="string" length="255" nullable="yes" modularize="property" | ||
950 | category="formatted" description="password to run service with. (with StartName)"/> | ||
951 | <columnDefinition name="Arguments" type="string" length="255" nullable="yes" modularize="property" | ||
952 | category="formatted" description="Arguments to include in every start of the service, passed to WinMain"/> | ||
953 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
954 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table that controls the startup of the service"/> | ||
955 | <columnDefinition name="Description" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" modularize="property" | ||
956 | category="text" description="Description of service."/> | ||
957 | </tableDefinition> | ||
958 | <tableDefinition name="MsiServiceConfig"> | ||
959 | <columnDefinition name="MsiServiceConfig" type="string" length="72" primaryKey="yes" modularize="column" | ||
960 | category="identifier" description="Primary key, non-localized token."/> | ||
961 | <columnDefinition name="Name" type="localized" length="255" modularize="property" | ||
962 | category="formatted" description="Name of a service. /, \, comma and space are invalid"/> | ||
963 | <columnDefinition name="Event" type="number" length="2" | ||
964 | minValue="0" maxValue="7" description="Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"/> | ||
965 | <columnDefinition name="ConfigType" type="number" length="4" | ||
966 | minValue="-2147483647" maxValue="2147483647" description="Service Configuration Option"/> | ||
967 | <columnDefinition name="Argument" type="string" length="0" nullable="yes" | ||
968 | category="text" description="Argument(s) for service configuration. Value depends on the content of the ConfigType field"/> | ||
969 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
970 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table that controls the configuration of the service"/> | ||
971 | </tableDefinition> | ||
972 | <tableDefinition name="MsiServiceConfigFailureActions"> | ||
973 | <columnDefinition name="MsiServiceConfigFailureActions" type="string" length="72" primaryKey="yes" modularize="column" | ||
974 | category="identifier" description="Primary key, non-localized token"/> | ||
975 | <columnDefinition name="Name" type="localized" length="255" modularize="property" | ||
976 | category="formatted" description="Name of a service. /, \, comma and space are invalid"/> | ||
977 | <columnDefinition name="Event" type="number" length="2" | ||
978 | minValue="0" maxValue="7" description="Bit field: 0x1 = Install, 0x2 = Uninstall, 0x4 = Reinstall"/> | ||
979 | <columnDefinition name="ResetPeriod" type="number" length="4" nullable="yes" | ||
980 | minValue="0" maxValue="2147483647" description="Time in seconds after which to reset the failure count to zero. Leave blank if it should never be reset"/> | ||
981 | <columnDefinition name="RebootMessage" type="localized" length="255" nullable="yes" | ||
982 | category="formatted" description="Message to be broadcast to server users before rebooting"/> | ||
983 | <columnDefinition name="Command" type="localized" length="255" nullable="yes" | ||
984 | category="formatted" description="Command line of the process to CreateProcess function to execute"/> | ||
985 | <columnDefinition name="Actions" type="string" length="0" nullable="yes" | ||
986 | category="text" description="A list of integer actions separated by [~] delimiters: 0 = SC_ACTION_NONE, 1 = SC_ACTION_RESTART, 2 = SC_ACTION_REBOOT, 3 = SC_ACTION_RUN_COMMAND. Terminate with [~][~]"/> | ||
987 | <columnDefinition name="DelayActions" type="string" length="0" nullable="yes" | ||
988 | category="text" description="A list of delays (time in milli-seconds), separated by [~] delmiters, to wait before taking the corresponding Action. Terminate with [~][~]"/> | ||
989 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
990 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table that controls the configuration of failure actions for the service"/> | ||
991 | </tableDefinition> | ||
992 | <tableDefinition name="Shortcut"> | ||
993 | <columnDefinition name="Shortcut" type="string" length="72" primaryKey="yes" modularize="column" | ||
994 | category="identifier" description="Primary key, non-localized token."/> | ||
995 | <columnDefinition name="Directory_" type="string" length="72" modularize="column" | ||
996 | keyTable="Directory" keyColumn="1" category="identifier" description="Foreign key into the Directory table denoting the directory where the shortcut file is created."/> | ||
997 | <columnDefinition name="Name" type="localized" length="128" | ||
998 | category="filename" description="The name of the shortcut to be created."/> | ||
999 | <columnDefinition name="Component_" type="string" length="72" modularize="column" | ||
1000 | keyTable="Component" keyColumn="1" category="identifier" description="Foreign key into the Component table denoting the component whose selection gates the the shortcut creation/deletion."/> | ||
1001 | <columnDefinition name="Target" type="string" length="72" modularize="property" | ||
1002 | category="shortcut" description="The shortcut target. This is usually a property that is expanded to a file or a folder that the shortcut points to."/> | ||
1003 | <columnDefinition name="Arguments" type="string" length="255" nullable="yes" modularize="property" | ||
1004 | category="formatted" description="The command-line arguments for the shortcut."/> | ||
1005 | <columnDefinition name="Description" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" | ||
1006 | category="text" description="The description for the shortcut."/> | ||
1007 | <columnDefinition name="Hotkey" type="number" length="2" nullable="yes" | ||
1008 | minValue="0" maxValue="32767" description="The hotkey for the shortcut. It has the virtual-key code for the key in the low-order byte, and the modifier flags in the high-order byte. "/> | ||
1009 | <columnDefinition name="Icon_" type="string" length="72" nullable="yes" modularize="icon" | ||
1010 | keyTable="Icon" keyColumn="1" category="identifier" description="Foreign key into the File table denoting the external icon file for the shortcut."/> | ||
1011 | <columnDefinition name="IconIndex" type="number" length="2" nullable="yes" | ||
1012 | minValue="-32767" maxValue="32767" description="The icon index for the shortcut."/> | ||
1013 | <columnDefinition name="ShowCmd" type="number" length="2" nullable="yes" | ||
1014 | set="1;3;7" description="The show command for the application window.The following values may be used."/> | ||
1015 | <columnDefinition name="WkDir" type="string" length="72" nullable="yes" modularize="column" | ||
1016 | category="identifier" description="Name of property defining location of working directory."/> | ||
1017 | <columnDefinition name="DisplayResourceDLL" type="string" length="255" nullable="yes" modularize="property" | ||
1018 | category="formatted" description="The Formatted string providing the full path to the language neutral file containing the MUI Manifest."/> | ||
1019 | <columnDefinition name="DisplayResourceId" type="number" length="2" nullable="yes" | ||
1020 | minValue="0" maxValue="32767" description="The display name index for the shortcut. This must be a non-negative number."/> | ||
1021 | <columnDefinition name="DescriptionResourceDLL" type="string" length="255" nullable="yes" modularize="property" | ||
1022 | category="formatted" description="The Formatted string providing the full path to the language neutral file containing the MUI Manifest."/> | ||
1023 | <columnDefinition name="DescriptionResourceId" type="number" length="2" nullable="yes" | ||
1024 | minValue="0" maxValue="32767" description="The description name index for the shortcut. This must be a non-negative number."/> | ||
1025 | </tableDefinition> | ||
1026 | <tableDefinition name="MsiShortcutProperty"> | ||
1027 | <columnDefinition name="MsiShortcutProperty" type="string" length="72" primaryKey="yes" modularize="column" | ||
1028 | category="identifier" description="Primary key, non-localized token"/> | ||
1029 | <columnDefinition name="Shortcut_" type="string" length="72" modularize="column" | ||
1030 | keyTable="Shortcut" keyColumn="1" category="identifier" description="Foreign key into the Shortcut table"/> | ||
1031 | <columnDefinition name="PropertyKey" type="string" length="0" modularize="property" | ||
1032 | category="formatted" description="Canonical string representation of the Property Key being set"/> | ||
1033 | <columnDefinition name="PropVariantValue" type="string" length="0" modularize="property" | ||
1034 | category="formatted" description="String representation of the value in the property"/> | ||
1035 | </tableDefinition> | ||
1036 | <tableDefinition name="Signature" createSymbols="yes"> | ||
1037 | <columnDefinition name="Signature" type="string" length="72" primaryKey="yes" modularize="column" | ||
1038 | category="identifier" description="The table key. The Signature represents a unique file signature."/> | ||
1039 | <columnDefinition name="FileName" type="string" length="255" | ||
1040 | category="text" description="The name of the file. This may contain a "short name|long name" pair."/> | ||
1041 | <columnDefinition name="MinVersion" type="string" length="20" nullable="yes" | ||
1042 | category="text" description="The minimum version of the file."/> | ||
1043 | <columnDefinition name="MaxVersion" type="string" length="20" nullable="yes" | ||
1044 | category="text" description="The maximum version of the file."/> | ||
1045 | <columnDefinition name="MinSize" type="number" length="4" nullable="yes" | ||
1046 | minValue="0" maxValue="2147483647" description="The minimum size of the file."/> | ||
1047 | <columnDefinition name="MaxSize" type="number" length="4" nullable="yes" | ||
1048 | minValue="0" maxValue="2147483647" description="The maximum size of the file. "/> | ||
1049 | <columnDefinition name="MinDate" type="number" length="4" nullable="yes" | ||
1050 | minValue="0" maxValue="2147483647" description="The minimum creation date of the file."/> | ||
1051 | <columnDefinition name="MaxDate" type="number" length="4" nullable="yes" | ||
1052 | minValue="0" maxValue="2147483647" description="The maximum creation date of the file."/> | ||
1053 | <columnDefinition name="Languages" type="string" length="255" nullable="yes" | ||
1054 | category="language" description="The languages supported by the file."/> | ||
1055 | </tableDefinition> | ||
1056 | <tableDefinition name="TextStyle"> | ||
1057 | <columnDefinition name="TextStyle" type="string" length="72" primaryKey="yes" | ||
1058 | category="identifier" description="Name of the style. The primary key of this table. This name is embedded in the texts to indicate a style change."/> | ||
1059 | <columnDefinition name="FaceName" type="string" length="32" localizable="yes" | ||
1060 | category="text" description="A string indicating the name of the font used. Required. The string must be at most 31 characters long."/> | ||
1061 | <columnDefinition name="Size" type="number" length="2" localizable="yes" | ||
1062 | minValue="0" maxValue="32767" description="The size of the font used. This size is given in our units (1/12 of the system font height). Assuming that the system font is set to 12 point size, this is equivalent to the point size."/> | ||
1063 | <columnDefinition name="Color" type="number" length="4" nullable="yes" | ||
1064 | minValue="0" maxValue="16777215" description="A long integer indicating the color of the string in the RGB format (Red, Green, Blue each 0-255, RGB = R + 256*G + 256^2*B)."/> | ||
1065 | <columnDefinition name="StyleBits" type="number" length="2" nullable="yes" | ||
1066 | minValue="0" maxValue="15" description="A combination of style bits."/> | ||
1067 | </tableDefinition> | ||
1068 | <tableDefinition name="TypeLib"> | ||
1069 | <columnDefinition name="LibID" type="string" length="38" primaryKey="yes" | ||
1070 | category="guid" description="The GUID that represents the library."/> | ||
1071 | <columnDefinition name="Language" type="number" length="2" primaryKey="yes" | ||
1072 | minValue="0" maxValue="32767" description="The language of the library."/> | ||
1073 | <columnDefinition name="Component_" type="string" length="72" primaryKey="yes" modularize="column" | ||
1074 | keyTable="Component" keyColumn="1" category="identifier" description="Required foreign key into the Component Table, specifying the component for which to return a path when called through LocateComponent."/> | ||
1075 | <columnDefinition name="Version" type="number" length="4" nullable="yes" | ||
1076 | minValue="0" maxValue="16777215" description="The version of the library. The minor version is in the lower 8 bits of the integer. The major version is in the next 16 bits. "/> | ||
1077 | <columnDefinition name="Description" type="localized" length="128" nullable="yes" escapeIdtCharacters="yes" | ||
1078 | category="text"/> | ||
1079 | <columnDefinition name="Directory_" type="string" length="72" nullable="yes" modularize="column" | ||
1080 | keyTable="Directory" keyColumn="1" category="identifier" description="Optional. The foreign key into the Directory table denoting the path to the help file for the type library."/> | ||
1081 | <columnDefinition name="Feature_" type="string" length="38" | ||
1082 | keyTable="Feature" keyColumn="1" category="identifier" description="Required foreign key into the Feature Table, specifying the feature to validate or install in order for the type library to be operational."/> | ||
1083 | <columnDefinition name="Cost" type="number" length="4" nullable="yes" | ||
1084 | minValue="0" maxValue="2147483647" description="The cost associated with the registration of the typelib. This column is currently optional."/> | ||
1085 | </tableDefinition> | ||
1086 | <tableDefinition name="UIText"> | ||
1087 | <columnDefinition name="Key" type="string" length="72" primaryKey="yes" | ||
1088 | category="identifier" description="A unique key that identifies the particular string."/> | ||
1089 | <columnDefinition name="Text" type="localized" length="255" nullable="yes" escapeIdtCharacters="yes" | ||
1090 | category="text" description="The localized version of the string."/> | ||
1091 | </tableDefinition> | ||
1092 | <tableDefinition name="Upgrade"> | ||
1093 | <columnDefinition name="UpgradeCode" type="string" length="38" primaryKey="yes" | ||
1094 | category="guid" description="The UpgradeCode GUID belonging to the products in this set."/> | ||
1095 | <columnDefinition name="VersionMin" type="string" length="20" primaryKey="yes" nullable="yes" | ||
1096 | category="text" description="The minimum ProductVersion of the products in this set. The set may or may not include products with this particular version."/> | ||
1097 | <columnDefinition name="VersionMax" type="string" length="20" primaryKey="yes" nullable="yes" | ||
1098 | category="text" description="The maximum ProductVersion of the products in this set. The set may or may not include products with this particular version."/> | ||
1099 | <columnDefinition name="Language" type="string" length="255" primaryKey="yes" nullable="yes" localizable="yes" | ||
1100 | category="language" description="A comma-separated list of languages for either products in this set or products not in this set."/> | ||
1101 | <columnDefinition name="Attributes" type="number" length="4" primaryKey="yes" | ||
1102 | minValue="0" maxValue="2147483647" description="The attributes of this product set."/> | ||
1103 | <columnDefinition name="Remove" type="string" length="255" nullable="yes" | ||
1104 | category="formatted" description="The list of features to remove when uninstalling a product from this set. The default is "ALL"."/> | ||
1105 | <columnDefinition name="ActionProperty" type="string" length="72" | ||
1106 | category="upperCase" description="The property to set when a product in this set is found."/> | ||
1107 | </tableDefinition> | ||
1108 | <tableDefinition name="Verb"> | ||
1109 | <columnDefinition name="Extension_" type="string" length="255" primaryKey="yes" | ||
1110 | keyTable="Extension" keyColumn="1" category="text" description="The extension associated with the table row."/> | ||
1111 | <columnDefinition name="Verb" type="string" length="32" primaryKey="yes" | ||
1112 | category="text" description="The verb for the command."/> | ||
1113 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1114 | minValue="0" maxValue="32767" description="Order within the verbs for a particular extension. Also used simply to specify the default verb."/> | ||
1115 | <columnDefinition name="Command" type="localized" length="255" nullable="yes" modularize="property" | ||
1116 | category="formatted" description="The command text."/> | ||
1117 | <columnDefinition name="Argument" type="localized" length="255" nullable="yes" modularize="property" | ||
1118 | category="formatted" description="Optional value for the command arguments."/> | ||
1119 | </tableDefinition> | ||
1120 | <!-- Merge Module --> | ||
1121 | <tableDefinition name="ModuleAdminExecuteSequence"> | ||
1122 | <columnDefinition name="Action" type="string" length="64" primaryKey="yes" modularize="column" | ||
1123 | category="identifier" description="Action to insert"/> | ||
1124 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1125 | minValue="-4" maxValue="32767" description="Standard Sequence number"/> | ||
1126 | <columnDefinition name="BaseAction" type="string" length="64" nullable="yes" modularize="column" | ||
1127 | keyTable="ModuleAdminExecuteSequence" keyColumn="1" category="identifier" description="Base action to determine insert location."/> | ||
1128 | <columnDefinition name="After" type="number" length="2" nullable="yes" | ||
1129 | minValue="0" maxValue="1" description="Before (0) or After (1)"/> | ||
1130 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
1131 | category="condition"/> | ||
1132 | </tableDefinition> | ||
1133 | <tableDefinition name="ModuleAdminUISequence"> | ||
1134 | <columnDefinition name="Action" type="string" length="64" primaryKey="yes" modularize="column" | ||
1135 | category="identifier" description="Action to insert"/> | ||
1136 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1137 | minValue="-4" maxValue="32767" description="Standard Sequence number"/> | ||
1138 | <columnDefinition name="BaseAction" type="string" length="64" nullable="yes" modularize="column" | ||
1139 | keyTable="ModuleAdminUISequence" keyColumn="1" category="identifier" description="Base action to determine insert location."/> | ||
1140 | <columnDefinition name="After" type="number" length="2" nullable="yes" | ||
1141 | minValue="0" maxValue="1" description="Before (0) or After (1)"/> | ||
1142 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
1143 | category="condition"/> | ||
1144 | </tableDefinition> | ||
1145 | <tableDefinition name="ModuleAdvtExecuteSequence"> | ||
1146 | <columnDefinition name="Action" type="string" length="64" primaryKey="yes" modularize="column" | ||
1147 | category="identifier" description="Action to insert"/> | ||
1148 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1149 | minValue="-4" maxValue="32767" description="Standard Sequence number"/> | ||
1150 | <columnDefinition name="BaseAction" type="string" length="64" nullable="yes" modularize="column" | ||
1151 | keyTable="ModuleAdvtExecuteSequence" keyColumn="1" category="identifier" description="Base action to determine insert location."/> | ||
1152 | <columnDefinition name="After" type="number" length="2" nullable="yes" | ||
1153 | minValue="0" maxValue="1" description="Before (0) or After (1)"/> | ||
1154 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
1155 | category="condition"/> | ||
1156 | </tableDefinition> | ||
1157 | <tableDefinition name="ModuleAdvtUISequence"> | ||
1158 | <columnDefinition name="Action" type="string" length="64" primaryKey="yes" modularize="column" | ||
1159 | category="identifier" description="Action to insert"/> | ||
1160 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1161 | minValue="-4" maxValue="32767" description="Standard Sequence number"/> | ||
1162 | <columnDefinition name="BaseAction" type="string" length="64" nullable="yes" modularize="column" | ||
1163 | keyTable="ModuleAdvtUISequence" keyColumn="1" category="identifier" description="Base action to determine insert location."/> | ||
1164 | <columnDefinition name="After" type="number" length="2" nullable="yes" | ||
1165 | minValue="0" maxValue="1" description="Before (0) or After (1)"/> | ||
1166 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
1167 | category="condition"/> | ||
1168 | </tableDefinition> | ||
1169 | <tableDefinition name="ModuleComponents"> | ||
1170 | <columnDefinition name="Component" type="string" length="72" primaryKey="yes" modularize="column" | ||
1171 | keyTable="Component" keyColumn="1" category="identifier" description="Component contained in the module."/> | ||
1172 | <columnDefinition name="ModuleID" type="string" length="72" primaryKey="yes" modularize="column" | ||
1173 | keyTable="ModuleSignature" keyColumn="1" category="identifier" description="Module containing the component."/> | ||
1174 | <columnDefinition name="Language" type="number" length="2" primaryKey="yes" localizable="yes" | ||
1175 | keyTable="ModuleSignature" keyColumn="2" description="Default language ID for module (may be changed by transform)."/> | ||
1176 | </tableDefinition> | ||
1177 | <tableDefinition name="ModuleSignature"> | ||
1178 | <columnDefinition name="ModuleID" type="string" length="72" primaryKey="yes" modularize="column" | ||
1179 | category="identifier" description="Module identifier (String.GUID)."/> | ||
1180 | <columnDefinition name="Language" type="number" length="2" primaryKey="yes" localizable="yes" | ||
1181 | description="Default decimal language of module."/> | ||
1182 | <columnDefinition name="Version" type="string" length="32" | ||
1183 | category="version" description="Version of the module."/> | ||
1184 | </tableDefinition> | ||
1185 | <tableDefinition name="ModuleConfiguration"> | ||
1186 | <columnDefinition name="Name" type="string" length="72" primaryKey="yes" | ||
1187 | category="identifier" description="Unique identifier for this row."/> | ||
1188 | <columnDefinition name="Format" type="number" length="2" | ||
1189 | minValue="0" maxValue="3" description="Format of this item."/> | ||
1190 | <columnDefinition name="Type" type="string" length="72" nullable="yes" | ||
1191 | category="identifier" description="Additional type information for this item."/> | ||
1192 | <columnDefinition name="ContextData" type="localized" length="0" nullable="yes" | ||
1193 | category="text" description="Additional context information about this item."/> | ||
1194 | <columnDefinition name="DefaultValue" type="localized" length="0" nullable="yes" | ||
1195 | category="text" description="Default value for this item."/> | ||
1196 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" | ||
1197 | minValue="0" maxValue="3" description="Additional type-specific attributes."/> | ||
1198 | <columnDefinition name="DisplayName" type="localized" length="72" nullable="yes" | ||
1199 | category="text" description="A short human-readable name for this item."/> | ||
1200 | <columnDefinition name="Description" type="localized" length="0" nullable="yes" | ||
1201 | category="text" description="A human-readable description."/> | ||
1202 | <columnDefinition name="HelpLocation" type="string" length="0" nullable="yes" | ||
1203 | category="text" description="Filename or namespace of the context-sensitive help for this item."/> | ||
1204 | <columnDefinition name="HelpKeyword" type="string" length="0" nullable="yes" | ||
1205 | category="text" description="Keyword index into the HelpLocation for this item."/> | ||
1206 | </tableDefinition> | ||
1207 | <tableDefinition name="ModuleDependency"> | ||
1208 | <columnDefinition name="ModuleID" type="string" length="72" primaryKey="yes" modularize="column" | ||
1209 | keyTable="ModuleSignature" keyColumn="1" category="identifier" description="Module requiring the dependency."/> | ||
1210 | <columnDefinition name="ModuleLanguage" type="number" length="2" primaryKey="yes" localizable="yes" | ||
1211 | keyTable="ModuleSignature" keyColumn="2" description="Language of module requiring the dependency."/> | ||
1212 | <columnDefinition name="RequiredID" type="string" length="72" primaryKey="yes" | ||
1213 | description="String.GUID of required module."/> | ||
1214 | <columnDefinition name="RequiredLanguage" type="number" length="2" primaryKey="yes" localizable="yes" | ||
1215 | description="LanguageID of the required module."/> | ||
1216 | <columnDefinition name="RequiredVersion" type="string" length="32" nullable="yes" | ||
1217 | category="version" description="Version of the required version."/> | ||
1218 | </tableDefinition> | ||
1219 | <tableDefinition name="ModuleExclusion"> | ||
1220 | <columnDefinition name="ModuleID" type="string" length="72" primaryKey="yes" modularize="column" | ||
1221 | keyTable="ModuleSignature" keyColumn="1" category="identifier" description="String.GUID of module with exclusion requirement."/> | ||
1222 | <columnDefinition name="ModuleLanguage" type="number" length="2" primaryKey="yes" localizable="yes" | ||
1223 | keyTable="ModuleSignature" keyColumn="2" description="LanguageID of module with exclusion requirement."/> | ||
1224 | <columnDefinition name="ExcludedID" type="string" length="72" primaryKey="yes" | ||
1225 | description="String.GUID of excluded module."/> | ||
1226 | <columnDefinition name="ExcludedLanguage" type="number" length="2" primaryKey="yes" localizable="yes" | ||
1227 | description="Language of excluded module."/> | ||
1228 | <columnDefinition name="ExcludedMinVersion" type="string" length="32" nullable="yes" | ||
1229 | category="version" description="Minimum version of excluded module."/> | ||
1230 | <columnDefinition name="ExcludedMaxVersion" type="string" length="32" nullable="yes" | ||
1231 | category="version" description="Maximum version of excluded module."/> | ||
1232 | </tableDefinition> | ||
1233 | <tableDefinition name="ModuleIgnoreTable"> | ||
1234 | <columnDefinition name="Table" type="string" length="72" primaryKey="yes" | ||
1235 | category="identifier" description="Table name to ignore during merge operation."/> | ||
1236 | </tableDefinition> | ||
1237 | <tableDefinition name="ModuleInstallExecuteSequence"> | ||
1238 | <columnDefinition name="Action" type="string" length="64" primaryKey="yes" modularize="column" | ||
1239 | category="identifier" description="Action to insert"/> | ||
1240 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1241 | minValue="-4" maxValue="32767" description="Standard Sequence number"/> | ||
1242 | <columnDefinition name="BaseAction" type="string" length="64" nullable="yes" modularize="column" | ||
1243 | keyTable="ModuleInstallExecuteSequence" keyColumn="1" category="identifier" description="Base action to determine insert location."/> | ||
1244 | <columnDefinition name="After" type="number" length="2" nullable="yes" | ||
1245 | minValue="0" maxValue="1" description="Before (0) or After (1)"/> | ||
1246 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
1247 | category="condition"/> | ||
1248 | </tableDefinition> | ||
1249 | <tableDefinition name="ModuleInstallUISequence"> | ||
1250 | <columnDefinition name="Action" type="string" length="64" primaryKey="yes" modularize="column" | ||
1251 | category="identifier" description="Action to insert"/> | ||
1252 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes" | ||
1253 | minValue="-4" maxValue="32767" description="Standard Sequence number"/> | ||
1254 | <columnDefinition name="BaseAction" type="string" length="64" nullable="yes" modularize="column" | ||
1255 | keyTable="ModuleInstallUISequence" keyColumn="1" category="identifier" description="Base action to determine insert location."/> | ||
1256 | <columnDefinition name="After" type="number" length="2" nullable="yes" | ||
1257 | minValue="0" maxValue="1" description="Before (0) or After (1)"/> | ||
1258 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" modularize="condition" localizable="yes" | ||
1259 | category="condition"/> | ||
1260 | </tableDefinition> | ||
1261 | <tableDefinition name="ModuleSubstitution"> | ||
1262 | <columnDefinition name="Table" type="string" length="72" primaryKey="yes" | ||
1263 | category="identifier" description="Table containing the data to be modified."/> | ||
1264 | <columnDefinition name="Row" type="string" length="0" primaryKey="yes" modularize="semicolonDelimited" | ||
1265 | category="text" description="Row containing the data to be modified."/> | ||
1266 | <columnDefinition name="Column" type="string" length="72" primaryKey="yes" | ||
1267 | category="identifier" description="Column containing the data to be modified."/> | ||
1268 | <columnDefinition name="Value" type="localized" length="0" nullable="yes" | ||
1269 | category="text" description="Template for modification data."/> | ||
1270 | </tableDefinition> | ||
1271 | <tableDefinition name="Properties"> | ||
1272 | <columnDefinition name="Name" type="string" length="72" primaryKey="yes" | ||
1273 | category="text" description="Primary key, non-localized token"/> | ||
1274 | <columnDefinition name="Value" type="string" length="0" | ||
1275 | category="text" description="Value of the property"/> | ||
1276 | </tableDefinition> | ||
1277 | <tableDefinition name="ImageFamilies"> | ||
1278 | <columnDefinition name="Family" type="string" length="8" primaryKey="yes" | ||
1279 | category="text" description="Primary key"/> | ||
1280 | <columnDefinition name="MediaSrcPropName" type="string" length="72" nullable="yes" | ||
1281 | category="text"/> | ||
1282 | <columnDefinition name="MediaDiskId" type="number" length="0" nullable="yes" | ||
1283 | category="integer"/> | ||
1284 | <columnDefinition name="FileSequenceStart" type="number" length="4" nullable="yes" | ||
1285 | minValue="1" maxValue="214743647" category="integer"/> | ||
1286 | <columnDefinition name="DiskPrompt" type="string" length="128" nullable="yes" escapeIdtCharacters="yes" localizable="yes" | ||
1287 | category="text"/> | ||
1288 | <columnDefinition name="VolumeLabel" type="string" length="32" nullable="yes" | ||
1289 | category="text"/> | ||
1290 | </tableDefinition> | ||
1291 | <tableDefinition name="UpgradedImages"> | ||
1292 | <columnDefinition name="Upgraded" type="string" length="13" primaryKey="yes" | ||
1293 | category="text" description="Primary key"/> | ||
1294 | <columnDefinition name="MsiPath" type="string" length="255" | ||
1295 | category="text"/> | ||
1296 | <columnDefinition name="PatchMsiPath" type="string" length="255" nullable="yes" | ||
1297 | category="text"/> | ||
1298 | <columnDefinition name="SymbolPaths" type="string" length="255" nullable="yes" | ||
1299 | category="text"/> | ||
1300 | <columnDefinition name="Family" type="string" length="8" | ||
1301 | keyTable="ImageFamilies" keyColumn="1" category="text" description="Foreign key, Family to which this image belongs"/> | ||
1302 | </tableDefinition> | ||
1303 | <tableDefinition name="UpgradedFilesToIgnore"> | ||
1304 | <columnDefinition name="Upgraded" type="string" length="13" primaryKey="yes" | ||
1305 | keyTable="UpgradedImages" keyColumn="1" category="text" description="Foreign key, Upgraded image"/> | ||
1306 | <columnDefinition name="FTK" type="string" length="255" primaryKey="yes" modularize="column" | ||
1307 | keyTable="File" keyColumn="1" category="text" description="Foreign key, File to ignore"/> | ||
1308 | </tableDefinition> | ||
1309 | <tableDefinition name="UpgradedFiles_OptionalData"> | ||
1310 | <columnDefinition name="Upgraded" type="string" length="13" primaryKey="yes" | ||
1311 | keyTable="UpgradedImages" keyColumn="1" category="text" description="Foreign key, Upgraded image"/> | ||
1312 | <columnDefinition name="FTK" type="string" length="255" primaryKey="yes" modularize="column" | ||
1313 | keyTable="File" keyColumn="1" category="text" description="Foreign key, File to ignore"/> | ||
1314 | <columnDefinition name="SymbolPaths" type="string" length="255" nullable="yes" | ||
1315 | category="text"/> | ||
1316 | <columnDefinition name="AllowIgnoreOnPatchError" type="number" length="0" nullable="yes" | ||
1317 | category="integer"/> | ||
1318 | <columnDefinition name="IncludeWholeFile" type="number" length="0" nullable="yes" | ||
1319 | category="integer"/> | ||
1320 | </tableDefinition> | ||
1321 | <tableDefinition name="TargetImages" createSymbols="yes"> | ||
1322 | <columnDefinition name="Target" type="string" length="13" primaryKey="yes" | ||
1323 | category="text"/> | ||
1324 | <columnDefinition name="MsiPath" type="string" length="255" | ||
1325 | category="text"/> | ||
1326 | <columnDefinition name="SymbolPaths" type="string" length="255" nullable="yes" | ||
1327 | category="text"/> | ||
1328 | <columnDefinition name="Upgraded" type="string" length="13" | ||
1329 | keyTable="UpgradedImages" keyColumn="1" category="text" description="Foreign key, Upgraded image"/> | ||
1330 | <columnDefinition name="Order" type="number" length="0" | ||
1331 | category="integer"/> | ||
1332 | <columnDefinition name="ProductValidateFlags" type="string" length="16" nullable="yes" | ||
1333 | category="text"/> | ||
1334 | <columnDefinition name="IgnoreMissingSrcFiles" type="number" length="0" | ||
1335 | category="integer"/> | ||
1336 | </tableDefinition> | ||
1337 | <tableDefinition name="TargetFiles_OptionalData"> | ||
1338 | <columnDefinition name="Target" type="string" length="13" primaryKey="yes" | ||
1339 | keyTable="TargetImages" keyColumn="1" category="text" description="Foreign key, Target image"/> | ||
1340 | <columnDefinition name="FTK" type="string" length="255" primaryKey="yes" modularize="column" | ||
1341 | keyTable="File" keyColumn="1" category="text" description="Foreign key, File to ignore"/> | ||
1342 | <columnDefinition name="SymbolPaths" type="string" length="255" nullable="yes" | ||
1343 | category="text"/> | ||
1344 | <columnDefinition name="IgnoreOffsets" type="string" length="255" nullable="yes" | ||
1345 | category="text"/> | ||
1346 | <columnDefinition name="IgnoreLengths" type="string" length="255" nullable="yes" | ||
1347 | category="text"/> | ||
1348 | <columnDefinition name="RetainOffsets" type="string" length="255" nullable="yes" | ||
1349 | category="text"/> | ||
1350 | </tableDefinition> | ||
1351 | <tableDefinition name="FamilyFileRanges"> | ||
1352 | <columnDefinition name="Family" type="string" length="8" primaryKey="yes" | ||
1353 | keyTable="ImageFamilies" keyColumn="1" category="text" description="Foreign key, Family"/> | ||
1354 | <columnDefinition name="FTK" type="string" length="255" primaryKey="yes" modularize="column" | ||
1355 | keyTable="File" keyColumn="1" category="text" description="Foreign key, File to ignore"/> | ||
1356 | <columnDefinition name="RetainOffsets" type="string" length="128" | ||
1357 | category="text"/> | ||
1358 | <columnDefinition name="RetainLengths" type="string" length="128" | ||
1359 | category="text"/> | ||
1360 | </tableDefinition> | ||
1361 | <tableDefinition name="ExternalFiles"> | ||
1362 | <columnDefinition name="Family" type="string" length="8" primaryKey="yes" | ||
1363 | keyTable="ImageFamilies" keyColumn="1" category="text" description="Foreign key, Family"/> | ||
1364 | <columnDefinition name="FTK" type="string" length="255" primaryKey="yes" modularize="column" | ||
1365 | keyTable="File" keyColumn="1" category="text" description="Foreign key, File to ignore"/> | ||
1366 | <columnDefinition name="FilePath" type="string" length="255" primaryKey="yes" | ||
1367 | category="text"/> | ||
1368 | <columnDefinition name="SymbolPaths" type="string" length="255" nullable="yes" | ||
1369 | category="text"/> | ||
1370 | <columnDefinition name="IgnoreOffsets" type="string" length="255" nullable="yes" | ||
1371 | category="text"/> | ||
1372 | <columnDefinition name="IgnoreLengths" type="string" length="255" nullable="yes" | ||
1373 | category="text"/> | ||
1374 | <columnDefinition name="RetainOffsets" type="string" length="255" nullable="yes" | ||
1375 | category="text"/> | ||
1376 | <columnDefinition name="Order" type="number" length="0" | ||
1377 | category="integer"/> | ||
1378 | </tableDefinition> | ||
1379 | <tableDefinition name="WixAction" createSymbols="yes" unreal="yes"> | ||
1380 | <columnDefinition name="SequenceTable" type="string" length="62" primaryKey="yes"/> | ||
1381 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes"/> | ||
1382 | <columnDefinition name="Condition" type="string" length="255" nullable="yes" localizable="yes"/> | ||
1383 | <columnDefinition name="Sequence" type="number" length="2" nullable="yes"/> | ||
1384 | <columnDefinition name="Before" type="string" length="72" nullable="yes"/> | ||
1385 | <columnDefinition name="After" type="string" length="72" nullable="yes"/> | ||
1386 | <columnDefinition name="Overridable" type="number" length="2" nullable="yes"/> | ||
1387 | </tableDefinition> | ||
1388 | <tableDefinition name="WixBBControl" createSymbols="yes" unreal="yes"> | ||
1389 | <columnDefinition name="Billboard_" type="string" length="50" primaryKey="yes" modularize="column"/> | ||
1390 | <columnDefinition name="BBControl_" type="string" length="50" primaryKey="yes"/> | ||
1391 | <columnDefinition name="SourceFile" type="object" length="0"/> | ||
1392 | </tableDefinition> | ||
1393 | <tableDefinition name="WixComplexReference" unreal="yes"> | ||
1394 | <columnDefinition name="Parent" type="string" length="0" localizable="yes"/> | ||
1395 | <columnDefinition name="ParentAttributes" type="number" length="4"/> | ||
1396 | <columnDefinition name="ParentLanguage" type="string" length="0" nullable="yes"/> | ||
1397 | <columnDefinition name="Child" type="string" length="0" localizable="yes"/> | ||
1398 | <columnDefinition name="ChildAttributes" type="number" length="4"/> | ||
1399 | <columnDefinition name="Attributes" type="number" length="4"/> | ||
1400 | </tableDefinition> | ||
1401 | <tableDefinition name="WixComponentGroup" createSymbols="yes" unreal="yes"> | ||
1402 | <columnDefinition name="WixComponentGroup" type="string" length="0" primaryKey="yes"/> | ||
1403 | </tableDefinition> | ||
1404 | <tableDefinition name="WixControl" unreal="yes"> | ||
1405 | <columnDefinition name="Dialog_" type="string" length="72" primaryKey="yes" modularize="column"/> | ||
1406 | <columnDefinition name="Control_" type="string" length="50" primaryKey="yes"/> | ||
1407 | <columnDefinition name="SourceFile" type="object" length="0"/> | ||
1408 | </tableDefinition> | ||
1409 | <tableDefinition name="WixCustomRow" unreal="yes"> | ||
1410 | <columnDefinition name="Table" type="string" length="62"/> | ||
1411 | <columnDefinition name="FieldData" type="string" length="0"/> | ||
1412 | </tableDefinition> | ||
1413 | <tableDefinition name="WixCustomTable" createSymbols="yes" unreal="yes"> | ||
1414 | <columnDefinition name="Table" type="string" length="62" primaryKey="yes"/> | ||
1415 | <columnDefinition name="ColumnCount" type="number" length="2"/> | ||
1416 | <columnDefinition name="ColumnNames" type="string" length="0"/> | ||
1417 | <columnDefinition name="ColumnTypes" type="string" length="0"/> | ||
1418 | <columnDefinition name="PrimaryKeys" type="string" length="0"/> | ||
1419 | <columnDefinition name="MinValues" type="string" length="0"/> | ||
1420 | <columnDefinition name="MaxValues" type="string" length="0"/> | ||
1421 | <columnDefinition name="KeyTables" type="string" length="0"/> | ||
1422 | <columnDefinition name="KeyColumns" type="string" length="0"/> | ||
1423 | <columnDefinition name="Categories" type="string" length="0"/> | ||
1424 | <columnDefinition name="Sets" type="string" length="0"/> | ||
1425 | <columnDefinition name="Descriptions" type="string" length="0"/> | ||
1426 | <columnDefinition name="Modularizations" type="string" length="0"/> | ||
1427 | <columnDefinition name="BootstrapperApplicationData" type="number" length="2"/> | ||
1428 | </tableDefinition> | ||
1429 | <tableDefinition name="WixDirectory" unreal="yes"> | ||
1430 | <columnDefinition name="Directory_" type="string" length="0" primaryKey="yes" modularize="column"/> | ||
1431 | <columnDefinition name="ComponentGuidGenerationSeed" type="string" length="38" nullable="yes"/> | ||
1432 | </tableDefinition> | ||
1433 | <tableDefinition name="WixEnsureTable" unreal="yes"> | ||
1434 | <columnDefinition name="Table" type="string" length="31"/> | ||
1435 | </tableDefinition> | ||
1436 | <tableDefinition name="WixFeatureGroup" createSymbols="yes" unreal="yes"> | ||
1437 | <columnDefinition name="WixFeatureGroup" type="string" length="0" primaryKey="yes"/> | ||
1438 | </tableDefinition> | ||
1439 | <tableDefinition name="WixPatchFamilyGroup" createSymbols="yes" unreal="yes"> | ||
1440 | <columnDefinition name="WixPatchFamilyGroup" type="string" length="0" primaryKey="yes"/> | ||
1441 | </tableDefinition> | ||
1442 | <tableDefinition name="WixGroup" unreal="yes"> | ||
1443 | <columnDefinition name="ParentId" type="string" length="0" primaryKey="yes" nullable="no" category="identifier" | ||
1444 | description="Primary key used to identify a particular record in a parent table."/> | ||
1445 | <columnDefinition name="ParentType" type="string" length="0" primaryKey="yes" nullable="no" | ||
1446 | description="Primary key used to identify a particular parent type in a parent table."/> | ||
1447 | <columnDefinition name="ChildId" type="string" length="0" primaryKey="yes" nullable="no" category="identifier" | ||
1448 | description="Primary key used to identify a particular record in a child table."/> | ||
1449 | <columnDefinition name="ChildType" type="string" length="0" primaryKey="yes" nullable="no" | ||
1450 | description="Primary key used to identify a particular child type in a child table."/> | ||
1451 | </tableDefinition> | ||
1452 | <tableDefinition name="WixFeatureModules" unreal="yes"> | ||
1453 | <columnDefinition name="Feature_" type="string" length="38" primaryKey="yes"/> | ||
1454 | <columnDefinition name="WixMerge_" type="string" length="72" primaryKey="yes"/> | ||
1455 | </tableDefinition> | ||
1456 | <tableDefinition name="WixFile" unreal="yes"> | ||
1457 | <columnDefinition name="File_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1458 | modularize="column" keyTable="File" keyColumn="1" /> | ||
1459 | <columnDefinition name="AssemblyType" type="number" length="2" minValue="0" maxValue="1" /> | ||
1460 | <columnDefinition name="File_AssemblyManifest" type="string" length="72" category="identifier" nullable="yes" | ||
1461 | modularize="column" keyTable="File" keyColumn="1" /> | ||
1462 | <columnDefinition name="File_AssemblyApplication" type="string" length="72" category="identifier" nullable="yes" | ||
1463 | modularize="column" keyTable="File" keyColumn="1" /> | ||
1464 | <columnDefinition name="Directory_" type="string" length="72" modularize="column" keyTable="Directory" keyColumn="1" /> | ||
1465 | <columnDefinition name="DiskId" type="number" length="4" nullable="yes"/> | ||
1466 | <columnDefinition name="Source" type="object" length="0"/> | ||
1467 | <columnDefinition name="ProcessorArchitecture" type="string" length="0" nullable="yes"/> | ||
1468 | <columnDefinition name="PatchGroup" type="number" length="4" /> | ||
1469 | <columnDefinition name="Attributes" type="number" length="4"/> | ||
1470 | <columnDefinition name="PatchAttributes" type="number" length="4" nullable="yes"/> | ||
1471 | <columnDefinition name="DeltaPatchHeaderSource" type="string" length="0"/> | ||
1472 | </tableDefinition> | ||
1473 | <tableDefinition name="WixBindUpdatedFiles" unreal="yes"> | ||
1474 | <columnDefinition name="File_" type="string" length="0" primaryKey="yes" modularize="column" keyTable="File" keyColumn="1" category="identifier" /> | ||
1475 | </tableDefinition> | ||
1476 | <tableDefinition name="WixBuildInfo" unreal="yes"> | ||
1477 | <columnDefinition name="WixVersion" type="string" length="20" | ||
1478 | category="text" description="Version number of WiX."/> | ||
1479 | <columnDefinition name="WixOutputFile" type="string" length="0" nullable="yes" escapeIdtCharacters="yes" | ||
1480 | category="text" description="Path to output file, if supplied."/> | ||
1481 | <columnDefinition name="WixProjectFile" type="string" length="0" nullable="yes" escapeIdtCharacters="yes" | ||
1482 | category="text" description="Path to .wixproj file, if supplied."/> | ||
1483 | <columnDefinition name="WixPdbFile" type="string" length="0" nullable="yes" escapeIdtCharacters="yes" | ||
1484 | category="text" description="Path to .wixpdb file, if supplied."/> | ||
1485 | </tableDefinition> | ||
1486 | <tableDefinition name="WixFragment" createSymbols="yes" unreal="yes"> | ||
1487 | <columnDefinition name="WixFragment" type="string" length="0" primaryKey="yes"/> | ||
1488 | </tableDefinition> | ||
1489 | <tableDefinition name="WixInstanceComponent" unreal="yes"> | ||
1490 | <columnDefinition name="Component_" type="string" length="0" primaryKey="yes" modularize="column"/> | ||
1491 | </tableDefinition> | ||
1492 | <tableDefinition name="WixInstanceTransforms" unreal="yes" createSymbols="yes"> | ||
1493 | <columnDefinition name="Id" type="string" length="0" primaryKey="yes"/> | ||
1494 | <columnDefinition name="PropertyId" type="string" length="0"/> | ||
1495 | <columnDefinition name="ProductCode" type="string" length="0" category="guid"/> | ||
1496 | <columnDefinition name="ProductName" type="localized" localizable="yes" length="0" nullable="yes"/> | ||
1497 | <columnDefinition name="UpgradeCode" type="string" length="38" category="guid" nullable="yes"/> | ||
1498 | </tableDefinition> | ||
1499 | <tableDefinition name="WixMedia" unreal="yes"> | ||
1500 | <columnDefinition name="DiskId_" type="number" length="2" primaryKey="yes"/> | ||
1501 | <columnDefinition name="CompressionLevel" type="number" length="2" nullable="yes" minValue="0" maxValue="4" /> | ||
1502 | <columnDefinition name="Layout" type="string" length="0" nullable="yes"/> | ||
1503 | </tableDefinition> | ||
1504 | <tableDefinition name="WixMediaTemplate" unreal="yes"> | ||
1505 | <columnDefinition name="CabinetTemplate" type="string" length="0" nullable="yes"/> | ||
1506 | <columnDefinition name="CompressionLevel" type="number" length="2" nullable="yes" minValue="0" maxValue="4" /> | ||
1507 | <columnDefinition name="DiskPrompt" type="string" length="0" nullable="yes"/> | ||
1508 | <columnDefinition name="VolumeLabel" type="string" length="0" nullable="yes"/> | ||
1509 | <columnDefinition name="MaximumUncompressedMediaSize" type="number" length="4" /> | ||
1510 | <columnDefinition name="MaximumCabinetSizeForLargeFileSplitting" type="number" length="4" /> | ||
1511 | </tableDefinition> | ||
1512 | <tableDefinition name="WixMerge" createSymbols="yes" unreal="yes"> | ||
1513 | <columnDefinition name="WixMerge" type="string" length="72" primaryKey="yes"/> | ||
1514 | <columnDefinition name="Language" type="number" length="2" localizable="yes"/> | ||
1515 | <columnDefinition name="Directory_" type="string" nullable="yes" length="72"/> | ||
1516 | <columnDefinition name="SourceFile" type="object" length="0"/> | ||
1517 | <columnDefinition name="DiskId" type="number" length="2"/> | ||
1518 | <columnDefinition name="FileCompression" type="number" length="2" nullable="yes"/> | ||
1519 | <columnDefinition name="ConfigurationData" type="string" length="255" nullable="yes"/> | ||
1520 | <columnDefinition name="Feature_" type="string" length="72"/> | ||
1521 | </tableDefinition> | ||
1522 | <tableDefinition name="WixOrdering" createSymbols="yes" unreal="yes"> | ||
1523 | <columnDefinition name="ItemType" type="string" length="0" primaryKey="yes" nullable="no" | ||
1524 | description="Primary key used to identify the item in another table."/> | ||
1525 | <columnDefinition name="ItemId_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1526 | description="Reference to an entry in another table."/> | ||
1527 | <columnDefinition name="DependsOnType" type="string" length="0" primaryKey="yes" nullable="no" | ||
1528 | description="Primary key used to identify the item in another table."/> | ||
1529 | <columnDefinition name="DependsOnId_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1530 | description="Reference to an entry in another table."/> | ||
1531 | </tableDefinition> | ||
1532 | <tableDefinition name="WixDeltaPatchFile" unreal="yes"> | ||
1533 | <columnDefinition name="File_" type="string" length="72" primaryKey="yes" modularize="column" keyTable="File" keyColumn="1" /> | ||
1534 | <columnDefinition name="RetainLengths" type="preserved" length="0" nullable="yes" category="text"/> | ||
1535 | <columnDefinition name="IgnoreOffsets" type="preserved" length="0" nullable="yes" category="text"/> | ||
1536 | <columnDefinition name="IgnoreLengths" type="preserved" length="0" nullable="yes" category="text"/> | ||
1537 | <columnDefinition name="RetainOffsets" type="preserved" length="0" nullable="yes" category="text"/> | ||
1538 | <columnDefinition name="SymbolPaths" type="preserved" length="0" nullable="yes" category="text"/> | ||
1539 | </tableDefinition> | ||
1540 | <tableDefinition name="WixDeltaPatchSymbolPaths" unreal="yes"> | ||
1541 | <columnDefinition name="Id" type="string" length="72" primaryKey="yes" /> | ||
1542 | <columnDefinition name="Type" type="number" length="2" primaryKey="yes" minValue="0" maxValue="4" /> | ||
1543 | <columnDefinition name="SymbolPaths" type="preserved" length="0" category="text"/> | ||
1544 | </tableDefinition> | ||
1545 | <tableDefinition name="WixProperty" unreal="yes"> | ||
1546 | <columnDefinition name="Property_" type="string" length="72" modularize="column"/> | ||
1547 | <columnDefinition name="Attributes" type="number" length="4"/> | ||
1548 | </tableDefinition> | ||
1549 | <tableDefinition name="WixSimpleReference" unreal="yes"> | ||
1550 | <columnDefinition name="Table" type="string" length="32"/> | ||
1551 | <columnDefinition name="PrimaryKeys" type="string" length="0"/> | ||
1552 | </tableDefinition> | ||
1553 | <tableDefinition name="WixSuppressAction" unreal="yes"> | ||
1554 | <columnDefinition name="SequenceTable" type="string" length="72" primaryKey="yes"/> | ||
1555 | <columnDefinition name="Action" type="string" length="72" primaryKey="yes"/> | ||
1556 | </tableDefinition> | ||
1557 | <tableDefinition name="WixSuppressModularization" unreal="yes"> | ||
1558 | <columnDefinition name="WixSuppressModularization" type="string" length="72"/> | ||
1559 | </tableDefinition> | ||
1560 | <tableDefinition name="WixPatchBaseline" unreal="yes"> | ||
1561 | <columnDefinition name="WixPatchBaseline" type="string" length="72" primaryKey="yes" | ||
1562 | category="identifier" description="Primary key used to identify sets of transforms in a patch."/> | ||
1563 | <columnDefinition name="DiskId" type="number" length="2"/> | ||
1564 | <columnDefinition name="ValidationFlags" type="number" length="4" category="integer" description="Patch transform validation flags for the associated patch baseline."/> | ||
1565 | </tableDefinition> | ||
1566 | <tableDefinition name="WixPatchRef" unreal="yes"> | ||
1567 | <columnDefinition name="Table" type="string" length="32"/> | ||
1568 | <columnDefinition name="PrimaryKeys" type="string" length="0"/> | ||
1569 | </tableDefinition> | ||
1570 | <tableDefinition name="WixPatchId" unreal="yes"> | ||
1571 | <columnDefinition name="ProductCode" type="string" length="38" nullable="no"/> | ||
1572 | <columnDefinition name="ClientPatchId" type="string" length="72" nullable="no"/> | ||
1573 | <columnDefinition name="OptimizePatchSizeForLargeFiles" type="number" length="2" nullable="yes" | ||
1574 | minValue="0" maxValue="1"/> | ||
1575 | <columnDefinition name="ApiPatchingSymbolFlags" type="number" length="4" nullable="yes" | ||
1576 | minValue="0" maxValue="7"/> | ||
1577 | </tableDefinition> | ||
1578 | <tableDefinition name="WixPatchTarget" unreal="yes"> | ||
1579 | <columnDefinition name="ProductCode" type="string" length="38" nullable="no" /> | ||
1580 | </tableDefinition> | ||
1581 | <tableDefinition name="WixPatchMetadata" unreal="yes"> | ||
1582 | <columnDefinition name="Property" type="string" length="72" primaryKey="yes"/> | ||
1583 | <columnDefinition name="Value" type="localized" length="0"/> | ||
1584 | </tableDefinition> | ||
1585 | <tableDefinition name="WixUI" createSymbols="yes" unreal="yes"> | ||
1586 | <columnDefinition name="WixUI" type="string" length="0" primaryKey="yes"/> | ||
1587 | </tableDefinition> | ||
1588 | <tableDefinition name="WixVariable" unreal="yes"> | ||
1589 | <columnDefinition name="WixVariable" type="string" length="0"/> | ||
1590 | <columnDefinition name="Value" type="localized" length="0" nullable="yes"/> | ||
1591 | <columnDefinition name="Attributes" type="number" length="4"/> | ||
1592 | </tableDefinition> | ||
1593 | <tableDefinition name="WixBundleContainer" createSymbols="yes" unreal="yes"> | ||
1594 | <columnDefinition name="WixBundleContainer" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1595 | <columnDefinition name="Name" type="string" length="0"/> | ||
1596 | <columnDefinition name="Type" type="number" length="2" minValue="0" maxValue="1" /> | ||
1597 | <columnDefinition name="DownloadUrl" type="string" length="0" nullable="yes" /> | ||
1598 | <columnDefinition name="Size" type="number" length="4" minValue="0" nullable="yes" /> | ||
1599 | <columnDefinition name="Hash" type="string" length="0" nullable="yes" /> | ||
1600 | <columnDefinition name="AttachedContainerIndex" type="number" length="2" nullable="yes" /> | ||
1601 | <columnDefinition name="WorkingPath" type="string" length="0" nullable="yes" /> | ||
1602 | </tableDefinition> | ||
1603 | <tableDefinition name="WixBundlePayloadGroup" createSymbols="yes" unreal="yes"> | ||
1604 | <columnDefinition name="WixBundlePayloadGroup" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1605 | </tableDefinition> | ||
1606 | <tableDefinition name="WixBundlePayload" createSymbols="yes" unreal="yes"> | ||
1607 | <columnDefinition name="WixBundlePayload" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1608 | <columnDefinition name="Name" type="string" length="0" nullable="yes"/> | ||
1609 | <columnDefinition name="SourceFile" type="object" length="0" nullable="yes"/> | ||
1610 | <columnDefinition name="DownloadUrl" type="string" length="0" nullable="yes" /> | ||
1611 | <columnDefinition name="Compressed" type="number" length="2" minValue="0" maxValue="2" /> | ||
1612 | <columnDefinition name="UnresolvedSourceFile" type="string" length="0" nullable="yes" /> | ||
1613 | <columnDefinition name="DisplayName" type="string" length="0" nullable="yes" /> | ||
1614 | <columnDefinition name="Description" type="string" length="0" nullable="yes" /> | ||
1615 | <columnDefinition name="EnableSignatureValidation" type="number" length="2" nullable="yes" minValue="0" maxValue="1" /> | ||
1616 | <columnDefinition name="FileSize" type="number" length="4" minValue="0" maxValue="2147483647" nullable="yes" /> | ||
1617 | <columnDefinition name="Version" type="string" length="24" nullable="yes" /> | ||
1618 | <columnDefinition name="Hash" type="string" length="0" nullable="yes" /> | ||
1619 | <columnDefinition name="PublicKey" type="string" length="0" nullable="yes" /> | ||
1620 | <columnDefinition name="Thumbprint" type="string" length="0" nullable="yes" /> | ||
1621 | <columnDefinition name="Catalog_" type="string" length="0" nullable="yes" category="identifier" | ||
1622 | keyTable="WixBundleCatalog" keyColumn="1" description="Reference to a catalog entry in the WixBundleCatalog table."/> | ||
1623 | <columnDefinition name="Container_" type="string" length="0" nullable="yes" | ||
1624 | keyTable="WixBundleContainer" keyColumn="1" description="Reference to a container entry in the WixBundleContainer table."/> | ||
1625 | <columnDefinition name="Package" type="string" length="0" nullable="yes" /> | ||
1626 | <columnDefinition name="ContentFile" type="number" length="2" nullable="yes" minValue="0" maxValue="1" /> | ||
1627 | <columnDefinition name="EmbeddedId" type="string" length="0" nullable="yes" /> | ||
1628 | <columnDefinition name="LayoutOnly" type="number" length="2" nullable="yes" minValue="0" maxValue="1" /> | ||
1629 | <columnDefinition name="Packaging" type="number" length="2" nullable="yes" minValue="1" maxValue="2" /> | ||
1630 | <columnDefinition name="ParentPackagePayload_" type="string" length="0" nullable="yes" /> | ||
1631 | </tableDefinition> | ||
1632 | <tableDefinition name="WixBundlePatchTargetCode" createSymbols="yes" unreal="yes"> | ||
1633 | <columnDefinition name="PackageId" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1634 | <columnDefinition name="TargetCode" type="string" length="0" nullable="yes" primaryKey="yes" /> | ||
1635 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" minValue="0" maxValue="2147483647" /> | ||
1636 | </tableDefinition> | ||
1637 | <tableDefinition name="WixBundle" unreal="yes"> | ||
1638 | <columnDefinition name="Version" type="string" length="24" /> | ||
1639 | <columnDefinition name="Copyright" type="string" length="0" nullable="yes" /> | ||
1640 | <columnDefinition name="Name" type="string" length="0" nullable="yes" /> | ||
1641 | <columnDefinition name="AboutUrl" type="string" length="0" nullable="yes" /> | ||
1642 | <columnDefinition name="DisableModify" type="number" length="2" nullable="yes" minValue="0" maxValue="2"/> | ||
1643 | <columnDefinition name="DisableRemove" type="number" length="2" nullable="yes" minValue="0" maxValue="1"/> | ||
1644 | <columnDefinition name="DisableRepair" type="number" length="2" nullable="yes" minValue="0" maxValue="1"/> | ||
1645 | <columnDefinition name="HelpTelephone" type="string" length="0" nullable="yes" /> | ||
1646 | <columnDefinition name="HelpUrl" type="string" length="0" nullable="yes" /> | ||
1647 | <columnDefinition name="Manufacturer" type="string" length="0" nullable="yes" /> | ||
1648 | <columnDefinition name="UpdateUrl" type="string" length="0" nullable="yes" /> | ||
1649 | <columnDefinition name="Compressed" type="number" length="2" nullable="yes" minValue="0" maxValue="1" /> | ||
1650 | <columnDefinition name="LogPrefixAndExtension" type="string" length="0" nullable="yes" /> | ||
1651 | <columnDefinition name="IconSourceFile" type="object" length="0" nullable="yes" /> | ||
1652 | <columnDefinition name="SplashScreenSourceFile" type="object" length="0" nullable="yes" /> | ||
1653 | <columnDefinition name="Condition" type="string" length="0" nullable="yes" /> | ||
1654 | <columnDefinition name="Tag" type="string" length="0" nullable="yes" /> | ||
1655 | <columnDefinition name="Platform" type="string" length="4" /> | ||
1656 | <columnDefinition name="ParentName" type="string" length="0" nullable="yes" /> | ||
1657 | <columnDefinition name="UpgradeCode" type="string" length="38" category="guid" /> | ||
1658 | <columnDefinition name="BundleId" type="string" length="38" category="guid" description="Only valid after binding." /> | ||
1659 | <columnDefinition name="ProviderKey" type="string" length="38" category="guid" nullable="yes" description="Only valid after binding." /> | ||
1660 | <columnDefinition name="PerMachine" type="number" length="2" nullable="yes" minValue="0" maxValue="1" description="Only valid after binding." /> | ||
1661 | </tableDefinition> | ||
1662 | <tableDefinition name="WixApprovedExeForElevation" createSymbols="yes" unreal="yes"> | ||
1663 | <columnDefinition name="Id" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1664 | <columnDefinition name="Key" type="string" length="0" /> | ||
1665 | <columnDefinition name="Value" type="string" length="0" nullable="yes" /> | ||
1666 | <columnDefinition name="Attributes" type="number" length="4" minValue="0" maxValue="1" /> | ||
1667 | </tableDefinition> | ||
1668 | <tableDefinition name="WixBundleUpdate" unreal="yes"> | ||
1669 | <columnDefinition name="Location" type="string" length="0" /> | ||
1670 | <columnDefinition name="Attributes" type="number" length="4" nullable="yes" /> | ||
1671 | </tableDefinition> | ||
1672 | <tableDefinition name="WixBootstrapperApplication" createSymbols="yes" unreal="yes"> | ||
1673 | <columnDefinition name="Id" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1674 | </tableDefinition> | ||
1675 | <tableDefinition name="WixUpdateRegistration" unreal="yes"> | ||
1676 | <columnDefinition name="Manufacturer" type="string" length="0" /> | ||
1677 | <columnDefinition name="Department" type="string" length="0" nullable="yes" /> | ||
1678 | <columnDefinition name="ProductFamily" type="string" length="0" nullable="yes" /> | ||
1679 | <columnDefinition name="Name" type="string" length="0" /> | ||
1680 | <columnDefinition name="Classification" type="string" length="0" /> | ||
1681 | </tableDefinition> | ||
1682 | <tableDefinition name="WixBundleCatalog" createSymbols="yes" unreal="yes"> | ||
1683 | <columnDefinition name="WixBundleCatalog" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1684 | <columnDefinition name="Payload_" type="string" length="0" category="identifier" | ||
1685 | keyTable="WixBundlePayload" keyColumn="1" description="Reference to a payload entry in the WixBundlePayload table." /> | ||
1686 | </tableDefinition> | ||
1687 | <tableDefinition name="WixChain" unreal="yes"> | ||
1688 | <columnDefinition name="Attributes" type="number" length="4" nullable="no" minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to the chain."/> | ||
1689 | </tableDefinition> | ||
1690 | <tableDefinition name="WixChainItem" createSymbols="yes" unreal="yes"> | ||
1691 | <columnDefinition name="Id" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1692 | </tableDefinition> | ||
1693 | <tableDefinition name="WixBundleRollbackBoundary" createSymbols="yes" unreal="yes"> | ||
1694 | <columnDefinition name="WixChainItem_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1695 | keyTable="WixChainItem" keyColumn="1" description="Reference to a WixChainItem entry in the WixChainItem table."/> | ||
1696 | <columnDefinition name="Vital" type="number" length="2" nullable="yes" minValue="0" maxValue="1"/> | ||
1697 | <columnDefinition name="Transaction" type="number" length="2" nullable="yes" minValue="0" maxValue="1"/> | ||
1698 | </tableDefinition> | ||
1699 | <tableDefinition name="WixBundlePackageGroup" createSymbols="yes" unreal="yes"> | ||
1700 | <columnDefinition name="WixBundlePackageGroup" type="string" length="0" category="identifier" primaryKey="yes"/> | ||
1701 | </tableDefinition> | ||
1702 | <tableDefinition name="WixBundlePackage" createSymbols="yes" unreal="yes"> | ||
1703 | <columnDefinition name="WixChainItem_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1704 | keyTable="WixChainItem" keyColumn="1" description="Reference to a WixChainItem entry in the WixChainItem table."/> | ||
1705 | <columnDefinition name="Type" type="number" length="2" minValue="0" maxValue="3" /> | ||
1706 | <columnDefinition name="Payload_" type="string" length="0" category="identifier" | ||
1707 | keyTable="WixBundlePayload" keyColumn="1" description="Reference to a payload entry in the WixBundlePayload table."/> | ||
1708 | <columnDefinition name="Attributes" type="number" length="4" nullable="no" minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to this package."/> | ||
1709 | <columnDefinition name="InstallCondition" type="string" length="0" nullable="yes"/> | ||
1710 | <columnDefinition name="Cache" type="number" length="2" nullable="yes" minValue="0" maxValue="2"/> | ||
1711 | <columnDefinition name="CacheId" type="string" length="0" nullable="yes"/> | ||
1712 | <columnDefinition name="Vital" type="number" length="2" nullable="yes" minValue="0" maxValue="1"/> | ||
1713 | <columnDefinition name="PerMachine" type="number" length="2" nullable="yes" minValue="0" maxValue="2"/> | ||
1714 | <columnDefinition name="LogPathVariable" type="string" length="0" nullable="yes"/> | ||
1715 | <columnDefinition name="RollbackLogPathVariable" type="string" length="0" nullable="yes"/> | ||
1716 | <columnDefinition name="Size" type="number" length="4"/> | ||
1717 | <columnDefinition name="InstallSize" type="number" length="4"/> | ||
1718 | <columnDefinition name="Version" type="string" length="24" category="version" nullable="yes" /> | ||
1719 | <columnDefinition name="Language" type="number" length="2" nullable="yes" /> | ||
1720 | <columnDefinition name="DisplayName" type="string" length="0" nullable="yes" /> | ||
1721 | <columnDefinition name="Description" type="string" length="0" nullable="yes" /> | ||
1722 | <columnDefinition name="RollbackBoundary_" type="string" length="0" nullable="yes" | ||
1723 | keyTable="WixBundleRollbackBoundary" keyColumn="1" description="Reference to a rollback boundary entry in the WixBundleRollbackBoundary table."/> | ||
1724 | <columnDefinition name="RollbackBoundaryBackward_" type="string" length="0" nullable="yes" | ||
1725 | keyTable="WixBundleRollbackBoundary" keyColumn="1" description="Reference to a rollback boundary entry in the WixBundleRollbackBoundary table."/> | ||
1726 | <columnDefinition name="x64" type="number" length="2" nullable="yes" minValue="0" maxValue="1"/> | ||
1727 | </tableDefinition> | ||
1728 | <tableDefinition name="WixBundleExePackage" createSymbols="yes" unreal="yes"> | ||
1729 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1730 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1731 | <columnDefinition name="Attributes" type="number" length="4" nullable="no" minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to this MSI package."/> | ||
1732 | <columnDefinition name="DetectCondition" type="string" length="0" nullable="yes"/> | ||
1733 | <columnDefinition name="InstallCommand" type="string" length="0" nullable="yes"/> | ||
1734 | <columnDefinition name="RepairCommand" type="string" length="0" nullable="yes"/> | ||
1735 | <columnDefinition name="UninstallCommand" type="string" length="0" nullable="yes"/> | ||
1736 | <columnDefinition name="ExeProtocol" type="string" length="0" nullable="yes"/> | ||
1737 | </tableDefinition> | ||
1738 | <tableDefinition name="WixBundleMsiPackage" createSymbols="yes" unreal="yes"> | ||
1739 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1740 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1741 | <columnDefinition name="Attributes" type="number" length="4" nullable="no" minValue="0" maxValue="2147483647" description="A 32-bit word that specifies the attribute flags to be applied to this MSI package."/> | ||
1742 | <columnDefinition name="ProductCode" type="string" length="38" category="guid" /> | ||
1743 | <columnDefinition name="UpgradeCode" type="string" length="38" category="guid" nullable="yes" /> | ||
1744 | <columnDefinition name="ProductVersion" type="string" length="20" /> | ||
1745 | <columnDefinition name="ProductLanguage" type="number" length="2" /> | ||
1746 | <columnDefinition name="ProductName" type="string" length="0" /> | ||
1747 | <columnDefinition name="Manufacturer" type="string" length="0" nullable="yes" /> | ||
1748 | </tableDefinition> | ||
1749 | <tableDefinition name="WixBundleMspPackage" createSymbols="yes" unreal="yes"> | ||
1750 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1751 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1752 | <columnDefinition name="Attributes" type="number" length="2" nullable="yes" minValue="0" maxValue="1" /> | ||
1753 | <columnDefinition name="PatchCode" type="string" length="38" category="guid" nullable="yes" /> | ||
1754 | <columnDefinition name="Manufacturer" type="string" length="0" nullable="yes" /> | ||
1755 | <columnDefinition name="PatchXml" type="string" length="0" nullable="yes" /> | ||
1756 | </tableDefinition> | ||
1757 | <tableDefinition name="WixBundleMsuPackage" createSymbols="yes" unreal="yes"> | ||
1758 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1759 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1760 | <columnDefinition name="DetectCondition" type="string" length="0" nullable="yes"/> | ||
1761 | <columnDefinition name="MsuKB" type="string" length="0" nullable="yes"/> | ||
1762 | </tableDefinition> | ||
1763 | <tableDefinition name="WixBundlePackageExitCode" createSymbols="yes" unreal="yes"> | ||
1764 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1765 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table for the parent Exe."/> | ||
1766 | <columnDefinition name="Code" type="number" length="0" category="integer" nullable="yes" primaryKey="yes" /> | ||
1767 | <columnDefinition name="Behavior" type="number" length="2" category="integer" minValue="0" maxValue="3" /> | ||
1768 | </tableDefinition> | ||
1769 | <tableDefinition name="WixBundleMsiFeature" createSymbols="yes" unreal="yes"> | ||
1770 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1771 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1772 | <columnDefinition name="Name" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1773 | <columnDefinition name="Size" type="number" length="4" /> | ||
1774 | <columnDefinition name="Parent" type="string" length="0" /> | ||
1775 | <columnDefinition name="Title" type="string" length="0" /> | ||
1776 | <columnDefinition name="Description" type="string" length="0" /> | ||
1777 | <columnDefinition name="Display" type="number" length="2" /> | ||
1778 | <columnDefinition name="Level" type="number" length="2" /> | ||
1779 | <columnDefinition name="Directory" type="string" length="0" /> | ||
1780 | <columnDefinition name="Attributes" type="number" length="2" /> | ||
1781 | </tableDefinition> | ||
1782 | <tableDefinition name="WixBundleMsiProperty" createSymbols="yes" unreal="yes"> | ||
1783 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1784 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1785 | <columnDefinition name="Name" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1786 | <columnDefinition name="Value" type="string" length="0" /> | ||
1787 | <columnDefinition name="Condition" type="string" length="0" nullable="yes" /> | ||
1788 | </tableDefinition> | ||
1789 | <tableDefinition name="WixBundleSlipstreamMsp" createSymbols="yes" unreal="yes"> | ||
1790 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1791 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table for the parent Msi."/> | ||
1792 | <columnDefinition name="WixBundlePackage_Msp" type="string" length="0" category="identifier" primaryKey="yes" | ||
1793 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table for the referenced Msp." /> | ||
1794 | </tableDefinition> | ||
1795 | <tableDefinition name="WixBundlePackageCommandLine" createSymbols="yes" unreal="yes"> | ||
1796 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1797 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table." /> | ||
1798 | <columnDefinition name="InstallArgument" type="string" length="0" nullable="yes" /> | ||
1799 | <columnDefinition name="UninstallArgument" type="string" length="0" nullable="yes" /> | ||
1800 | <columnDefinition name="RepairArgument" type="string" length="0" nullable="yes" /> | ||
1801 | <columnDefinition name="Condition" type="string" length="0" nullable="yes" /> | ||
1802 | </tableDefinition> | ||
1803 | <tableDefinition name="WixRelatedBundle" unreal="yes"> | ||
1804 | <columnDefinition name="Id" type="string" length="38" category="guid" primaryKey="yes" /> | ||
1805 | <columnDefinition name="Action" type="number" length="4" /> | ||
1806 | </tableDefinition> | ||
1807 | <tableDefinition name="WixBundleRelatedPackage" unreal="yes"> | ||
1808 | <columnDefinition name="WixBundlePackage_" type="string" length="0" category="identifier" primaryKey="yes" | ||
1809 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1810 | <columnDefinition name="Id" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1811 | <columnDefinition name="MinVersion" type="string" length="0" /> | ||
1812 | <columnDefinition name="MaxVersion" type="string" length="0" /> | ||
1813 | <columnDefinition name="Languages" type="string" length="0" /> | ||
1814 | <columnDefinition name="MinInclusive" type="number" length="2" minValue="0" maxValue="1"/> | ||
1815 | <columnDefinition name="MaxInclusive" type="number" length="2" minValue="0" maxValue="1"/> | ||
1816 | <columnDefinition name="LangInclusive" type="number" length="2" minValue="0" maxValue="1"/> | ||
1817 | <columnDefinition name="OnlyDetect" type="number" length="2" minValue="0" maxValue="1"/> | ||
1818 | </tableDefinition> | ||
1819 | <tableDefinition name="WixBundleVariable" createSymbols="yes" unreal="yes"> | ||
1820 | <columnDefinition name="WixBundleVariable" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1821 | <columnDefinition name="Value" type="string" length="0" nullable="yes" /> | ||
1822 | <columnDefinition name="Type" type="string" length="0" nullable="yes" /> | ||
1823 | <columnDefinition name="Hidden" type="number" length="2" minValue="0" maxValue="1"/> | ||
1824 | <columnDefinition name="Persisted" type="number" length="2" minValue="0" maxValue="1"/> | ||
1825 | </tableDefinition> | ||
1826 | <tableDefinition name="WixBundleProperties" unreal="yes" bootstrapperApplicationData="yes"> | ||
1827 | <columnDefinition name="DisplayName" type="string" length="0" nullable="yes"/> | ||
1828 | <columnDefinition name="LogPathVariable" type="string" length="0" nullable="yes"/> | ||
1829 | <columnDefinition name="Compressed" type="string" length="0" nullable="yes"/> | ||
1830 | <columnDefinition name="Id" type="string" length="0" nullable="yes"/> | ||
1831 | <columnDefinition name="UpgradeCode" type="string" length="0" nullable="yes"/> | ||
1832 | <columnDefinition name="PerMachine" type="string" length="0" nullable="yes"/> | ||
1833 | </tableDefinition> | ||
1834 | <tableDefinition name="WixPackageFeatureInfo" unreal="yes" bootstrapperApplicationData="yes"> | ||
1835 | <columnDefinition name="Package" type="string" length="0" /> | ||
1836 | <columnDefinition name="Feature" type="string" length="0" /> | ||
1837 | <columnDefinition name="Size" type="string" length="0" /> | ||
1838 | <columnDefinition name="Parent" type="string" length="0" nullable="yes" /> | ||
1839 | <columnDefinition name="Title" type="string" length="0" nullable="yes" /> | ||
1840 | <columnDefinition name="Description" type="string" length="0" nullable="yes" /> | ||
1841 | <columnDefinition name="Display" type="string" length="0" nullable="yes" /> | ||
1842 | <columnDefinition name="Level" type="string" length="0" /> | ||
1843 | <columnDefinition name="Directory" type="string" length="0" nullable="yes"/> | ||
1844 | <columnDefinition name="Attributes" type="string" length="0" /> | ||
1845 | </tableDefinition> | ||
1846 | <tableDefinition name="WixPackageProperties" unreal="yes" bootstrapperApplicationData="yes"> | ||
1847 | <columnDefinition name="Package" type="string" length="0" category="identifier" primaryKey="yes" | ||
1848 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1849 | <columnDefinition name="Vital" type="string" length="0" nullable="yes" minValue="0" maxValue="1" /> | ||
1850 | <columnDefinition name="DisplayName" type="string" length="0" nullable="yes"/> | ||
1851 | <columnDefinition name="Description" type="string" length="0" nullable="yes"/> | ||
1852 | <columnDefinition name="DownloadSize" type="string" length="0" nullable="yes"/> | ||
1853 | <columnDefinition name="PackageSize" type="string" length="0" nullable="yes"/> | ||
1854 | <columnDefinition name="InstalledSize" type="string" length="0" nullable="yes"/> | ||
1855 | <columnDefinition name="PackageType" type="string" length="0" nullable="no"/> | ||
1856 | <columnDefinition name="Permanent" type="string" length="0" nullable="yes"/> | ||
1857 | <columnDefinition name="LogPathVariable" type="string" length="0" nullable="yes"/> | ||
1858 | <columnDefinition name="RollbackLogPathVariable" type="string" length="0" nullable="yes"/> | ||
1859 | <columnDefinition name="Compressed" type="string" length="0" nullable="yes"/> | ||
1860 | <columnDefinition name="DisplayInternalUI" type="string" length="0" nullable="yes"/> | ||
1861 | <columnDefinition name="ProductCode" type="string" length="0" nullable="yes"/> | ||
1862 | <columnDefinition name="UpgradeCode" type="string" length="0" nullable="yes"/> | ||
1863 | <columnDefinition name="Version" type="string" length="0" nullable="yes"/> | ||
1864 | <columnDefinition name="InstallCondition" type="string" length="0" nullable="yes" /> | ||
1865 | <columnDefinition name="Cache" type="string" length="0" nullable="yes" minValue="0" maxValue="2" /> | ||
1866 | </tableDefinition> | ||
1867 | <tableDefinition name="WixPayloadProperties" unreal="yes" bootstrapperApplicationData="yes"> | ||
1868 | <columnDefinition name="Payload" type="string" length="0" category="identifier" primaryKey="yes" /> | ||
1869 | <columnDefinition name="Package" type="string" length="0" category="identifier" primaryKey="yes" nullable="yes" | ||
1870 | keyTable="WixBundlePackage" keyColumn="1" description="Reference to a chain package entry in the WixBundlePackage table."/> | ||
1871 | <columnDefinition name="Container" type="string" length="0" nullable="yes" | ||
1872 | keyTable="WixBundleContainer" keyColumn="1" description="Reference to a container entry in the WixBundleContainer table."/> | ||
1873 | <columnDefinition name="Name" type="string" length="0" /> | ||
1874 | <columnDefinition name="Size" type="string" length="0" /> | ||
1875 | <columnDefinition name="DownloadUrl" type="string" length="0" nullable="yes" /> | ||
1876 | <columnDefinition name="LayoutOnly" type="string" length="3" nullable="no" /> | ||
1877 | </tableDefinition> | ||
1878 | <tableDefinition name="_Streams" unreal="yes"> | ||
1879 | <columnDefinition name="Name" type="string" length="62" primaryKey="yes"/> | ||
1880 | <columnDefinition name="Data" type="object" length="0" nullable="yes"/> | ||
1881 | </tableDefinition> | ||
1882 | <tableDefinition name="_SummaryInformation"> | ||
1883 | <columnDefinition name="PropertyId" type="number" length="2" primaryKey="yes"/> | ||
1884 | <columnDefinition name="Value" type="localized" length="255" escapeIdtCharacters="yes"/> | ||
1885 | </tableDefinition> | ||
1886 | <tableDefinition name="_TransformView" unreal="yes"> | ||
1887 | <columnDefinition name="Table" type="string" length="0" primaryKey="yes"/> | ||
1888 | <columnDefinition name="Column" type="string" length="0" primaryKey="yes"/> | ||
1889 | <columnDefinition name="Row" type="string" length="0"/> | ||
1890 | <columnDefinition name="Data" type="string" length="0"/> | ||
1891 | <columnDefinition name="Current" type="string" length="0"/> | ||
1892 | </tableDefinition> | ||
1893 | <tableDefinition name="_Validation"> | ||
1894 | <columnDefinition name="Table" type="string" length="32" primaryKey="yes" | ||
1895 | category="identifier" description="Name of table"/> | ||
1896 | <columnDefinition name="Column" type="string" length="32" primaryKey="yes" | ||
1897 | category="identifier" description="Name of column"/> | ||
1898 | <columnDefinition name="Nullable" type="string" length="4" | ||
1899 | set="Y;N" description="Whether the column is nullable"/> | ||
1900 | <columnDefinition name="MinValue" type="number" length="4" nullable="yes" | ||
1901 | minValue="-2147483647" maxValue="2147483647" description="Minimum value allowed"/> | ||
1902 | <columnDefinition name="MaxValue" type="number" length="4" nullable="yes" | ||
1903 | minValue="-2147483647" maxValue="2147483647" description="Maximum value allowed"/> | ||
1904 | <columnDefinition name="KeyTable" type="string" length="255" nullable="yes" | ||
1905 | category="identifier" description="For foreign key, Name of table to which data must link"/> | ||
1906 | <columnDefinition name="KeyColumn" type="number" length="2" nullable="yes" | ||
1907 | minValue="1" maxValue="32" description="Column to which foreign key connects"/> | ||
1908 | <columnDefinition name="Category" type="string" length="32" nullable="yes" | ||
1909 | set="Text;Formatted;Template;Condition;Guid;Path;Version;Language;Identifier;Binary;UpperCase;LowerCase;Filename;Paths;AnyPath;WildCardFilename;RegPath;CustomSource;Property;Cabinet;Shortcut;FormattedSDDLText;Integer;DoubleInteger;TimeDate;DefaultDir" description="String category"/> | ||
1910 | <columnDefinition name="Set" type="string" length="255" nullable="yes" | ||
1911 | category="text" description="Set of values that are permitted"/> | ||
1912 | <columnDefinition name="Description" type="string" length="255" nullable="yes" | ||
1913 | category="text" description="Description of column"/> | ||
1914 | </tableDefinition> | ||
1915 | <!-- WixSearch tables are used by multiple extensions and binder knows about them. --> | ||
1916 | <tableDefinition name="WixSearch" createSymbols="yes" unreal="yes"> | ||
1917 | <columnDefinition name="WixSearch" type="string" length="72" category="identifier" primaryKey="yes" /> | ||
1918 | <columnDefinition name="Variable" type="string" length="72" category="identifier" nullable="yes" /> | ||
1919 | <columnDefinition name="Condition" type="string" length="255" category="condition" nullable="yes" /> | ||
1920 | </tableDefinition> | ||
1921 | <tableDefinition name="WixSearchRelation" createSymbols="yes" unreal="yes"> | ||
1922 | <columnDefinition name="WixSearch_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1923 | keyTable="WixSearch" keyColumn="1" description="Reference to a WixSearch entry in the WixSearch table."/> | ||
1924 | <columnDefinition name="ParentId_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1925 | keyTable="WixSearch" keyColumn="1" description="Reference to a WixSearch entry in the WixSearch table."/> | ||
1926 | <columnDefinition name="Attributes" type="number" length="4" category="doubleInteger" /> | ||
1927 | </tableDefinition> | ||
1928 | <tableDefinition name="WixFileSearch" createSymbols="yes" unreal="yes"> | ||
1929 | <columnDefinition name="WixSearch_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1930 | keyTable="WixSearch" keyColumn="1" description="Reference to a WixSearch entry in the WixSearch table."/> | ||
1931 | <columnDefinition name="Path" type="string" category="text" length="255" /> | ||
1932 | <columnDefinition name="MinVersion" type="string" length="24" category="version" nullable="yes" /> | ||
1933 | <columnDefinition name="MaxVersion" type="string" length="24" category="version" nullable="yes" /> | ||
1934 | <columnDefinition name="MinSize" type="number" length="4" category="doubleInteger" nullable="yes" /> | ||
1935 | <columnDefinition name="MaxSize" type="number" length="4" category="doubleInteger" nullable="yes" /> | ||
1936 | <columnDefinition name="MinDate" type="number" length="4" category="doubleInteger" nullable="yes" /> | ||
1937 | <columnDefinition name="MaxDate" type="number" length="4" category="doubleInteger" nullable="yes" /> | ||
1938 | <columnDefinition name="Languages" type="string" category="text" length="0" nullable="yes" /> | ||
1939 | <columnDefinition name="Attributes" type="number" length="4" category="doubleInteger" /> | ||
1940 | </tableDefinition> | ||
1941 | <tableDefinition name="WixRegistrySearch" createSymbols="yes" unreal="yes"> | ||
1942 | <columnDefinition name="WixSearch_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1943 | keyTable="WixSearch" keyColumn="1" description="Reference to a WixSearch entry in the WixSearch table."/> | ||
1944 | <columnDefinition name="Root" type="number" length="2" category="doubleInteger" /> | ||
1945 | <columnDefinition name="Key" type="string" category="text" length="255" /> | ||
1946 | <columnDefinition name="Value" type="string" category="text" length="255" nullable="yes" /> | ||
1947 | <columnDefinition name="Attributes" type="number" length="4" category="doubleInteger" /> | ||
1948 | </tableDefinition> | ||
1949 | <tableDefinition name="WixComponentSearch" createSymbols="yes" unreal="yes"> | ||
1950 | <columnDefinition name="WixSearch_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1951 | keyTable="WixSearch" keyColumn="1" description="Reference to a WixSearch entry in the WixSearch table."/> | ||
1952 | <columnDefinition name="Guid" type="string" length="38" category="guid" /> | ||
1953 | <columnDefinition name="ProductCode" type="string" length="38" category="guid" nullable="yes" /> | ||
1954 | <columnDefinition name="Attributes" type="number" length="4" category="doubleInteger" /> | ||
1955 | </tableDefinition> | ||
1956 | <tableDefinition name="WixProductSearch" createSymbols="yes" unreal="yes"> | ||
1957 | <columnDefinition name="WixSearch_" type="string" length="72" category="identifier" primaryKey="yes" | ||
1958 | keyTable="WixSearch" keyColumn="1" description="Reference to a WixSearch entry in the WixSearch table."/> | ||
1959 | <columnDefinition name="Guid" type="string" length="38" category="guid" /> | ||
1960 | <columnDefinition name="Attributes" type="number" length="4" category="doubleInteger" /> | ||
1961 | </tableDefinition> | ||
1962 | </tableDefinitions> | ||
diff --git a/src/WixToolset.Data/DuplicateSymbolsException.cs b/src/WixToolset.Data/DuplicateSymbolsException.cs index d0f8536c..6f14d049 100644 --- a/src/WixToolset.Data/DuplicateSymbolsException.cs +++ b/src/WixToolset.Data/DuplicateSymbolsException.cs | |||
@@ -5,6 +5,7 @@ namespace WixToolset.Data | |||
5 | using System; | 5 | using System; |
6 | using System.Collections; | 6 | using System.Collections; |
7 | 7 | ||
8 | #if false | ||
8 | /// <summary> | 9 | /// <summary> |
9 | /// Duplicate symbols exception. | 10 | /// Duplicate symbols exception. |
10 | /// </summary> | 11 | /// </summary> |
@@ -32,4 +33,5 @@ namespace WixToolset.Data | |||
32 | return this.duplicateSymbols; | 33 | return this.duplicateSymbols; |
33 | } | 34 | } |
34 | } | 35 | } |
36 | #endif | ||
35 | } | 37 | } |
diff --git a/src/WixToolset.Data/Field.cs b/src/WixToolset.Data/Field.cs deleted file mode 100644 index 74b78229..00000000 --- a/src/WixToolset.Data/Field.cs +++ /dev/null | |||
@@ -1,266 +0,0 @@ | |||
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 System; | ||
6 | using System.Diagnostics; | ||
7 | using System.Globalization; | ||
8 | using System.Xml; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Field containing data for a column in a row. | ||
12 | /// </summary> | ||
13 | public class Field | ||
14 | { | ||
15 | private object data; | ||
16 | |||
17 | /// <summary> | ||
18 | /// Instantiates a new Field. | ||
19 | /// </summary> | ||
20 | /// <param name="columnDefinition">Column definition for this field.</param> | ||
21 | protected Field(ColumnDefinition columnDefinition) | ||
22 | { | ||
23 | this.Column = columnDefinition; | ||
24 | } | ||
25 | |||
26 | /// <summary> | ||
27 | /// Gets or sets the column definition for this field. | ||
28 | /// </summary> | ||
29 | /// <value>Column definition.</value> | ||
30 | public ColumnDefinition Column { get; private set; } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets or sets the data for this field. | ||
34 | /// </summary> | ||
35 | /// <value>Data in the field.</value> | ||
36 | public object Data | ||
37 | { | ||
38 | get | ||
39 | { | ||
40 | return this.data; | ||
41 | } | ||
42 | |||
43 | set | ||
44 | { | ||
45 | // Validate the value before setting it. | ||
46 | this.data = this.Column.ValidateValue(value); | ||
47 | } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets or sets whether this field is modified. | ||
52 | /// </summary> | ||
53 | /// <value>Whether this field is modified.</value> | ||
54 | public bool Modified { get; set; } | ||
55 | |||
56 | /// <summary> | ||
57 | /// Gets or sets the previous data. | ||
58 | /// </summary> | ||
59 | /// <value>The previous data.</value> | ||
60 | public string PreviousData { get; set; } | ||
61 | |||
62 | /// <summary> | ||
63 | /// Instantiate a new Field object of the correct type. | ||
64 | /// </summary> | ||
65 | /// <param name="columnDefinition">The column definition for the field.</param> | ||
66 | /// <returns>The new Field object.</returns> | ||
67 | public static Field Create(ColumnDefinition columnDefinition) | ||
68 | { | ||
69 | return (ColumnType.Object == columnDefinition.Type) ? new ObjectField(columnDefinition) : new Field(columnDefinition); | ||
70 | } | ||
71 | |||
72 | /// <summary> | ||
73 | /// Sets the value of a particular field in the row without validating. | ||
74 | /// </summary> | ||
75 | /// <param name="field">field index.</param> | ||
76 | /// <param name="value">Value of a field in the row.</param> | ||
77 | /// <returns>True if successful, false if validation failed.</returns> | ||
78 | public bool BestEffortSet(object value) | ||
79 | { | ||
80 | bool success = true; | ||
81 | object bestEffortValue = value; | ||
82 | |||
83 | try | ||
84 | { | ||
85 | bestEffortValue = this.Column.ValidateValue(value); | ||
86 | } | ||
87 | catch (InvalidOperationException) | ||
88 | { | ||
89 | success = false; | ||
90 | } | ||
91 | |||
92 | this.data = bestEffortValue; | ||
93 | return success; | ||
94 | } | ||
95 | |||
96 | /// <summary> | ||
97 | /// Determine if this field is identical to another field. | ||
98 | /// </summary> | ||
99 | /// <param name="field">The other field to compare to.</param> | ||
100 | /// <returns>true if they are equal; false otherwise.</returns> | ||
101 | public bool IsIdentical(Field field) | ||
102 | { | ||
103 | return (this.Column.Name == field.Column.Name && | ||
104 | ((null != this.data && this.data.Equals(field.data)) || (null == this.data && null == field.data))); | ||
105 | } | ||
106 | |||
107 | /// <summary> | ||
108 | /// Overrides the built in object implementation to return the field's data as a string. | ||
109 | /// </summary> | ||
110 | /// <returns>Field's data as a string.</returns> | ||
111 | public override string ToString() | ||
112 | { | ||
113 | return this.AsString(); | ||
114 | } | ||
115 | |||
116 | /// <summary> | ||
117 | /// Gets the field as an integer. | ||
118 | /// </summary> | ||
119 | /// <returns>Field's data as an integer.</returns> | ||
120 | public int AsInteger() | ||
121 | { | ||
122 | return (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); | ||
123 | } | ||
124 | |||
125 | /// <summary> | ||
126 | /// Gets the field as an integer that could be null. | ||
127 | /// </summary> | ||
128 | /// <returns>Field's data as an integer that could be null.</returns> | ||
129 | public int? AsNullableInteger() | ||
130 | { | ||
131 | return (null == this.data) ? (int?)null : (this.data is int) ? (int)this.data : Convert.ToInt32(this.data, CultureInfo.InvariantCulture); | ||
132 | } | ||
133 | |||
134 | /// <summary> | ||
135 | /// Gets the field as a string. | ||
136 | /// </summary> | ||
137 | /// <returns>Field's data as a string.</returns> | ||
138 | public string AsString() | ||
139 | { | ||
140 | return (null == this.data) ? null : Convert.ToString(this.data, CultureInfo.InvariantCulture); | ||
141 | } | ||
142 | |||
143 | /// <summary> | ||
144 | /// Parse a field from the xml. | ||
145 | /// </summary> | ||
146 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> | ||
147 | internal virtual void Read(XmlReader reader) | ||
148 | { | ||
149 | Debug.Assert("field" == reader.LocalName); | ||
150 | |||
151 | bool empty = reader.IsEmptyElement; | ||
152 | |||
153 | while (reader.MoveToNextAttribute()) | ||
154 | { | ||
155 | switch (reader.LocalName) | ||
156 | { | ||
157 | case "modified": | ||
158 | this.Modified = reader.Value.Equals("yes"); | ||
159 | break; | ||
160 | case "previousData": | ||
161 | this.PreviousData = reader.Value; | ||
162 | break; | ||
163 | } | ||
164 | } | ||
165 | |||
166 | if (!empty) | ||
167 | { | ||
168 | bool done = false; | ||
169 | |||
170 | while (!done && reader.Read()) | ||
171 | { | ||
172 | switch (reader.NodeType) | ||
173 | { | ||
174 | case XmlNodeType.Element: | ||
175 | throw new XmlException(); | ||
176 | case XmlNodeType.CDATA: | ||
177 | case XmlNodeType.Text: | ||
178 | case XmlNodeType.SignificantWhitespace: | ||
179 | if (0 < reader.Value.Length) | ||
180 | { | ||
181 | if (ColumnType.Number == this.Column.Type && !this.Column.IsLocalizable) | ||
182 | { | ||
183 | // older wix files could persist data as a long value (which would overflow an int) | ||
184 | // since the Convert class always throws exceptions for overflows, read in integral | ||
185 | // values as a long to avoid the overflow, then cast it to an int (this operation can | ||
186 | // overflow without throwing an exception inside an unchecked block) | ||
187 | this.data = unchecked((int)Convert.ToInt64(reader.Value, CultureInfo.InvariantCulture)); | ||
188 | } | ||
189 | else | ||
190 | { | ||
191 | this.data = reader.Value; | ||
192 | } | ||
193 | } | ||
194 | break; | ||
195 | case XmlNodeType.EndElement: | ||
196 | done = true; | ||
197 | break; | ||
198 | } | ||
199 | } | ||
200 | |||
201 | if (!done) | ||
202 | { | ||
203 | throw new XmlException(); | ||
204 | } | ||
205 | } | ||
206 | } | ||
207 | |||
208 | /// <summary> | ||
209 | /// Persists a field in an XML format. | ||
210 | /// </summary> | ||
211 | /// <param name="writer">XmlWriter where the Field should persist itself as XML.</param> | ||
212 | internal virtual void Write(XmlWriter writer) | ||
213 | { | ||
214 | writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); | ||
215 | |||
216 | if (this.Modified) | ||
217 | { | ||
218 | writer.WriteAttributeString("modified", "yes"); | ||
219 | } | ||
220 | |||
221 | if (null != this.PreviousData) | ||
222 | { | ||
223 | writer.WriteAttributeString("previousData", this.PreviousData); | ||
224 | } | ||
225 | |||
226 | // Convert the data to a string that will persist nicely (nulls as String.Empty). | ||
227 | string text = Convert.ToString(this.data, CultureInfo.InvariantCulture); | ||
228 | if (this.Column.UseCData) | ||
229 | { | ||
230 | writer.WriteCData(text); | ||
231 | } | ||
232 | else | ||
233 | { | ||
234 | writer.WriteString(text); | ||
235 | } | ||
236 | |||
237 | writer.WriteEndElement(); | ||
238 | } | ||
239 | |||
240 | /// <summary> | ||
241 | /// Returns the field data in a format usable in IDT files. | ||
242 | /// </summary> | ||
243 | /// <returns>Field data in string IDT format.</returns> | ||
244 | internal string ToIdtValue() | ||
245 | { | ||
246 | if (null == this.data) | ||
247 | { | ||
248 | return null; | ||
249 | } | ||
250 | else | ||
251 | { | ||
252 | string fieldData = Convert.ToString(this.data, CultureInfo.InvariantCulture); | ||
253 | |||
254 | // special idt-specific escaping | ||
255 | if (this.Column.EscapeIdtCharacters) | ||
256 | { | ||
257 | fieldData = fieldData.Replace('\t', '\x10'); | ||
258 | fieldData = fieldData.Replace('\r', '\x11'); | ||
259 | fieldData = fieldData.Replace('\n', '\x19'); | ||
260 | } | ||
261 | |||
262 | return fieldData; | ||
263 | } | ||
264 | } | ||
265 | } | ||
266 | } | ||
diff --git a/src/WixToolset.Data/FileFormat.cs b/src/WixToolset.Data/FileFormat.cs index 9bb54fca..75eab3de 100644 --- a/src/WixToolset.Data/FileFormat.cs +++ b/src/WixToolset.Data/FileFormat.cs | |||
@@ -13,5 +13,7 @@ namespace WixToolset.Data | |||
13 | Wixout, | 13 | Wixout, |
14 | 14 | ||
15 | Wixpdb, | 15 | Wixpdb, |
16 | |||
17 | WixIR, | ||
16 | } | 18 | } |
17 | } | 19 | } |
diff --git a/src/WixToolset.Data/FileStructure.cs b/src/WixToolset.Data/FileStructure.cs index 7265a51d..9ad9405a 100644 --- a/src/WixToolset.Data/FileStructure.cs +++ b/src/WixToolset.Data/FileStructure.cs | |||
@@ -7,6 +7,7 @@ namespace WixToolset.Data | |||
7 | using System.Diagnostics; | 7 | using System.Diagnostics; |
8 | using System.IO; | 8 | using System.IO; |
9 | using System.Linq; | 9 | using System.Linq; |
10 | using System.Text; | ||
10 | 11 | ||
11 | /// <summary> | 12 | /// <summary> |
12 | /// Class that understands the standard file structures in the WiX toolset. | 13 | /// Class that understands the standard file structures in the WiX toolset. |
@@ -20,6 +21,8 @@ namespace WixToolset.Data | |||
20 | 21 | ||
21 | private static readonly Dictionary<string, FileFormat> SupportedFileFormats = new Dictionary<string, FileFormat>() | 22 | private static readonly Dictionary<string, FileFormat> SupportedFileFormats = new Dictionary<string, FileFormat>() |
22 | { | 23 | { |
24 | { "wir", FileFormat.WixIR }, | ||
25 | { "wixirf", FileFormat.WixIR }, | ||
23 | { "wixobj", FileFormat.Wixobj }, | 26 | { "wixobj", FileFormat.Wixobj }, |
24 | { "wixlib", FileFormat.Wixlib }, | 27 | { "wixlib", FileFormat.Wixlib }, |
25 | { "wixout", FileFormat.Wixout }, | 28 | { "wixout", FileFormat.Wixout }, |
@@ -36,7 +39,7 @@ namespace WixToolset.Data | |||
36 | /// <summary> | 39 | /// <summary> |
37 | /// Count of embedded files in the file structure. | 40 | /// Count of embedded files in the file structure. |
38 | /// </summary> | 41 | /// </summary> |
39 | public int EmbeddedFileCount { get { return this.embeddedFileSizes.Length; } } | 42 | public int EmbeddedFileCount => this.embeddedFileSizes.Length; |
40 | 43 | ||
41 | /// <summary> | 44 | /// <summary> |
42 | /// File format of the file structure. | 45 | /// File format of the file structure. |
@@ -50,15 +53,15 @@ namespace WixToolset.Data | |||
50 | /// <param name="fileFormat">File format for the file structure.</param> | 53 | /// <param name="fileFormat">File format for the file structure.</param> |
51 | /// <param name="embedFilePaths">Paths to files to embedd in the file structure.</param> | 54 | /// <param name="embedFilePaths">Paths to files to embedd in the file structure.</param> |
52 | /// <returns>Newly created file structure.</returns> | 55 | /// <returns>Newly created file structure.</returns> |
53 | public static FileStructure Create(Stream stream, FileFormat fileFormat, List<string> embedFilePaths) | 56 | public static FileStructure Create(Stream stream, FileFormat fileFormat, IEnumerable<string> embedFilePaths) |
54 | { | 57 | { |
55 | FileStructure fs = new FileStructure(); | 58 | var fs = new FileStructure(); |
56 | using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) | 59 | |
57 | using (BinaryWriter writer = new BinaryWriter(wrapper)) | 60 | using (var writer = new BinaryWriter(stream, Encoding.UTF8, true)) |
58 | { | 61 | { |
59 | fs.WriteType(writer, fileFormat); | 62 | fs.WriteType(writer, fileFormat); |
60 | 63 | ||
61 | fs.WriteEmbeddedFiles(writer, embedFilePaths ?? new List<string>()); | 64 | fs.WriteEmbeddedFiles(writer, embedFilePaths.ToArray()); |
62 | 65 | ||
63 | // Remember the data stream offset, which is right after the embedded files have been written. | 66 | // Remember the data stream offset, which is right after the embedded files have been written. |
64 | fs.dataStreamOffset = stream.Position; | 67 | fs.dataStreamOffset = stream.Position; |
@@ -76,13 +79,13 @@ namespace WixToolset.Data | |||
76 | /// <returns>File structure populated from the stream.</returns> | 79 | /// <returns>File structure populated from the stream.</returns> |
77 | public static FileStructure Read(Stream stream) | 80 | public static FileStructure Read(Stream stream) |
78 | { | 81 | { |
79 | FileStructure fs = new FileStructure(); | 82 | var fs = new FileStructure(); |
80 | using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) | 83 | |
81 | using (BinaryReader reader = new BinaryReader(wrapper)) | 84 | using (var reader = new BinaryReader(stream, Encoding.UTF8, true)) |
82 | { | 85 | { |
83 | fs.FileFormat = FileStructure.ReadFileFormat(reader); | 86 | fs.FileFormat = FileStructure.ReadFileFormat(reader); |
84 | 87 | ||
85 | if (FileFormat.Unknown != fs.FileFormat) | 88 | if (fs.FileFormat != FileFormat.Unknown) |
86 | { | 89 | { |
87 | fs.embeddedFileSizes = FileStructure.ReadEmbeddedFileSizes(reader); | 90 | fs.embeddedFileSizes = FileStructure.ReadEmbeddedFileSizes(reader); |
88 | 91 | ||
@@ -107,8 +110,7 @@ namespace WixToolset.Data | |||
107 | /// <returns>Best guess at file format.</returns> | 110 | /// <returns>Best guess at file format.</returns> |
108 | public static FileFormat GuessFileFormatFromExtension(string extension) | 111 | public static FileFormat GuessFileFormatFromExtension(string extension) |
109 | { | 112 | { |
110 | FileFormat format; | 113 | return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out var format) ? format : FileFormat.Unknown; |
111 | return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out format) ? format : FileFormat.Unknown; | ||
112 | } | 114 | } |
113 | 115 | ||
114 | /// <summary> | 116 | /// <summary> |
@@ -124,8 +126,7 @@ namespace WixToolset.Data | |||
124 | 126 | ||
125 | try | 127 | try |
126 | { | 128 | { |
127 | using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream)) | 129 | using (var reader = new BinaryReader(stream, Encoding.UTF8, true)) |
128 | using (BinaryReader reader = new BinaryReader(wrapper)) | ||
129 | { | 130 | { |
130 | format = FileStructure.ReadFileFormat(reader); | 131 | format = FileStructure.ReadFileFormat(reader); |
131 | } | 132 | } |
@@ -182,7 +183,21 @@ namespace WixToolset.Data | |||
182 | } | 183 | } |
183 | 184 | ||
184 | /// <summary> | 185 | /// <summary> |
185 | /// Disposes of the internsl state of the file structure. | 186 | /// Gets the data of the file as a string. |
187 | /// </summary> | ||
188 | /// <returns>String contents data of the file.</returns> | ||
189 | public string GetData() | ||
190 | { | ||
191 | var bytes = new byte[this.stream.Length - this.dataStreamOffset]; | ||
192 | |||
193 | this.stream.Seek(this.dataStreamOffset, SeekOrigin.Begin); | ||
194 | this.stream.Read(bytes, 0, bytes.Length); | ||
195 | |||
196 | return Encoding.UTF8.GetString(bytes); | ||
197 | } | ||
198 | |||
199 | /// <summary> | ||
200 | /// Disposes of the internal state of the file structure. | ||
186 | /// </summary> | 201 | /// </summary> |
187 | public void Dispose() | 202 | public void Dispose() |
188 | { | 203 | { |
@@ -217,7 +232,13 @@ namespace WixToolset.Data | |||
217 | { | 232 | { |
218 | FileFormat format = FileFormat.Unknown; | 233 | FileFormat format = FileFormat.Unknown; |
219 | 234 | ||
220 | string type = new string(reader.ReadChars(6)); | 235 | string type = new string(reader.ReadChars(3)); |
236 | if (FileStructure.SupportedFileFormats.TryGetValue(type, out format)) | ||
237 | { | ||
238 | return format; | ||
239 | } | ||
240 | |||
241 | type += new string(reader.ReadChars(3)); | ||
221 | FileStructure.SupportedFileFormats.TryGetValue(type, out format); | 242 | FileStructure.SupportedFileFormats.TryGetValue(type, out format); |
222 | 243 | ||
223 | return format; | 244 | return format; |
@@ -256,21 +277,21 @@ namespace WixToolset.Data | |||
256 | 277 | ||
257 | this.FileFormat = fileFormat; | 278 | this.FileFormat = fileFormat; |
258 | 279 | ||
259 | Debug.Assert(6 == type.ToCharArray().Length); | 280 | Debug.Assert(3 == type.ToCharArray().Length || 6 == type.ToCharArray().Length); |
260 | writer.Write(type.ToCharArray()); | 281 | writer.Write(type.ToCharArray()); |
261 | return writer; | 282 | return writer; |
262 | } | 283 | } |
263 | 284 | ||
264 | private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, List<string> embedFilePaths) | 285 | private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, string[] embedFilePaths) |
265 | { | 286 | { |
266 | // First write the count of embedded files as a Uint32; | 287 | // First write the count of embedded files as a Uint32; |
267 | writer.Write((uint)embedFilePaths.Count); | 288 | writer.Write((uint)embedFilePaths.Length); |
268 | 289 | ||
269 | this.embeddedFileSizes = new long[embedFilePaths.Count]; | 290 | this.embeddedFileSizes = new long[embedFilePaths.Length]; |
270 | 291 | ||
271 | // Next write out the size of each file as a Uint64 in order. | 292 | // Next write out the size of each file as a Uint64 in order. |
272 | FileInfo[] files = new FileInfo[embedFilePaths.Count]; | 293 | FileInfo[] files = new FileInfo[embedFilePaths.Length]; |
273 | for (int i = 0; i < embedFilePaths.Count; ++i) | 294 | for (int i = 0; i < embedFilePaths.Length; ++i) |
274 | { | 295 | { |
275 | files[i] = new FileInfo(embedFilePaths[i]); | 296 | files[i] = new FileInfo(embedFilePaths[i]); |
276 | 297 | ||
diff --git a/src/WixToolset.Data/ITupleDefinitionCreator.cs b/src/WixToolset.Data/ITupleDefinitionCreator.cs new file mode 100644 index 00000000..63477314 --- /dev/null +++ b/src/WixToolset.Data/ITupleDefinitionCreator.cs | |||
@@ -0,0 +1,9 @@ | |||
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 | public interface ITupleDefinitionCreator | ||
6 | { | ||
7 | bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition); | ||
8 | } | ||
9 | } | ||
diff --git a/src/WixToolset.Data/Identifier.cs b/src/WixToolset.Data/Identifier.cs index 96acc997..38b12989 100644 --- a/src/WixToolset.Data/Identifier.cs +++ b/src/WixToolset.Data/Identifier.cs | |||
@@ -2,9 +2,13 @@ | |||
2 | 2 | ||
3 | namespace WixToolset.Data | 3 | namespace WixToolset.Data |
4 | { | 4 | { |
5 | using System; | ||
6 | using System.Diagnostics; | ||
7 | |||
5 | /// <summary> | 8 | /// <summary> |
6 | /// Class to define the identifier and access for a row. | 9 | /// Class to define the identifier and access for a row. |
7 | /// </summary> | 10 | /// </summary> |
11 | [DebuggerDisplay("{Access} {Id,nq}")] | ||
8 | public class Identifier | 12 | public class Identifier |
9 | { | 13 | { |
10 | public static Identifier Invalid = new Identifier(null, AccessModifier.Private); | 14 | public static Identifier Invalid = new Identifier(null, AccessModifier.Private); |
@@ -15,6 +19,12 @@ namespace WixToolset.Data | |||
15 | this.Access = access; | 19 | this.Access = access; |
16 | } | 20 | } |
17 | 21 | ||
22 | public Identifier(int id, AccessModifier access) | ||
23 | { | ||
24 | this.Id = id.ToString(); | ||
25 | this.Access = access; | ||
26 | } | ||
27 | |||
18 | /// <summary> | 28 | /// <summary> |
19 | /// Access modifier for a row. | 29 | /// Access modifier for a row. |
20 | /// </summary> | 30 | /// </summary> |
diff --git a/src/WixToolset.Data/Intermediate.cs b/src/WixToolset.Data/Intermediate.cs index fd14f11b..b03492ce 100644 --- a/src/WixToolset.Data/Intermediate.cs +++ b/src/WixToolset.Data/Intermediate.cs | |||
@@ -5,7 +5,7 @@ namespace WixToolset.Data | |||
5 | using System; | 5 | using System; |
6 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
7 | using System.IO; | 7 | using System.IO; |
8 | using System.Xml; | 8 | using SimpleJson; |
9 | 9 | ||
10 | /// <summary> | 10 | /// <summary> |
11 | /// Container class for an intermediate object. | 11 | /// Container class for an intermediate object. |
@@ -15,34 +15,192 @@ namespace WixToolset.Data | |||
15 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixobj"; | 15 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixobj"; |
16 | private static readonly Version CurrentVersion = new Version("4.0.0.0"); | 16 | private static readonly Version CurrentVersion = new Version("4.0.0.0"); |
17 | 17 | ||
18 | private string id; | 18 | private Dictionary<string, Localization> localizationsByCulture; |
19 | private List<Section> sections; | ||
20 | 19 | ||
21 | /// <summary> | 20 | /// <summary> |
22 | /// Instantiate a new Intermediate. | 21 | /// Instantiate a new Intermediate. |
23 | /// </summary> | 22 | /// </summary> |
24 | public Intermediate() | 23 | public Intermediate() |
25 | { | 24 | { |
26 | this.id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); | 25 | this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_'); |
27 | this.sections = new List<Section>(); | 26 | this.EmbedFilePaths = new List<string>(); |
27 | this.localizationsByCulture = new Dictionary<string, Localization>(StringComparer.OrdinalIgnoreCase); | ||
28 | this.Sections = new List<IntermediateSection>(); | ||
28 | } | 29 | } |
29 | 30 | ||
31 | public Intermediate(string id, IEnumerable<IntermediateSection> sections, IDictionary<string, Localization> localizationsByCulture, IEnumerable<string> embedFilePaths) | ||
32 | { | ||
33 | this.Id = id; | ||
34 | this.EmbedFilePaths = (embedFilePaths != null) ? new List<string>(embedFilePaths) : new List<string>(); | ||
35 | this.localizationsByCulture = (localizationsByCulture != null) ? new Dictionary<string, Localization>(localizationsByCulture, StringComparer.OrdinalIgnoreCase) : new Dictionary<string, Localization>(StringComparer.OrdinalIgnoreCase); | ||
36 | this.Sections = (sections != null) ? new List<IntermediateSection>(sections) : new List<IntermediateSection>(); | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Get the id for the intermediate. | ||
41 | /// </summary> | ||
42 | public string Id { get; } | ||
43 | |||
44 | /// <summary> | ||
45 | /// Get the embed file paths in this intermediate. | ||
46 | /// </summary> | ||
47 | public IList<string> EmbedFilePaths { get; } | ||
48 | |||
49 | /// <summary> | ||
50 | /// Get the localizations contained in this intermediate. | ||
51 | /// </summary> | ||
52 | public IEnumerable<Localization> Localizations => this.localizationsByCulture.Values; | ||
53 | |||
30 | /// <summary> | 54 | /// <summary> |
31 | /// Get the sections contained in this intermediate. | 55 | /// Get the sections contained in this intermediate. |
32 | /// </summary> | 56 | /// </summary> |
33 | /// <value>Sections contained in this intermediate.</value> | 57 | public IList<IntermediateSection> Sections { get; } |
34 | public IEnumerable<Section> Sections { get { return this.sections; } } | ||
35 | 58 | ||
36 | /// <summary> | 59 | /// <summary> |
37 | /// Adds a section to the intermediate. | 60 | /// Adds a localization to the intermediate. |
38 | /// </summary> | 61 | /// </summary> |
39 | /// <param name="section">Section to add to the intermediate.</param> | 62 | /// <param name="localization">Localization to add to the intermediate.</param> |
40 | public void AddSection(Section section) | 63 | public void AddLocalization(Localization localization) |
64 | { | ||
65 | if (this.localizationsByCulture.TryGetValue(localization.Culture, out var existingCulture)) | ||
66 | { | ||
67 | existingCulture.Merge(localization); | ||
68 | } | ||
69 | else | ||
70 | { | ||
71 | this.localizationsByCulture.Add(localization.Culture, localization); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets localization files from this library that match the cultures passed in, in the order of the array of cultures. | ||
77 | /// </summary> | ||
78 | /// <param name="cultures">The list of cultures to get localizations for.</param> | ||
79 | /// <returns>All localizations contained in this library that match the set of cultures provided, in the same order.</returns> | ||
80 | public IEnumerable<Localization> GetLocalizationsForCultures(IEnumerable<string> cultures) | ||
81 | { | ||
82 | foreach (string culture in cultures ?? Array.Empty<string>()) | ||
83 | { | ||
84 | if (this.localizationsByCulture.TryGetValue(culture, out var localization)) | ||
85 | { | ||
86 | yield return localization; | ||
87 | } | ||
88 | } | ||
89 | } | ||
90 | |||
91 | /// <summary> | ||
92 | /// Loads an intermediate from a path on disk. | ||
93 | /// </summary> | ||
94 | /// <param name="path">Path to intermediate file saved on disk.</param> | ||
95 | /// <param name="suppressVersionCheck">Suppress checking for wix.dll version mismatches.</param> | ||
96 | /// <returns>Returns the loaded intermediate.</returns> | ||
97 | public static Intermediate Load(string path, bool suppressVersionCheck = false) | ||
98 | { | ||
99 | var creator = new SimpleTupleDefinitionCreator(); | ||
100 | return Intermediate.Load(path, creator, suppressVersionCheck); | ||
101 | } | ||
102 | |||
103 | /// <summary> | ||
104 | /// Loads an intermediate from a path on disk. | ||
105 | /// </summary> | ||
106 | /// <param name="path">Path to intermediate file saved on disk.</param> | ||
107 | /// <param name="creator">ITupleDefinitionCreator to use when reconstituting the intermediate.</param> | ||
108 | /// <param name="suppressVersionCheck">Suppress checking for wix.dll version mismatches.</param> | ||
109 | /// <returns>Returns the loaded intermediate.</returns> | ||
110 | public static Intermediate Load(string path, ITupleDefinitionCreator creator, bool suppressVersionCheck = false) | ||
41 | { | 111 | { |
42 | section.IntermediateId = this.id; | 112 | JsonObject jsonObject; |
43 | this.sections.Add(section); | 113 | |
114 | using (FileStream stream = File.OpenRead(path)) | ||
115 | using (FileStructure fs = FileStructure.Read(stream)) | ||
116 | { | ||
117 | if (FileFormat.WixIR != fs.FileFormat) | ||
118 | { | ||
119 | throw new WixUnexpectedFileFormatException(path, FileFormat.WixIR, fs.FileFormat); | ||
120 | } | ||
121 | |||
122 | var json = fs.GetData(); | ||
123 | jsonObject = SimpleJson.DeserializeObject(json) as JsonObject; | ||
124 | } | ||
125 | |||
126 | if (!suppressVersionCheck) | ||
127 | { | ||
128 | var versionJson = jsonObject.GetValueOrDefault<string>("version"); | ||
129 | |||
130 | if (!Version.TryParse(versionJson, out var version) || !Intermediate.CurrentVersion.Equals(version)) | ||
131 | { | ||
132 | throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(path), "intermediate", versionJson, Intermediate.CurrentVersion.ToString())); | ||
133 | } | ||
134 | } | ||
135 | |||
136 | var id = jsonObject.GetValueOrDefault<string>("id"); | ||
137 | |||
138 | var sections = new List<IntermediateSection>(); | ||
139 | |||
140 | var sectionsJson = jsonObject.GetValueOrDefault<JsonArray>("sections"); | ||
141 | foreach (JsonObject sectionJson in sectionsJson) | ||
142 | { | ||
143 | var section = IntermediateSection.Deserialize(creator, sectionJson); | ||
144 | sections.Add(section); | ||
145 | } | ||
146 | |||
147 | var localizations = new Dictionary<string, Localization>(StringComparer.OrdinalIgnoreCase); | ||
148 | |||
149 | //var localizationsJson = jsonObject.GetValueOrDefault<JsonArray>("localizations") ?? new JsonArray(); | ||
150 | //foreach (JsonObject localizationJson in localizationsJson) | ||
151 | //{ | ||
152 | // var localization = Localization.Deserialize(localizationJson); | ||
153 | // localizations.Add(localization.Culture, localization); | ||
154 | //} | ||
155 | |||
156 | return new Intermediate(id, sections, localizations, null); | ||
157 | } | ||
158 | |||
159 | /// <summary> | ||
160 | /// Saves an intermediate to a path on disk. | ||
161 | /// </summary> | ||
162 | /// <param name="path">Path to save intermediate file to disk.</param> | ||
163 | public void Save(string path) | ||
164 | { | ||
165 | Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); | ||
166 | |||
167 | using (var stream = File.Create(path)) | ||
168 | using (var fs = FileStructure.Create(stream, FileFormat.WixIR, this.EmbedFilePaths)) | ||
169 | using (var writer = new StreamWriter(fs.GetDataStream())) | ||
170 | { | ||
171 | var jsonObject = new JsonObject | ||
172 | { | ||
173 | { "id", this.Id }, | ||
174 | { "version", Intermediate.CurrentVersion.ToString() } | ||
175 | }; | ||
176 | |||
177 | var sectionsJson = new JsonArray(this.Sections.Count); | ||
178 | foreach (var section in this.Sections) | ||
179 | { | ||
180 | var sectionJson = section.Serialize(); | ||
181 | sectionsJson.Add(sectionJson); | ||
182 | } | ||
183 | |||
184 | jsonObject.Add("sections", sectionsJson); | ||
185 | |||
186 | //if (this.Localizations.Any()) | ||
187 | //{ | ||
188 | // var localizationsJson = new JsonArray(); | ||
189 | // foreach (var localization in this.Localizations) | ||
190 | // { | ||
191 | // var localizationJson = localization.Serialize(); | ||
192 | // localizationsJson.Add(localizationJson); | ||
193 | // } | ||
194 | |||
195 | // jsonObject.Add("localizations", localizationsJson); | ||
196 | //} | ||
197 | |||
198 | var json = SimpleJson.SerializeObject(jsonObject); | ||
199 | writer.Write(json); | ||
200 | } | ||
44 | } | 201 | } |
45 | 202 | ||
203 | #if false | ||
46 | /// <summary> | 204 | /// <summary> |
47 | /// Loads an intermediate from a path on disk. | 205 | /// Loads an intermediate from a path on disk. |
48 | /// </summary> | 206 | /// </summary> |
@@ -84,9 +242,9 @@ namespace WixToolset.Data | |||
84 | { | 242 | { |
85 | Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); | 243 | Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); |
86 | 244 | ||
87 | using (FileStream stream = File.Create(path)) | 245 | using (var stream = File.Create(path)) |
88 | using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixobj, null)) | 246 | using (var fs = FileStructure.Create(stream, FileFormat.Wixobj, null)) |
89 | using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) | 247 | using (var writer = XmlWriter.Create(fs.GetDataStream())) |
90 | { | 248 | { |
91 | writer.WriteStartDocument(); | 249 | writer.WriteStartDocument(); |
92 | this.Write(writer); | 250 | this.Write(writer); |
@@ -185,5 +343,6 @@ namespace WixToolset.Data | |||
185 | 343 | ||
186 | writer.WriteEndElement(); | 344 | writer.WriteEndElement(); |
187 | } | 345 | } |
346 | #endif | ||
188 | } | 347 | } |
189 | } | 348 | } |
diff --git a/src/WixToolset.Data/IntermediateField.cs b/src/WixToolset.Data/IntermediateField.cs new file mode 100644 index 00000000..eba0e1ab --- /dev/null +++ b/src/WixToolset.Data/IntermediateField.cs | |||
@@ -0,0 +1,70 @@ | |||
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 System.Diagnostics; | ||
6 | using SimpleJson; | ||
7 | |||
8 | [DebuggerDisplay("Name={Name,nq} Type={Type} Value={Value.AsString()}")] | ||
9 | public class IntermediateField | ||
10 | { | ||
11 | public IntermediateField(IntermediateFieldDefinition definition) | ||
12 | { | ||
13 | this.Definition = definition; | ||
14 | } | ||
15 | |||
16 | public IntermediateFieldDefinition Definition { get; } | ||
17 | |||
18 | public string Name => this.Definition.Name; | ||
19 | |||
20 | public IntermediateFieldType Type => this.Definition.Type; | ||
21 | |||
22 | public string Context => this.Value?.Context; | ||
23 | |||
24 | public IntermediateFieldValue PreviousValue => this.Value?.PreviousValue; | ||
25 | |||
26 | internal IntermediateFieldValue Value { get; set; } | ||
27 | |||
28 | public static explicit operator bool(IntermediateField field) | ||
29 | { | ||
30 | return field.AsBool(); | ||
31 | } | ||
32 | |||
33 | public static explicit operator bool? (IntermediateField field) | ||
34 | { | ||
35 | return field.AsNullableBool(); | ||
36 | } | ||
37 | |||
38 | public static explicit operator int(IntermediateField field) | ||
39 | { | ||
40 | return field.AsNumber(); | ||
41 | } | ||
42 | |||
43 | public static explicit operator int? (IntermediateField field) | ||
44 | { | ||
45 | return field.AsNullableNumber(); | ||
46 | } | ||
47 | |||
48 | public static explicit operator string(IntermediateField field) | ||
49 | { | ||
50 | return field.AsString(); | ||
51 | } | ||
52 | |||
53 | internal static IntermediateField Deserialize(IntermediateFieldDefinition definition, JsonObject jsonObject) | ||
54 | { | ||
55 | var field = new IntermediateField(definition); | ||
56 | |||
57 | if (jsonObject != null) | ||
58 | { | ||
59 | field.Value = IntermediateFieldValue.Deserialize(jsonObject); | ||
60 | } | ||
61 | |||
62 | return field; | ||
63 | } | ||
64 | |||
65 | internal JsonObject Serialize() | ||
66 | { | ||
67 | return this.Value?.Serialize(); | ||
68 | } | ||
69 | } | ||
70 | } | ||
diff --git a/src/WixToolset.Data/IntermediateFieldContext.cs b/src/WixToolset.Data/IntermediateFieldContext.cs new file mode 100644 index 00000000..a29a63c4 --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldContext.cs | |||
@@ -0,0 +1,38 @@ | |||
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 System; | ||
6 | |||
7 | public class IntermediateFieldContext : IDisposable | ||
8 | { | ||
9 | private string previous; | ||
10 | private bool disposed; | ||
11 | |||
12 | public IntermediateFieldContext(string context) | ||
13 | { | ||
14 | this.previous = IntermediateFieldExtensions.valueContext; | ||
15 | |||
16 | IntermediateFieldExtensions.valueContext = context; | ||
17 | } | ||
18 | |||
19 | public void Dispose() | ||
20 | { | ||
21 | Dispose(true); | ||
22 | GC.SuppressFinalize(this); | ||
23 | } | ||
24 | |||
25 | protected virtual void Dispose(bool disposing) | ||
26 | { | ||
27 | if (!this.disposed) | ||
28 | { | ||
29 | if (disposing) | ||
30 | { | ||
31 | IntermediateFieldExtensions.valueContext = this.previous; | ||
32 | } | ||
33 | |||
34 | this.disposed = true; | ||
35 | } | ||
36 | } | ||
37 | } | ||
38 | } | ||
diff --git a/src/WixToolset.Data/IntermediateFieldDefinition.cs b/src/WixToolset.Data/IntermediateFieldDefinition.cs new file mode 100644 index 00000000..c77a2ae8 --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldDefinition.cs | |||
@@ -0,0 +1,25 @@ | |||
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 | public enum IntermediateFieldType | ||
6 | { | ||
7 | String, | ||
8 | Bool, | ||
9 | Number, | ||
10 | Path, | ||
11 | } | ||
12 | |||
13 | public class IntermediateFieldDefinition | ||
14 | { | ||
15 | public IntermediateFieldDefinition(string name, IntermediateFieldType type) | ||
16 | { | ||
17 | this.Name = name; | ||
18 | this.Type = type; | ||
19 | } | ||
20 | |||
21 | public string Name { get; } | ||
22 | |||
23 | public IntermediateFieldType Type { get; } | ||
24 | } | ||
25 | } | ||
diff --git a/src/WixToolset.Data/IntermediateFieldExtensions.cs b/src/WixToolset.Data/IntermediateFieldExtensions.cs new file mode 100644 index 00000000..c551b455 --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldExtensions.cs | |||
@@ -0,0 +1,206 @@ | |||
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 System; | ||
6 | |||
7 | public static class IntermediateFieldExtensions | ||
8 | { | ||
9 | [ThreadStatic] | ||
10 | internal static string valueContext; | ||
11 | |||
12 | public static IntermediateField Set(this IntermediateField field, object value) | ||
13 | { | ||
14 | if (field == null) | ||
15 | { | ||
16 | throw new ArgumentNullException(nameof(field)); | ||
17 | } | ||
18 | else if (value == null) | ||
19 | { | ||
20 | // Null is always allowed. | ||
21 | } | ||
22 | else if (field.Type == IntermediateFieldType.Bool && !(value is bool)) | ||
23 | { | ||
24 | throw new ArgumentException(nameof(value)); | ||
25 | } | ||
26 | else if (field.Type == IntermediateFieldType.Number && !(value is int)) | ||
27 | { | ||
28 | throw new ArgumentException(nameof(value)); | ||
29 | } | ||
30 | else if (field.Type == IntermediateFieldType.String && !(value is string)) | ||
31 | { | ||
32 | throw new ArgumentException(nameof(value)); | ||
33 | } | ||
34 | else if (field.Type == IntermediateFieldType.Path && !(value is IntermediateFieldPathValue || value is string)) | ||
35 | { | ||
36 | throw new ArgumentException(nameof(value)); | ||
37 | } | ||
38 | |||
39 | if (field.Type == IntermediateFieldType.Path && value != null && value is string) | ||
40 | { | ||
41 | value = new IntermediateFieldPathValue { Path = (string)value }; | ||
42 | } | ||
43 | |||
44 | field.Value = new IntermediateFieldValue | ||
45 | { | ||
46 | Context = valueContext, | ||
47 | Data = value, | ||
48 | PreviousValue = field.Value | ||
49 | }; | ||
50 | |||
51 | return field; | ||
52 | } | ||
53 | |||
54 | public static IntermediateField Set(this IntermediateField field, IntermediateFieldDefinition definition, object value) | ||
55 | { | ||
56 | if (field == null) | ||
57 | { | ||
58 | field = new IntermediateField(definition); | ||
59 | } | ||
60 | |||
61 | return field.Set(value); | ||
62 | } | ||
63 | |||
64 | public static bool AsBool(this IntermediateField field) | ||
65 | { | ||
66 | if (field == null || field.Value == null || field.Value.Data == null) | ||
67 | { | ||
68 | return false; | ||
69 | } | ||
70 | |||
71 | switch (field.Definition.Type) | ||
72 | { | ||
73 | case IntermediateFieldType.Bool: | ||
74 | return field.Value.AsBool(); | ||
75 | |||
76 | case IntermediateFieldType.Number: | ||
77 | return field.Value.AsNumber() != 0; | ||
78 | |||
79 | case IntermediateFieldType.String: | ||
80 | return !String.IsNullOrEmpty(field.Value.AsString()); | ||
81 | |||
82 | case IntermediateFieldType.Path: | ||
83 | return !String.IsNullOrEmpty(field.Value.AsPath()?.Path); | ||
84 | |||
85 | default: | ||
86 | throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); | ||
87 | } | ||
88 | } | ||
89 | |||
90 | public static bool? AsNullableBool(this IntermediateField field) | ||
91 | { | ||
92 | if (field == null || field.Value == null || field.Value.Data == null) | ||
93 | { | ||
94 | return null; | ||
95 | } | ||
96 | |||
97 | switch (field.Definition.Type) | ||
98 | { | ||
99 | case IntermediateFieldType.Bool: | ||
100 | return field.Value.AsBool(); | ||
101 | |||
102 | case IntermediateFieldType.Number: | ||
103 | return field.Value.AsNumber() != 0; | ||
104 | |||
105 | case IntermediateFieldType.String: | ||
106 | return !System.String.IsNullOrEmpty(field.Value.AsString()); | ||
107 | |||
108 | default: | ||
109 | throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to boolean"); | ||
110 | } | ||
111 | } | ||
112 | |||
113 | |||
114 | public static int AsNumber(this IntermediateField field) | ||
115 | { | ||
116 | if (field == null || field.Value == null || field.Value.Data == null) | ||
117 | { | ||
118 | return 0; | ||
119 | } | ||
120 | |||
121 | switch (field.Definition.Type) | ||
122 | { | ||
123 | case IntermediateFieldType.Bool: | ||
124 | return field.Value.AsBool() ? 1 : 0; | ||
125 | |||
126 | case IntermediateFieldType.Number: | ||
127 | return field.Value.AsNumber(); | ||
128 | |||
129 | case IntermediateFieldType.String: | ||
130 | return Convert.ToInt32(field.Value.AsString()); | ||
131 | |||
132 | default: | ||
133 | throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); | ||
134 | } | ||
135 | } | ||
136 | |||
137 | public static int? AsNullableNumber(this IntermediateField field) | ||
138 | { | ||
139 | if (field == null || field.Value == null || field.Value.Data == null) | ||
140 | { | ||
141 | return null; | ||
142 | } | ||
143 | |||
144 | switch (field.Definition.Type) | ||
145 | { | ||
146 | case IntermediateFieldType.Bool: | ||
147 | return field.Value.AsBool() ? 1 : 0; | ||
148 | |||
149 | case IntermediateFieldType.Number: | ||
150 | return field.Value.AsNumber(); | ||
151 | |||
152 | case IntermediateFieldType.String: | ||
153 | return Convert.ToInt32(field.Value.AsString()); | ||
154 | |||
155 | default: | ||
156 | throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to number"); | ||
157 | } | ||
158 | } | ||
159 | |||
160 | public static IntermediateFieldPathValue AsPath(this IntermediateField field) | ||
161 | { | ||
162 | if (field == null || field.Value == null || field.Value.Data == null) | ||
163 | { | ||
164 | return null; | ||
165 | } | ||
166 | |||
167 | switch (field.Definition.Type) | ||
168 | { | ||
169 | case IntermediateFieldType.String: | ||
170 | return new IntermediateFieldPathValue { Path = field.Value.AsString() }; | ||
171 | |||
172 | case IntermediateFieldType.Path: | ||
173 | return field.Value.AsPath(); | ||
174 | |||
175 | default: | ||
176 | throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); | ||
177 | } | ||
178 | } | ||
179 | |||
180 | public static string AsString(this IntermediateField field) | ||
181 | { | ||
182 | if (field == null || field.Value == null || field.Value.Data == null) | ||
183 | { | ||
184 | return null; | ||
185 | } | ||
186 | |||
187 | switch (field.Definition.Type) | ||
188 | { | ||
189 | case IntermediateFieldType.Bool: | ||
190 | return field.Value.AsBool() ? "true" : "false"; | ||
191 | |||
192 | case IntermediateFieldType.Number: | ||
193 | return field.Value.AsNumber().ToString(); | ||
194 | |||
195 | case IntermediateFieldType.String: | ||
196 | return field.Value.AsString(); | ||
197 | |||
198 | case IntermediateFieldType.Path: | ||
199 | return field.Value.AsPath()?.Path; | ||
200 | |||
201 | default: | ||
202 | throw new InvalidCastException($"Cannot convert field {field.Name} with type {field.Type} to string"); | ||
203 | } | ||
204 | } | ||
205 | } | ||
206 | } | ||
diff --git a/src/WixToolset.Data/IntermediateFieldPathValue.cs b/src/WixToolset.Data/IntermediateFieldPathValue.cs new file mode 100644 index 00000000..7d4fcdfe --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldPathValue.cs | |||
@@ -0,0 +1,27 @@ | |||
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 System; | ||
6 | |||
7 | public class IntermediateFieldPathValue | ||
8 | { | ||
9 | /// <summary> | ||
10 | /// Gets or sets the index of the embedded file in a library. | ||
11 | /// </summary> | ||
12 | /// <value>The index of the embedded file.</value> | ||
13 | public int? EmbeddedFileIndex { get; set; } | ||
14 | |||
15 | /// <summary> | ||
16 | /// Gets the base URI of the path field. | ||
17 | /// </summary> | ||
18 | /// <value>The base URI of the path field.</value> | ||
19 | public Uri BaseUri { get; set; } | ||
20 | |||
21 | /// <summary> | ||
22 | /// Gets or sets the data for this field. | ||
23 | /// </summary> | ||
24 | /// <value>Data in the field.</value> | ||
25 | public string Path { get; set; } | ||
26 | } | ||
27 | } | ||
diff --git a/src/WixToolset.Data/IntermediateFieldValue.cs b/src/WixToolset.Data/IntermediateFieldValue.cs new file mode 100644 index 00000000..2064afec --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldValue.cs | |||
@@ -0,0 +1,131 @@ | |||
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 System; | ||
6 | using System.Diagnostics; | ||
7 | using SimpleJson; | ||
8 | |||
9 | [DebuggerDisplay("{Data}")] | ||
10 | public class IntermediateFieldValue | ||
11 | { | ||
12 | public string Context { get; internal set; } | ||
13 | |||
14 | internal object Data { get; set; } | ||
15 | |||
16 | public IntermediateFieldValue PreviousValue { get; internal set; } | ||
17 | |||
18 | public static explicit operator bool(IntermediateFieldValue value) | ||
19 | { | ||
20 | return value.AsBool(); | ||
21 | } | ||
22 | |||
23 | public static explicit operator bool? (IntermediateFieldValue value) | ||
24 | { | ||
25 | return value.AsNullableBool(); | ||
26 | } | ||
27 | |||
28 | public static explicit operator int(IntermediateFieldValue value) | ||
29 | { | ||
30 | return value.AsNumber(); | ||
31 | } | ||
32 | |||
33 | public static explicit operator int? (IntermediateFieldValue value) | ||
34 | { | ||
35 | return value.AsNullableNumber(); | ||
36 | } | ||
37 | |||
38 | public static explicit operator IntermediateFieldPathValue(IntermediateFieldValue value) | ||
39 | { | ||
40 | return value.AsPath(); | ||
41 | } | ||
42 | |||
43 | public static explicit operator string(IntermediateFieldValue value) | ||
44 | { | ||
45 | return value.AsString(); | ||
46 | } | ||
47 | |||
48 | internal static IntermediateFieldValue Deserialize(JsonObject jsonObject) | ||
49 | { | ||
50 | var context = jsonObject.GetValueOrDefault<string>("context"); | ||
51 | if (!jsonObject.TryGetValue("data", out var data)) | ||
52 | { | ||
53 | throw new ArgumentException(); | ||
54 | } | ||
55 | |||
56 | var value = data; | ||
57 | |||
58 | if (data is JsonObject jsonData) | ||
59 | { | ||
60 | Uri baseUri = null; | ||
61 | |||
62 | if (jsonData.TryGetValue("baseUri", out var baseUriValue) && baseUriValue is string) | ||
63 | { | ||
64 | baseUri = new Uri((string)baseUriValue); | ||
65 | } | ||
66 | jsonData.TryGetValue("embeddedIndex", out var embeddedIndex); | ||
67 | |||
68 | value = new IntermediateFieldPathValue | ||
69 | { | ||
70 | BaseUri = baseUri, | ||
71 | EmbeddedFileIndex = (int?)embeddedIndex, | ||
72 | Path = jsonData.GetValueOrDefault<string>("path"), | ||
73 | }; | ||
74 | } | ||
75 | |||
76 | var previousValueJson = jsonObject.GetValueOrDefault<JsonObject>("prev"); | ||
77 | var previousValue = (previousValueJson == null) ? null : IntermediateFieldValue.Deserialize(previousValueJson); | ||
78 | |||
79 | return new IntermediateFieldValue | ||
80 | { | ||
81 | Context = context, | ||
82 | Data = value, | ||
83 | PreviousValue = previousValue | ||
84 | }; | ||
85 | } | ||
86 | |||
87 | internal JsonObject Serialize() | ||
88 | { | ||
89 | var jsonObject = new JsonObject(); | ||
90 | |||
91 | if (!String.IsNullOrEmpty(this.Context)) | ||
92 | { | ||
93 | jsonObject.Add("context", this.Context); | ||
94 | } | ||
95 | |||
96 | if (this.Data is IntermediateFieldPathValue pathField) | ||
97 | { | ||
98 | var jsonData = new JsonObject(); | ||
99 | |||
100 | if (pathField.BaseUri != null) | ||
101 | { | ||
102 | jsonData.Add("baseUri", pathField.BaseUri.AbsoluteUri); | ||
103 | } | ||
104 | |||
105 | if (pathField.EmbeddedFileIndex.HasValue) | ||
106 | { | ||
107 | jsonData.Add("embeddedIndex", pathField.EmbeddedFileIndex.Value); | ||
108 | } | ||
109 | |||
110 | if (!String.IsNullOrEmpty(pathField.Path)) | ||
111 | { | ||
112 | jsonData.Add("path", pathField.Path); | ||
113 | } | ||
114 | |||
115 | jsonObject.Add("data", jsonData); | ||
116 | } | ||
117 | else | ||
118 | { | ||
119 | jsonObject.Add("data", this.Data); | ||
120 | } | ||
121 | |||
122 | if (this.PreviousValue != null) | ||
123 | { | ||
124 | var previousValueJson = this.PreviousValue.Serialize(); | ||
125 | jsonObject.Add("prev", previousValueJson); | ||
126 | } | ||
127 | |||
128 | return jsonObject; | ||
129 | } | ||
130 | } | ||
131 | } | ||
diff --git a/src/WixToolset.Data/IntermediateFieldValueExtensions.cs b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs new file mode 100644 index 00000000..bc106d4b --- /dev/null +++ b/src/WixToolset.Data/IntermediateFieldValueExtensions.cs | |||
@@ -0,0 +1,37 @@ | |||
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 | public static class IntermediateFieldValueExtensions | ||
6 | { | ||
7 | public static bool AsBool(this IntermediateFieldValue value) | ||
8 | { | ||
9 | return value?.Data == null ? false : (bool)value.Data; | ||
10 | } | ||
11 | |||
12 | public static bool? AsNullableBool(this IntermediateFieldValue value) | ||
13 | { | ||
14 | return (bool?)value?.Data; | ||
15 | } | ||
16 | |||
17 | public static int AsNumber(this IntermediateFieldValue value) | ||
18 | { | ||
19 | return value?.Data == null ? 0 : (int)value.Data; | ||
20 | } | ||
21 | |||
22 | public static int? AsNullableNumber(this IntermediateFieldValue value) | ||
23 | { | ||
24 | return (int?)value?.Data; | ||
25 | } | ||
26 | |||
27 | public static IntermediateFieldPathValue AsPath(this IntermediateFieldValue value) | ||
28 | { | ||
29 | return (IntermediateFieldPathValue)value?.Data; | ||
30 | } | ||
31 | |||
32 | public static string AsString(this IntermediateFieldValue value) | ||
33 | { | ||
34 | return (string)value?.Data; | ||
35 | } | ||
36 | } | ||
37 | } | ||
diff --git a/src/WixToolset.Data/IntermediateSection.cs b/src/WixToolset.Data/IntermediateSection.cs new file mode 100644 index 00000000..2b1f7375 --- /dev/null +++ b/src/WixToolset.Data/IntermediateSection.cs | |||
@@ -0,0 +1,118 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | using SimpleJson; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Section in an intermediate file. | ||
11 | /// </summary> | ||
12 | public class IntermediateSection | ||
13 | { | ||
14 | /// <summary> | ||
15 | /// Creates a new section as part of an intermediate. | ||
16 | /// </summary> | ||
17 | /// <param name="id">Identifier for section.</param> | ||
18 | /// <param name="type">Type of section.</param> | ||
19 | /// <param name="codepage">Codepage for resulting database.</param> | ||
20 | public IntermediateSection(string id, SectionType type, int codepage) | ||
21 | { | ||
22 | this.Id = id; | ||
23 | this.Type = type; | ||
24 | this.Codepage = codepage; | ||
25 | this.Tuples = new List<IntermediateTuple>(); | ||
26 | } | ||
27 | |||
28 | /// <summary> | ||
29 | /// Gets the identifier for the section. | ||
30 | /// </summary> | ||
31 | /// <value>Section identifier.</value> | ||
32 | public string Id { get; } | ||
33 | |||
34 | /// <summary> | ||
35 | /// Gets the type of the section. | ||
36 | /// </summary> | ||
37 | /// <value>Type of section.</value> | ||
38 | public SectionType Type { get; } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets the codepage for the section. | ||
42 | /// </summary> | ||
43 | /// <value>Codepage for the section.</value> | ||
44 | public int Codepage { get; set; } | ||
45 | |||
46 | /// <summary> | ||
47 | /// Gets and sets the identifier of the compilation of the source file containing the section. | ||
48 | /// </summary> | ||
49 | public string CompilationId { get; set; } | ||
50 | |||
51 | /// <summary> | ||
52 | /// Gets and sets the identifier of the library that combined the section. | ||
53 | /// </summary> | ||
54 | public string LibraryId { get; set; } | ||
55 | |||
56 | /// <summary> | ||
57 | /// Tuples in the section. | ||
58 | /// </summary> | ||
59 | public IList<IntermediateTuple> Tuples { get; } | ||
60 | |||
61 | /// <summary> | ||
62 | /// Parse a section from the JSON data. | ||
63 | /// </summary> | ||
64 | internal static IntermediateSection Deserialize(ITupleDefinitionCreator creator, JsonObject jsonObject) | ||
65 | { | ||
66 | var codepage = jsonObject.GetValueOrDefault("codepage", 0); | ||
67 | var id = jsonObject.GetValueOrDefault<string>("id"); | ||
68 | var type = jsonObject.GetEnumOrDefault("type", SectionType.Unknown); | ||
69 | var tuplesJson = jsonObject.GetValueOrDefault<JsonArray>("tuples"); | ||
70 | |||
71 | if (null == id && (SectionType.Unknown != type && SectionType.Fragment != type)) | ||
72 | { | ||
73 | throw new ArgumentException("JSON object is not a valid section"); | ||
74 | } | ||
75 | |||
76 | if (SectionType.Unknown == type) | ||
77 | { | ||
78 | throw new ArgumentException("JSON object is not a valid section", nameof(type)); | ||
79 | } | ||
80 | |||
81 | var section = new IntermediateSection(id, type, codepage); | ||
82 | |||
83 | foreach (JsonObject tupleJson in tuplesJson) | ||
84 | { | ||
85 | var tuple = IntermediateTuple.Deserialize(creator, tupleJson); | ||
86 | section.Tuples.Add(tuple); | ||
87 | } | ||
88 | |||
89 | return section; | ||
90 | } | ||
91 | |||
92 | internal JsonObject Serialize() | ||
93 | { | ||
94 | var jsonObject = new JsonObject | ||
95 | { | ||
96 | { "type", this.Type.ToString().ToLowerInvariant() }, | ||
97 | { "codepage", this.Codepage } | ||
98 | }; | ||
99 | |||
100 | if (!String.IsNullOrEmpty(this.Id)) | ||
101 | { | ||
102 | jsonObject.Add("id", this.Id); | ||
103 | } | ||
104 | |||
105 | var tuplesJson = new JsonArray(this.Tuples.Count); | ||
106 | |||
107 | foreach (var tuple in this.Tuples) | ||
108 | { | ||
109 | var tupleJson = tuple.Serialize(); | ||
110 | tuplesJson.Add(tupleJson); | ||
111 | } | ||
112 | |||
113 | jsonObject.Add("tuples", tuplesJson); | ||
114 | |||
115 | return jsonObject; | ||
116 | } | ||
117 | } | ||
118 | } | ||
diff --git a/src/WixToolset.Data/IntermediateTuple.cs b/src/WixToolset.Data/IntermediateTuple.cs new file mode 100644 index 00000000..36cee2aa --- /dev/null +++ b/src/WixToolset.Data/IntermediateTuple.cs | |||
@@ -0,0 +1,70 @@ | |||
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 SimpleJson; | ||
6 | |||
7 | public class IntermediateTuple | ||
8 | { | ||
9 | //public IntermediateTuple(IntermediateTupleDefinition definition) : this(definition, null, null) | ||
10 | //{ | ||
11 | //} | ||
12 | |||
13 | public IntermediateTuple(IntermediateTupleDefinition definition, SourceLineNumber sourceLineNumber, Identifier id = null) | ||
14 | { | ||
15 | this.Definition = definition; | ||
16 | this.Fields = new IntermediateField[definition.FieldDefinitions.Length]; | ||
17 | this.SourceLineNumbers = sourceLineNumber; | ||
18 | this.Id = id; | ||
19 | } | ||
20 | |||
21 | public IntermediateTupleDefinition Definition { get; } | ||
22 | |||
23 | public IntermediateField[] Fields { get; } | ||
24 | |||
25 | public SourceLineNumber SourceLineNumbers { get; set; } | ||
26 | |||
27 | public Identifier Id { get; set; } | ||
28 | |||
29 | public IntermediateField this[int index] => this.Fields[index]; | ||
30 | |||
31 | internal static IntermediateTuple Deserialize(ITupleDefinitionCreator creator, JsonObject jsonObject) | ||
32 | { | ||
33 | var definitionName = jsonObject.GetValueOrDefault<string>("def"); | ||
34 | var fieldsJson = jsonObject.GetValueOrDefault<JsonArray>("fields"); | ||
35 | |||
36 | creator.TryGetTupleDefinitionByName(definitionName, out var definition); // TODO: this isn't sufficient. | ||
37 | var tuple = definition.CreateTuple(); | ||
38 | |||
39 | for (var i = 0; i < fieldsJson.Count; ++i) | ||
40 | { | ||
41 | if (tuple.Fields.Length > i && fieldsJson[i] is JsonObject fieldJson) | ||
42 | { | ||
43 | tuple.Fields[i] = IntermediateField.Deserialize(tuple.Definition.FieldDefinitions[i], fieldJson); | ||
44 | } | ||
45 | } | ||
46 | |||
47 | return tuple; | ||
48 | } | ||
49 | |||
50 | internal JsonObject Serialize() | ||
51 | { | ||
52 | var jsonObject = new JsonObject | ||
53 | { | ||
54 | { "def", this.Definition.Name } | ||
55 | }; | ||
56 | |||
57 | var fieldsJson = new JsonArray(this.Fields.Length); | ||
58 | |||
59 | foreach (var field in this.Fields) | ||
60 | { | ||
61 | var fieldJson = field?.Serialize(); | ||
62 | fieldsJson.Add(fieldJson); | ||
63 | } | ||
64 | |||
65 | jsonObject.Add("fields", fieldsJson); | ||
66 | |||
67 | return jsonObject; | ||
68 | } | ||
69 | } | ||
70 | } | ||
diff --git a/src/WixToolset.Data/IntermediateTupleDefinition.cs b/src/WixToolset.Data/IntermediateTupleDefinition.cs new file mode 100644 index 00000000..5658cfe9 --- /dev/null +++ b/src/WixToolset.Data/IntermediateTupleDefinition.cs | |||
@@ -0,0 +1,47 @@ | |||
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 System; | ||
6 | |||
7 | public class IntermediateTupleDefinition | ||
8 | { | ||
9 | public IntermediateTupleDefinition(string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) | ||
10 | : this(TupleDefinitionType.MustBeFromAnExtension, name, fieldDefinitions, strongTupleType) | ||
11 | { | ||
12 | } | ||
13 | |||
14 | internal IntermediateTupleDefinition(TupleDefinitionType type, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) | ||
15 | : this(type, type.ToString(), fieldDefinitions, strongTupleType) | ||
16 | { | ||
17 | } | ||
18 | |||
19 | private IntermediateTupleDefinition(TupleDefinitionType type, string name, IntermediateFieldDefinition[] fieldDefinitions, Type strongTupleType) | ||
20 | { | ||
21 | this.Type = type; | ||
22 | this.Name = name; | ||
23 | this.FieldDefinitions = fieldDefinitions; | ||
24 | this.StrongTupleType = strongTupleType ?? typeof(IntermediateTuple); | ||
25 | #if DEBUG | ||
26 | if (!this.StrongTupleType.IsSubclassOf(typeof(IntermediateTuple))) throw new ArgumentException(nameof(strongTupleType)); | ||
27 | #endif | ||
28 | } | ||
29 | |||
30 | public TupleDefinitionType Type { get; } | ||
31 | |||
32 | public string Name { get; } | ||
33 | |||
34 | public IntermediateFieldDefinition[] FieldDefinitions { get; } | ||
35 | |||
36 | private Type StrongTupleType { get; } | ||
37 | |||
38 | public IntermediateTuple CreateTuple(SourceLineNumber sourceLineNumber = null, Identifier id = null) | ||
39 | { | ||
40 | var result = (this.StrongTupleType == typeof(IntermediateTuple)) ? (IntermediateTuple)Activator.CreateInstance(this.StrongTupleType, this) : (IntermediateTuple)Activator.CreateInstance(this.StrongTupleType); | ||
41 | result.SourceLineNumbers = sourceLineNumber; | ||
42 | result.Id = id; | ||
43 | |||
44 | return result; | ||
45 | } | ||
46 | } | ||
47 | } | ||
diff --git a/src/WixToolset.Data/IntermediateTupleExtensions.cs b/src/WixToolset.Data/IntermediateTupleExtensions.cs new file mode 100644 index 00000000..9865c06a --- /dev/null +++ b/src/WixToolset.Data/IntermediateTupleExtensions.cs | |||
@@ -0,0 +1,41 @@ | |||
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 | public static class IntermediateTupleExtensions | ||
6 | { | ||
7 | public static IntermediateField Set(this IntermediateTuple tuple, int index, object value) | ||
8 | { | ||
9 | var definition = tuple.Definition.FieldDefinitions[index]; | ||
10 | |||
11 | var field = tuple.Fields[index].Set(definition, value); ; | ||
12 | |||
13 | return tuple.Fields[index] = field; | ||
14 | } | ||
15 | |||
16 | public static bool AsBool(this IntermediateTuple tuple, int index) | ||
17 | { | ||
18 | return tuple?.Fields[index].AsBool() ?? false; | ||
19 | } | ||
20 | |||
21 | public static bool? AsNullableBool(this IntermediateTuple tuple, int index) | ||
22 | { | ||
23 | return tuple?.Fields[index].AsNullableBool(); | ||
24 | } | ||
25 | |||
26 | public static int AsNumber(this IntermediateTuple tuple, int index) | ||
27 | { | ||
28 | return tuple?.Fields[index].AsNumber() ?? 0; | ||
29 | } | ||
30 | |||
31 | public static int? AsNullableNumber(this IntermediateTuple tuple, int index) | ||
32 | { | ||
33 | return tuple?.Fields[index].AsNullableNumber(); | ||
34 | } | ||
35 | |||
36 | public static string AsString(this IntermediateTuple tuple, int index) | ||
37 | { | ||
38 | return tuple?.Fields[index].AsString(); | ||
39 | } | ||
40 | } | ||
41 | } | ||
diff --git a/src/WixToolset.Data/Json/JsonObjectExtensions.cs b/src/WixToolset.Data/Json/JsonObjectExtensions.cs new file mode 100644 index 00000000..091d90f4 --- /dev/null +++ b/src/WixToolset.Data/Json/JsonObjectExtensions.cs | |||
@@ -0,0 +1,29 @@ | |||
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 System; | ||
6 | using SimpleJson; | ||
7 | |||
8 | internal static class JsonObjectExtensions | ||
9 | { | ||
10 | public static int GetValueOrDefault(this JsonObject jsonObject, string key, int defaultValue) | ||
11 | { | ||
12 | return jsonObject.TryGetValue(key, out var value) ? Convert.ToInt32(value) : defaultValue; | ||
13 | } | ||
14 | |||
15 | public static T GetValueOrDefault<T>(this JsonObject jsonObject, string key, T defaultValue = default(T)) where T : class | ||
16 | { | ||
17 | return jsonObject.TryGetValue(key, out var value) ? value as T: defaultValue; | ||
18 | } | ||
19 | |||
20 | public static T GetEnumOrDefault<T>(this JsonObject jsonObject, string key, T defaultValue) where T : struct | ||
21 | { | ||
22 | #if DEBUG | ||
23 | if (!typeof(T).IsEnum) throw new ArgumentException("This method is designed to only only support enums.", nameof(T)); | ||
24 | #endif | ||
25 | var value = jsonObject.GetValueOrDefault<string>(key); | ||
26 | return Enum.TryParse(value, true, out T e) ? e : defaultValue; | ||
27 | } | ||
28 | } | ||
29 | } | ||
diff --git a/src/WixToolset.Data/Json/SimpleJson.cs b/src/WixToolset.Data/Json/SimpleJson.cs new file mode 100644 index 00000000..3d956f6e --- /dev/null +++ b/src/WixToolset.Data/Json/SimpleJson.cs | |||
@@ -0,0 +1,2127 @@ | |||
1 | //----------------------------------------------------------------------- | ||
2 | // <copyright file="SimpleJson.cs" company="The Outercurve Foundation"> | ||
3 | // Copyright (c) 2011, The Outercurve Foundation. | ||
4 | // | ||
5 | // Licensed under the MIT License (the "License"); | ||
6 | // you may not use this file except in compliance with the License. | ||
7 | // You may obtain a copy of the License at | ||
8 | // http://www.opensource.org/licenses/mit-license.php | ||
9 | // | ||
10 | // Unless required by applicable law or agreed to in writing, software | ||
11 | // distributed under the License is distributed on an "AS IS" BASIS, | ||
12 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
13 | // See the License for the specific language governing permissions and | ||
14 | // limitations under the License. | ||
15 | // </copyright> | ||
16 | // <author>Nathan Totten (ntotten.com), Jim Zimmerman (jimzimmerman.com) and Prabir Shrestha (prabir.me)</author> | ||
17 | // <website>https://github.com/facebook-csharp-sdk/simple-json</website> | ||
18 | //----------------------------------------------------------------------- | ||
19 | |||
20 | // VERSION: | ||
21 | |||
22 | // NOTE: uncomment the following line to make SimpleJson class internal. | ||
23 | #define SIMPLE_JSON_INTERNAL | ||
24 | |||
25 | // NOTE: uncomment the following line to make JsonArray and JsonObject class internal. | ||
26 | #define SIMPLE_JSON_OBJARRAYINTERNAL | ||
27 | |||
28 | // NOTE: uncomment the following line to enable dynamic support. | ||
29 | //#define SIMPLE_JSON_DYNAMIC | ||
30 | |||
31 | // NOTE: uncomment the following line to enable DataContract support. | ||
32 | //#define SIMPLE_JSON_DATACONTRACT | ||
33 | |||
34 | // NOTE: uncomment the following line to enable IReadOnlyCollection<T> and IReadOnlyList<T> support. | ||
35 | //#define SIMPLE_JSON_READONLY_COLLECTIONS | ||
36 | |||
37 | // NOTE: uncomment the following line to disable linq expressions/compiled lambda (better performance) instead of method.invoke(). | ||
38 | // define if you are using .net framework <= 3.0 or < WP7.5 | ||
39 | //#define SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
40 | |||
41 | // NOTE: uncomment the following line if you are compiling under Window Metro style application/library. | ||
42 | // usually already defined in properties | ||
43 | //#define NETFX_CORE; | ||
44 | |||
45 | // If you are targetting WinStore, WP8 and NET4.5+ PCL make sure to #define SIMPLE_JSON_TYPEINFO; | ||
46 | |||
47 | // original json parsing code from http://techblog.procurios.nl/k/618/news/view/14605/14863/How-do-I-write-my-own-parser-for-JSON.html | ||
48 | |||
49 | #if NETFX_CORE | ||
50 | #define SIMPLE_JSON_TYPEINFO | ||
51 | #endif | ||
52 | |||
53 | using System; | ||
54 | using System.CodeDom.Compiler; | ||
55 | using System.Collections; | ||
56 | using System.Collections.Generic; | ||
57 | #if !SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
58 | using System.Linq.Expressions; | ||
59 | #endif | ||
60 | using System.ComponentModel; | ||
61 | using System.Diagnostics.CodeAnalysis; | ||
62 | #if SIMPLE_JSON_DYNAMIC | ||
63 | using System.Dynamic; | ||
64 | #endif | ||
65 | using System.Globalization; | ||
66 | using System.Reflection; | ||
67 | using System.Runtime.Serialization; | ||
68 | using System.Text; | ||
69 | using SimpleJson.Reflection; | ||
70 | |||
71 | // ReSharper disable LoopCanBeConvertedToQuery | ||
72 | // ReSharper disable RedundantExplicitArrayCreation | ||
73 | // ReSharper disable SuggestUseVarKeywordEvident | ||
74 | namespace SimpleJson | ||
75 | { | ||
76 | /// <summary> | ||
77 | /// Represents the json array. | ||
78 | /// </summary> | ||
79 | [GeneratedCode("simple-json", "1.0.0")] | ||
80 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
81 | [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] | ||
82 | #if SIMPLE_JSON_OBJARRAYINTERNAL | ||
83 | internal | ||
84 | #else | ||
85 | public | ||
86 | #endif | ||
87 | class JsonArray : List<object> | ||
88 | { | ||
89 | /// <summary> | ||
90 | /// Initializes a new instance of the <see cref="JsonArray"/> class. | ||
91 | /// </summary> | ||
92 | public JsonArray() { } | ||
93 | |||
94 | /// <summary> | ||
95 | /// Initializes a new instance of the <see cref="JsonArray"/> class. | ||
96 | /// </summary> | ||
97 | /// <param name="capacity">The capacity of the json array.</param> | ||
98 | public JsonArray(int capacity) : base(capacity) { } | ||
99 | |||
100 | /// <summary> | ||
101 | /// The json representation of the array. | ||
102 | /// </summary> | ||
103 | /// <returns>The json representation of the array.</returns> | ||
104 | public override string ToString() | ||
105 | { | ||
106 | return SimpleJson.SerializeObject(this) ?? string.Empty; | ||
107 | } | ||
108 | } | ||
109 | |||
110 | /// <summary> | ||
111 | /// Represents the json object. | ||
112 | /// </summary> | ||
113 | [GeneratedCode("simple-json", "1.0.0")] | ||
114 | [EditorBrowsable(EditorBrowsableState.Never)] | ||
115 | [SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] | ||
116 | #if SIMPLE_JSON_OBJARRAYINTERNAL | ||
117 | internal | ||
118 | #else | ||
119 | public | ||
120 | #endif | ||
121 | class JsonObject : | ||
122 | #if SIMPLE_JSON_DYNAMIC | ||
123 | DynamicObject, | ||
124 | #endif | ||
125 | IDictionary<string, object> | ||
126 | { | ||
127 | /// <summary> | ||
128 | /// The internal member dictionary. | ||
129 | /// </summary> | ||
130 | private readonly Dictionary<string, object> _members; | ||
131 | |||
132 | /// <summary> | ||
133 | /// Initializes a new instance of <see cref="JsonObject"/>. | ||
134 | /// </summary> | ||
135 | public JsonObject() | ||
136 | { | ||
137 | _members = new Dictionary<string, object>(); | ||
138 | } | ||
139 | |||
140 | /// <summary> | ||
141 | /// Initializes a new instance of <see cref="JsonObject"/>. | ||
142 | /// </summary> | ||
143 | /// <param name="comparer">The <see cref="T:System.Collections.Generic.IEqualityComparer`1"/> implementation to use when comparing keys, or null to use the default <see cref="T:System.Collections.Generic.EqualityComparer`1"/> for the type of the key.</param> | ||
144 | public JsonObject(IEqualityComparer<string> comparer) | ||
145 | { | ||
146 | _members = new Dictionary<string, object>(comparer); | ||
147 | } | ||
148 | |||
149 | /// <summary> | ||
150 | /// Gets the <see cref="System.Object"/> at the specified index. | ||
151 | /// </summary> | ||
152 | /// <value></value> | ||
153 | public object this[int index] | ||
154 | { | ||
155 | get { return GetAtIndex(_members, index); } | ||
156 | } | ||
157 | |||
158 | internal static object GetAtIndex(IDictionary<string, object> obj, int index) | ||
159 | { | ||
160 | if (obj == null) | ||
161 | throw new ArgumentNullException("obj"); | ||
162 | if (index >= obj.Count) | ||
163 | throw new ArgumentOutOfRangeException("index"); | ||
164 | int i = 0; | ||
165 | foreach (KeyValuePair<string, object> o in obj) | ||
166 | if (i++ == index) return o.Value; | ||
167 | return null; | ||
168 | } | ||
169 | |||
170 | /// <summary> | ||
171 | /// Adds the specified key. | ||
172 | /// </summary> | ||
173 | /// <param name="key">The key.</param> | ||
174 | /// <param name="value">The value.</param> | ||
175 | public void Add(string key, object value) | ||
176 | { | ||
177 | _members.Add(key, value); | ||
178 | } | ||
179 | |||
180 | /// <summary> | ||
181 | /// Determines whether the specified key contains key. | ||
182 | /// </summary> | ||
183 | /// <param name="key">The key.</param> | ||
184 | /// <returns> | ||
185 | /// <c>true</c> if the specified key contains key; otherwise, <c>false</c>. | ||
186 | /// </returns> | ||
187 | public bool ContainsKey(string key) | ||
188 | { | ||
189 | return _members.ContainsKey(key); | ||
190 | } | ||
191 | |||
192 | /// <summary> | ||
193 | /// Gets the keys. | ||
194 | /// </summary> | ||
195 | /// <value>The keys.</value> | ||
196 | public ICollection<string> Keys | ||
197 | { | ||
198 | get { return _members.Keys; } | ||
199 | } | ||
200 | |||
201 | /// <summary> | ||
202 | /// Removes the specified key. | ||
203 | /// </summary> | ||
204 | /// <param name="key">The key.</param> | ||
205 | /// <returns></returns> | ||
206 | public bool Remove(string key) | ||
207 | { | ||
208 | return _members.Remove(key); | ||
209 | } | ||
210 | |||
211 | /// <summary> | ||
212 | /// Tries the get value. | ||
213 | /// </summary> | ||
214 | /// <param name="key">The key.</param> | ||
215 | /// <param name="value">The value.</param> | ||
216 | /// <returns></returns> | ||
217 | public bool TryGetValue(string key, out object value) | ||
218 | { | ||
219 | return _members.TryGetValue(key, out value); | ||
220 | } | ||
221 | |||
222 | /// <summary> | ||
223 | /// Gets the values. | ||
224 | /// </summary> | ||
225 | /// <value>The values.</value> | ||
226 | public ICollection<object> Values | ||
227 | { | ||
228 | get { return _members.Values; } | ||
229 | } | ||
230 | |||
231 | /// <summary> | ||
232 | /// Gets or sets the <see cref="System.Object"/> with the specified key. | ||
233 | /// </summary> | ||
234 | /// <value></value> | ||
235 | public object this[string key] | ||
236 | { | ||
237 | get { return _members[key]; } | ||
238 | set { _members[key] = value; } | ||
239 | } | ||
240 | |||
241 | /// <summary> | ||
242 | /// Adds the specified item. | ||
243 | /// </summary> | ||
244 | /// <param name="item">The item.</param> | ||
245 | public void Add(KeyValuePair<string, object> item) | ||
246 | { | ||
247 | _members.Add(item.Key, item.Value); | ||
248 | } | ||
249 | |||
250 | /// <summary> | ||
251 | /// Clears this instance. | ||
252 | /// </summary> | ||
253 | public void Clear() | ||
254 | { | ||
255 | _members.Clear(); | ||
256 | } | ||
257 | |||
258 | /// <summary> | ||
259 | /// Determines whether [contains] [the specified item]. | ||
260 | /// </summary> | ||
261 | /// <param name="item">The item.</param> | ||
262 | /// <returns> | ||
263 | /// <c>true</c> if [contains] [the specified item]; otherwise, <c>false</c>. | ||
264 | /// </returns> | ||
265 | public bool Contains(KeyValuePair<string, object> item) | ||
266 | { | ||
267 | return _members.ContainsKey(item.Key) && _members[item.Key] == item.Value; | ||
268 | } | ||
269 | |||
270 | /// <summary> | ||
271 | /// Copies to. | ||
272 | /// </summary> | ||
273 | /// <param name="array">The array.</param> | ||
274 | /// <param name="arrayIndex">Index of the array.</param> | ||
275 | public void CopyTo(KeyValuePair<string, object>[] array, int arrayIndex) | ||
276 | { | ||
277 | if (array == null) throw new ArgumentNullException("array"); | ||
278 | int num = Count; | ||
279 | foreach (KeyValuePair<string, object> kvp in this) | ||
280 | { | ||
281 | array[arrayIndex++] = kvp; | ||
282 | if (--num <= 0) | ||
283 | return; | ||
284 | } | ||
285 | } | ||
286 | |||
287 | /// <summary> | ||
288 | /// Gets the count. | ||
289 | /// </summary> | ||
290 | /// <value>The count.</value> | ||
291 | public int Count | ||
292 | { | ||
293 | get { return _members.Count; } | ||
294 | } | ||
295 | |||
296 | /// <summary> | ||
297 | /// Gets a value indicating whether this instance is read only. | ||
298 | /// </summary> | ||
299 | /// <value> | ||
300 | /// <c>true</c> if this instance is read only; otherwise, <c>false</c>. | ||
301 | /// </value> | ||
302 | public bool IsReadOnly | ||
303 | { | ||
304 | get { return false; } | ||
305 | } | ||
306 | |||
307 | /// <summary> | ||
308 | /// Removes the specified item. | ||
309 | /// </summary> | ||
310 | /// <param name="item">The item.</param> | ||
311 | /// <returns></returns> | ||
312 | public bool Remove(KeyValuePair<string, object> item) | ||
313 | { | ||
314 | return _members.Remove(item.Key); | ||
315 | } | ||
316 | |||
317 | /// <summary> | ||
318 | /// Gets the enumerator. | ||
319 | /// </summary> | ||
320 | /// <returns></returns> | ||
321 | public IEnumerator<KeyValuePair<string, object>> GetEnumerator() | ||
322 | { | ||
323 | return _members.GetEnumerator(); | ||
324 | } | ||
325 | |||
326 | /// <summary> | ||
327 | /// Returns an enumerator that iterates through a collection. | ||
328 | /// </summary> | ||
329 | /// <returns> | ||
330 | /// An <see cref="T:System.Collections.IEnumerator"/> object that can be used to iterate through the collection. | ||
331 | /// </returns> | ||
332 | IEnumerator IEnumerable.GetEnumerator() | ||
333 | { | ||
334 | return _members.GetEnumerator(); | ||
335 | } | ||
336 | |||
337 | /// <summary> | ||
338 | /// Returns a json <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. | ||
339 | /// </summary> | ||
340 | /// <returns> | ||
341 | /// A json <see cref="T:System.String"/> that represents the current <see cref="T:System.Object"/>. | ||
342 | /// </returns> | ||
343 | public override string ToString() | ||
344 | { | ||
345 | return SimpleJson.SerializeObject(this); | ||
346 | } | ||
347 | |||
348 | #if SIMPLE_JSON_DYNAMIC | ||
349 | /// <summary> | ||
350 | /// Provides implementation for type conversion operations. Classes derived from the <see cref="T:System.Dynamic.DynamicObject"/> class can override this method to specify dynamic behavior for operations that convert an object from one type to another. | ||
351 | /// </summary> | ||
352 | /// <param name="binder">Provides information about the conversion operation. The binder.Type property provides the type to which the object must be converted. For example, for the statement (String)sampleObject in C# (CType(sampleObject, Type) in Visual Basic), where sampleObject is an instance of the class derived from the <see cref="T:System.Dynamic.DynamicObject"/> class, binder.Type returns the <see cref="T:System.String"/> type. The binder.Explicit property provides information about the kind of conversion that occurs. It returns true for explicit conversion and false for implicit conversion.</param> | ||
353 | /// <param name="result">The result of the type conversion operation.</param> | ||
354 | /// <returns> | ||
355 | /// Alwasy returns true. | ||
356 | /// </returns> | ||
357 | public override bool TryConvert(ConvertBinder binder, out object result) | ||
358 | { | ||
359 | // <pex> | ||
360 | if (binder == null) | ||
361 | throw new ArgumentNullException("binder"); | ||
362 | // </pex> | ||
363 | Type targetType = binder.Type; | ||
364 | |||
365 | if ((targetType == typeof(IEnumerable)) || | ||
366 | (targetType == typeof(IEnumerable<KeyValuePair<string, object>>)) || | ||
367 | (targetType == typeof(IDictionary<string, object>)) || | ||
368 | (targetType == typeof(IDictionary))) | ||
369 | { | ||
370 | result = this; | ||
371 | return true; | ||
372 | } | ||
373 | |||
374 | return base.TryConvert(binder, out result); | ||
375 | } | ||
376 | |||
377 | /// <summary> | ||
378 | /// Provides the implementation for operations that delete an object member. This method is not intended for use in C# or Visual Basic. | ||
379 | /// </summary> | ||
380 | /// <param name="binder">Provides information about the deletion.</param> | ||
381 | /// <returns> | ||
382 | /// Alwasy returns true. | ||
383 | /// </returns> | ||
384 | public override bool TryDeleteMember(DeleteMemberBinder binder) | ||
385 | { | ||
386 | // <pex> | ||
387 | if (binder == null) | ||
388 | throw new ArgumentNullException("binder"); | ||
389 | // </pex> | ||
390 | return _members.Remove(binder.Name); | ||
391 | } | ||
392 | |||
393 | /// <summary> | ||
394 | /// Provides the implementation for operations that get a value by index. Classes derived from the <see cref="T:System.Dynamic.DynamicObject"/> class can override this method to specify dynamic behavior for indexing operations. | ||
395 | /// </summary> | ||
396 | /// <param name="binder">Provides information about the operation.</param> | ||
397 | /// <param name="indexes">The indexes that are used in the operation. For example, for the sampleObject[3] operation in C# (sampleObject(3) in Visual Basic), where sampleObject is derived from the DynamicObject class, <paramref name="indexes"/> is equal to 3.</param> | ||
398 | /// <param name="result">The result of the index operation.</param> | ||
399 | /// <returns> | ||
400 | /// Alwasy returns true. | ||
401 | /// </returns> | ||
402 | public override bool TryGetIndex(GetIndexBinder binder, object[] indexes, out object result) | ||
403 | { | ||
404 | if (indexes == null) throw new ArgumentNullException("indexes"); | ||
405 | if (indexes.Length == 1) | ||
406 | { | ||
407 | result = ((IDictionary<string, object>)this)[(string)indexes[0]]; | ||
408 | return true; | ||
409 | } | ||
410 | result = null; | ||
411 | return true; | ||
412 | } | ||
413 | |||
414 | /// <summary> | ||
415 | /// Provides the implementation for operations that get member values. Classes derived from the <see cref="T:System.Dynamic.DynamicObject"/> class can override this method to specify dynamic behavior for operations such as getting a value for a property. | ||
416 | /// </summary> | ||
417 | /// <param name="binder">Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member on which the dynamic operation is performed. For example, for the Console.WriteLine(sampleObject.SampleProperty) statement, where sampleObject is an instance of the class derived from the <see cref="T:System.Dynamic.DynamicObject"/> class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive.</param> | ||
418 | /// <param name="result">The result of the get operation. For example, if the method is called for a property, you can assign the property value to <paramref name="result"/>.</param> | ||
419 | /// <returns> | ||
420 | /// Alwasy returns true. | ||
421 | /// </returns> | ||
422 | public override bool TryGetMember(GetMemberBinder binder, out object result) | ||
423 | { | ||
424 | object value; | ||
425 | if (_members.TryGetValue(binder.Name, out value)) | ||
426 | { | ||
427 | result = value; | ||
428 | return true; | ||
429 | } | ||
430 | result = null; | ||
431 | return true; | ||
432 | } | ||
433 | |||
434 | /// <summary> | ||
435 | /// Provides the implementation for operations that set a value by index. Classes derived from the <see cref="T:System.Dynamic.DynamicObject"/> class can override this method to specify dynamic behavior for operations that access objects by a specified index. | ||
436 | /// </summary> | ||
437 | /// <param name="binder">Provides information about the operation.</param> | ||
438 | /// <param name="indexes">The indexes that are used in the operation. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the <see cref="T:System.Dynamic.DynamicObject"/> class, <paramref name="indexes"/> is equal to 3.</param> | ||
439 | /// <param name="value">The value to set to the object that has the specified index. For example, for the sampleObject[3] = 10 operation in C# (sampleObject(3) = 10 in Visual Basic), where sampleObject is derived from the <see cref="T:System.Dynamic.DynamicObject"/> class, <paramref name="value"/> is equal to 10.</param> | ||
440 | /// <returns> | ||
441 | /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown. | ||
442 | /// </returns> | ||
443 | public override bool TrySetIndex(SetIndexBinder binder, object[] indexes, object value) | ||
444 | { | ||
445 | if (indexes == null) throw new ArgumentNullException("indexes"); | ||
446 | if (indexes.Length == 1) | ||
447 | { | ||
448 | ((IDictionary<string, object>)this)[(string)indexes[0]] = value; | ||
449 | return true; | ||
450 | } | ||
451 | return base.TrySetIndex(binder, indexes, value); | ||
452 | } | ||
453 | |||
454 | /// <summary> | ||
455 | /// Provides the implementation for operations that set member values. Classes derived from the <see cref="T:System.Dynamic.DynamicObject"/> class can override this method to specify dynamic behavior for operations such as setting a value for a property. | ||
456 | /// </summary> | ||
457 | /// <param name="binder">Provides information about the object that called the dynamic operation. The binder.Name property provides the name of the member to which the value is being assigned. For example, for the statement sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the <see cref="T:System.Dynamic.DynamicObject"/> class, binder.Name returns "SampleProperty". The binder.IgnoreCase property specifies whether the member name is case-sensitive.</param> | ||
458 | /// <param name="value">The value to set to the member. For example, for sampleObject.SampleProperty = "Test", where sampleObject is an instance of the class derived from the <see cref="T:System.Dynamic.DynamicObject"/> class, the <paramref name="value"/> is "Test".</param> | ||
459 | /// <returns> | ||
460 | /// true if the operation is successful; otherwise, false. If this method returns false, the run-time binder of the language determines the behavior. (In most cases, a language-specific run-time exception is thrown.) | ||
461 | /// </returns> | ||
462 | public override bool TrySetMember(SetMemberBinder binder, object value) | ||
463 | { | ||
464 | // <pex> | ||
465 | if (binder == null) | ||
466 | throw new ArgumentNullException("binder"); | ||
467 | // </pex> | ||
468 | _members[binder.Name] = value; | ||
469 | return true; | ||
470 | } | ||
471 | |||
472 | /// <summary> | ||
473 | /// Returns the enumeration of all dynamic member names. | ||
474 | /// </summary> | ||
475 | /// <returns> | ||
476 | /// A sequence that contains dynamic member names. | ||
477 | /// </returns> | ||
478 | public override IEnumerable<string> GetDynamicMemberNames() | ||
479 | { | ||
480 | foreach (var key in Keys) | ||
481 | yield return key; | ||
482 | } | ||
483 | #endif | ||
484 | } | ||
485 | } | ||
486 | |||
487 | namespace SimpleJson | ||
488 | { | ||
489 | /// <summary> | ||
490 | /// This class encodes and decodes JSON strings. | ||
491 | /// Spec. details, see http://www.json.org/ | ||
492 | /// | ||
493 | /// JSON uses Arrays and Objects. These correspond here to the datatypes JsonArray(IList<object>) and JsonObject(IDictionary<string,object>). | ||
494 | /// All numbers are parsed to doubles. | ||
495 | /// </summary> | ||
496 | [GeneratedCode("simple-json", "1.0.0")] | ||
497 | #if SIMPLE_JSON_INTERNAL | ||
498 | internal | ||
499 | #else | ||
500 | public | ||
501 | #endif | ||
502 | static class SimpleJson | ||
503 | { | ||
504 | private const int TOKEN_NONE = 0; | ||
505 | private const int TOKEN_CURLY_OPEN = 1; | ||
506 | private const int TOKEN_CURLY_CLOSE = 2; | ||
507 | private const int TOKEN_SQUARED_OPEN = 3; | ||
508 | private const int TOKEN_SQUARED_CLOSE = 4; | ||
509 | private const int TOKEN_COLON = 5; | ||
510 | private const int TOKEN_COMMA = 6; | ||
511 | private const int TOKEN_STRING = 7; | ||
512 | private const int TOKEN_NUMBER = 8; | ||
513 | private const int TOKEN_TRUE = 9; | ||
514 | private const int TOKEN_FALSE = 10; | ||
515 | private const int TOKEN_NULL = 11; | ||
516 | private const int BUILDER_CAPACITY = 2000; | ||
517 | |||
518 | private static readonly char[] EscapeTable; | ||
519 | private static readonly char[] EscapeCharacters = new char[] { '"', '\\', '\b', '\f', '\n', '\r', '\t' }; | ||
520 | private static readonly string EscapeCharactersString = new string(EscapeCharacters); | ||
521 | |||
522 | static SimpleJson() | ||
523 | { | ||
524 | EscapeTable = new char[93]; | ||
525 | EscapeTable['"'] = '"'; | ||
526 | EscapeTable['\\'] = '\\'; | ||
527 | EscapeTable['\b'] = 'b'; | ||
528 | EscapeTable['\f'] = 'f'; | ||
529 | EscapeTable['\n'] = 'n'; | ||
530 | EscapeTable['\r'] = 'r'; | ||
531 | EscapeTable['\t'] = 't'; | ||
532 | } | ||
533 | |||
534 | /// <summary> | ||
535 | /// Parses the string json into a value | ||
536 | /// </summary> | ||
537 | /// <param name="json">A JSON string.</param> | ||
538 | /// <returns>An IList<object>, a IDictionary<string,object>, a double, a string, null, true, or false</returns> | ||
539 | public static object DeserializeObject(string json) | ||
540 | { | ||
541 | object obj; | ||
542 | if (TryDeserializeObject(json, out obj)) | ||
543 | return obj; | ||
544 | throw new SerializationException("Invalid JSON string"); | ||
545 | } | ||
546 | |||
547 | /// <summary> | ||
548 | /// Try parsing the json string into a value. | ||
549 | /// </summary> | ||
550 | /// <param name="json"> | ||
551 | /// A JSON string. | ||
552 | /// </param> | ||
553 | /// <param name="obj"> | ||
554 | /// The object. | ||
555 | /// </param> | ||
556 | /// <returns> | ||
557 | /// Returns true if successfull otherwise false. | ||
558 | /// </returns> | ||
559 | [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] | ||
560 | public static bool TryDeserializeObject(string json, out object obj) | ||
561 | { | ||
562 | bool success = true; | ||
563 | if (json != null) | ||
564 | { | ||
565 | char[] charArray = json.ToCharArray(); | ||
566 | int index = 0; | ||
567 | obj = ParseValue(charArray, ref index, ref success); | ||
568 | } | ||
569 | else | ||
570 | obj = null; | ||
571 | |||
572 | return success; | ||
573 | } | ||
574 | |||
575 | public static object DeserializeObject(string json, Type type, IJsonSerializerStrategy jsonSerializerStrategy) | ||
576 | { | ||
577 | object jsonObject = DeserializeObject(json); | ||
578 | return type == null || jsonObject != null && ReflectionUtils.IsAssignableFrom(jsonObject.GetType(), type) | ||
579 | ? jsonObject | ||
580 | : (jsonSerializerStrategy ?? CurrentJsonSerializerStrategy).DeserializeObject(jsonObject, type); | ||
581 | } | ||
582 | |||
583 | public static object DeserializeObject(string json, Type type) | ||
584 | { | ||
585 | return DeserializeObject(json, type, null); | ||
586 | } | ||
587 | |||
588 | public static T DeserializeObject<T>(string json, IJsonSerializerStrategy jsonSerializerStrategy) | ||
589 | { | ||
590 | return (T)DeserializeObject(json, typeof(T), jsonSerializerStrategy); | ||
591 | } | ||
592 | |||
593 | public static T DeserializeObject<T>(string json) | ||
594 | { | ||
595 | return (T)DeserializeObject(json, typeof(T), null); | ||
596 | } | ||
597 | |||
598 | /// <summary> | ||
599 | /// Converts a IDictionary<string,object> / IList<object> object into a JSON string | ||
600 | /// </summary> | ||
601 | /// <param name="json">A IDictionary<string,object> / IList<object></param> | ||
602 | /// <param name="jsonSerializerStrategy">Serializer strategy to use</param> | ||
603 | /// <returns>A JSON encoded string, or null if object 'json' is not serializable</returns> | ||
604 | public static string SerializeObject(object json, IJsonSerializerStrategy jsonSerializerStrategy) | ||
605 | { | ||
606 | StringBuilder builder = new StringBuilder(BUILDER_CAPACITY); | ||
607 | bool success = SerializeValue(jsonSerializerStrategy, json, builder); | ||
608 | return (success ? builder.ToString() : null); | ||
609 | } | ||
610 | |||
611 | public static string SerializeObject(object json) | ||
612 | { | ||
613 | return SerializeObject(json, CurrentJsonSerializerStrategy); | ||
614 | } | ||
615 | |||
616 | public static string EscapeToJavascriptString(string jsonString) | ||
617 | { | ||
618 | if (string.IsNullOrEmpty(jsonString)) | ||
619 | return jsonString; | ||
620 | |||
621 | StringBuilder sb = new StringBuilder(); | ||
622 | char c; | ||
623 | |||
624 | for (int i = 0; i < jsonString.Length;) | ||
625 | { | ||
626 | c = jsonString[i++]; | ||
627 | |||
628 | if (c == '\\') | ||
629 | { | ||
630 | int remainingLength = jsonString.Length - i; | ||
631 | if (remainingLength >= 2) | ||
632 | { | ||
633 | char lookahead = jsonString[i]; | ||
634 | if (lookahead == '\\') | ||
635 | { | ||
636 | sb.Append('\\'); | ||
637 | ++i; | ||
638 | } | ||
639 | else if (lookahead == '"') | ||
640 | { | ||
641 | sb.Append("\""); | ||
642 | ++i; | ||
643 | } | ||
644 | else if (lookahead == 't') | ||
645 | { | ||
646 | sb.Append('\t'); | ||
647 | ++i; | ||
648 | } | ||
649 | else if (lookahead == 'b') | ||
650 | { | ||
651 | sb.Append('\b'); | ||
652 | ++i; | ||
653 | } | ||
654 | else if (lookahead == 'n') | ||
655 | { | ||
656 | sb.Append('\n'); | ||
657 | ++i; | ||
658 | } | ||
659 | else if (lookahead == 'r') | ||
660 | { | ||
661 | sb.Append('\r'); | ||
662 | ++i; | ||
663 | } | ||
664 | } | ||
665 | } | ||
666 | else | ||
667 | { | ||
668 | sb.Append(c); | ||
669 | } | ||
670 | } | ||
671 | return sb.ToString(); | ||
672 | } | ||
673 | |||
674 | static IDictionary<string, object> ParseObject(char[] json, ref int index, ref bool success) | ||
675 | { | ||
676 | IDictionary<string, object> table = new JsonObject(); | ||
677 | int token; | ||
678 | |||
679 | // { | ||
680 | NextToken(json, ref index); | ||
681 | |||
682 | bool done = false; | ||
683 | while (!done) | ||
684 | { | ||
685 | token = LookAhead(json, index); | ||
686 | if (token == TOKEN_NONE) | ||
687 | { | ||
688 | success = false; | ||
689 | return null; | ||
690 | } | ||
691 | else if (token == TOKEN_COMMA) | ||
692 | NextToken(json, ref index); | ||
693 | else if (token == TOKEN_CURLY_CLOSE) | ||
694 | { | ||
695 | NextToken(json, ref index); | ||
696 | return table; | ||
697 | } | ||
698 | else | ||
699 | { | ||
700 | // name | ||
701 | string name = ParseString(json, ref index, ref success); | ||
702 | if (!success) | ||
703 | { | ||
704 | success = false; | ||
705 | return null; | ||
706 | } | ||
707 | // : | ||
708 | token = NextToken(json, ref index); | ||
709 | if (token != TOKEN_COLON) | ||
710 | { | ||
711 | success = false; | ||
712 | return null; | ||
713 | } | ||
714 | // value | ||
715 | object value = ParseValue(json, ref index, ref success); | ||
716 | if (!success) | ||
717 | { | ||
718 | success = false; | ||
719 | return null; | ||
720 | } | ||
721 | table[name] = value; | ||
722 | } | ||
723 | } | ||
724 | return table; | ||
725 | } | ||
726 | |||
727 | static JsonArray ParseArray(char[] json, ref int index, ref bool success) | ||
728 | { | ||
729 | JsonArray array = new JsonArray(); | ||
730 | |||
731 | // [ | ||
732 | NextToken(json, ref index); | ||
733 | |||
734 | bool done = false; | ||
735 | while (!done) | ||
736 | { | ||
737 | int token = LookAhead(json, index); | ||
738 | if (token == TOKEN_NONE) | ||
739 | { | ||
740 | success = false; | ||
741 | return null; | ||
742 | } | ||
743 | else if (token == TOKEN_COMMA) | ||
744 | NextToken(json, ref index); | ||
745 | else if (token == TOKEN_SQUARED_CLOSE) | ||
746 | { | ||
747 | NextToken(json, ref index); | ||
748 | break; | ||
749 | } | ||
750 | else | ||
751 | { | ||
752 | object value = ParseValue(json, ref index, ref success); | ||
753 | if (!success) | ||
754 | return null; | ||
755 | array.Add(value); | ||
756 | } | ||
757 | } | ||
758 | return array; | ||
759 | } | ||
760 | |||
761 | static object ParseValue(char[] json, ref int index, ref bool success) | ||
762 | { | ||
763 | switch (LookAhead(json, index)) | ||
764 | { | ||
765 | case TOKEN_STRING: | ||
766 | return ParseString(json, ref index, ref success); | ||
767 | case TOKEN_NUMBER: | ||
768 | return ParseNumber(json, ref index, ref success); | ||
769 | case TOKEN_CURLY_OPEN: | ||
770 | return ParseObject(json, ref index, ref success); | ||
771 | case TOKEN_SQUARED_OPEN: | ||
772 | return ParseArray(json, ref index, ref success); | ||
773 | case TOKEN_TRUE: | ||
774 | NextToken(json, ref index); | ||
775 | return true; | ||
776 | case TOKEN_FALSE: | ||
777 | NextToken(json, ref index); | ||
778 | return false; | ||
779 | case TOKEN_NULL: | ||
780 | NextToken(json, ref index); | ||
781 | return null; | ||
782 | case TOKEN_NONE: | ||
783 | break; | ||
784 | } | ||
785 | success = false; | ||
786 | return null; | ||
787 | } | ||
788 | |||
789 | static string ParseString(char[] json, ref int index, ref bool success) | ||
790 | { | ||
791 | StringBuilder s = new StringBuilder(BUILDER_CAPACITY); | ||
792 | char c; | ||
793 | |||
794 | EatWhitespace(json, ref index); | ||
795 | |||
796 | // " | ||
797 | c = json[index++]; | ||
798 | bool complete = false; | ||
799 | while (!complete) | ||
800 | { | ||
801 | if (index == json.Length) | ||
802 | break; | ||
803 | |||
804 | c = json[index++]; | ||
805 | if (c == '"') | ||
806 | { | ||
807 | complete = true; | ||
808 | break; | ||
809 | } | ||
810 | else if (c == '\\') | ||
811 | { | ||
812 | if (index == json.Length) | ||
813 | break; | ||
814 | c = json[index++]; | ||
815 | if (c == '"') | ||
816 | s.Append('"'); | ||
817 | else if (c == '\\') | ||
818 | s.Append('\\'); | ||
819 | else if (c == '/') | ||
820 | s.Append('/'); | ||
821 | else if (c == 'b') | ||
822 | s.Append('\b'); | ||
823 | else if (c == 'f') | ||
824 | s.Append('\f'); | ||
825 | else if (c == 'n') | ||
826 | s.Append('\n'); | ||
827 | else if (c == 'r') | ||
828 | s.Append('\r'); | ||
829 | else if (c == 't') | ||
830 | s.Append('\t'); | ||
831 | else if (c == 'u') | ||
832 | { | ||
833 | int remainingLength = json.Length - index; | ||
834 | if (remainingLength >= 4) | ||
835 | { | ||
836 | // parse the 32 bit hex into an integer codepoint | ||
837 | uint codePoint; | ||
838 | if (!(success = UInt32.TryParse(new string(json, index, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out codePoint))) | ||
839 | return ""; | ||
840 | |||
841 | // convert the integer codepoint to a unicode char and add to string | ||
842 | if (0xD800 <= codePoint && codePoint <= 0xDBFF) // if high surrogate | ||
843 | { | ||
844 | index += 4; // skip 4 chars | ||
845 | remainingLength = json.Length - index; | ||
846 | if (remainingLength >= 6) | ||
847 | { | ||
848 | uint lowCodePoint; | ||
849 | if (new string(json, index, 2) == "\\u" && UInt32.TryParse(new string(json, index + 2, 4), NumberStyles.HexNumber, CultureInfo.InvariantCulture, out lowCodePoint)) | ||
850 | { | ||
851 | if (0xDC00 <= lowCodePoint && lowCodePoint <= 0xDFFF) // if low surrogate | ||
852 | { | ||
853 | s.Append((char)codePoint); | ||
854 | s.Append((char)lowCodePoint); | ||
855 | index += 6; // skip 6 chars | ||
856 | continue; | ||
857 | } | ||
858 | } | ||
859 | } | ||
860 | success = false; // invalid surrogate pair | ||
861 | return ""; | ||
862 | } | ||
863 | s.Append(ConvertFromUtf32((int)codePoint)); | ||
864 | // skip 4 chars | ||
865 | index += 4; | ||
866 | } | ||
867 | else | ||
868 | break; | ||
869 | } | ||
870 | } | ||
871 | else | ||
872 | s.Append(c); | ||
873 | } | ||
874 | if (!complete) | ||
875 | { | ||
876 | success = false; | ||
877 | return null; | ||
878 | } | ||
879 | return s.ToString(); | ||
880 | } | ||
881 | |||
882 | private static string ConvertFromUtf32(int utf32) | ||
883 | { | ||
884 | // http://www.java2s.com/Open-Source/CSharp/2.6.4-mono-.net-core/System/System/Char.cs.htm | ||
885 | if (utf32 < 0 || utf32 > 0x10FFFF) | ||
886 | throw new ArgumentOutOfRangeException("utf32", "The argument must be from 0 to 0x10FFFF."); | ||
887 | if (0xD800 <= utf32 && utf32 <= 0xDFFF) | ||
888 | throw new ArgumentOutOfRangeException("utf32", "The argument must not be in surrogate pair range."); | ||
889 | if (utf32 < 0x10000) | ||
890 | return new string((char)utf32, 1); | ||
891 | utf32 -= 0x10000; | ||
892 | return new string(new char[] { (char)((utf32 >> 10) + 0xD800), (char)(utf32 % 0x0400 + 0xDC00) }); | ||
893 | } | ||
894 | |||
895 | static object ParseNumber(char[] json, ref int index, ref bool success) | ||
896 | { | ||
897 | EatWhitespace(json, ref index); | ||
898 | int lastIndex = GetLastIndexOfNumber(json, index); | ||
899 | int charLength = (lastIndex - index) + 1; | ||
900 | object returnNumber; | ||
901 | string str = new string(json, index, charLength); | ||
902 | if (str.IndexOf(".", StringComparison.OrdinalIgnoreCase) != -1 || str.IndexOf("e", StringComparison.OrdinalIgnoreCase) != -1) | ||
903 | { | ||
904 | double number; | ||
905 | success = double.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); | ||
906 | returnNumber = number; | ||
907 | } | ||
908 | else | ||
909 | { | ||
910 | long number; | ||
911 | success = long.TryParse(new string(json, index, charLength), NumberStyles.Any, CultureInfo.InvariantCulture, out number); | ||
912 | returnNumber = number; | ||
913 | } | ||
914 | index = lastIndex + 1; | ||
915 | return returnNumber; | ||
916 | } | ||
917 | |||
918 | static int GetLastIndexOfNumber(char[] json, int index) | ||
919 | { | ||
920 | int lastIndex; | ||
921 | for (lastIndex = index; lastIndex < json.Length; lastIndex++) | ||
922 | if ("0123456789+-.eE".IndexOf(json[lastIndex]) == -1) break; | ||
923 | return lastIndex - 1; | ||
924 | } | ||
925 | |||
926 | static void EatWhitespace(char[] json, ref int index) | ||
927 | { | ||
928 | for (; index < json.Length; index++) | ||
929 | if (" \t\n\r\b\f".IndexOf(json[index]) == -1) break; | ||
930 | } | ||
931 | |||
932 | static int LookAhead(char[] json, int index) | ||
933 | { | ||
934 | int saveIndex = index; | ||
935 | return NextToken(json, ref saveIndex); | ||
936 | } | ||
937 | |||
938 | [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] | ||
939 | static int NextToken(char[] json, ref int index) | ||
940 | { | ||
941 | EatWhitespace(json, ref index); | ||
942 | if (index == json.Length) | ||
943 | return TOKEN_NONE; | ||
944 | char c = json[index]; | ||
945 | index++; | ||
946 | switch (c) | ||
947 | { | ||
948 | case '{': | ||
949 | return TOKEN_CURLY_OPEN; | ||
950 | case '}': | ||
951 | return TOKEN_CURLY_CLOSE; | ||
952 | case '[': | ||
953 | return TOKEN_SQUARED_OPEN; | ||
954 | case ']': | ||
955 | return TOKEN_SQUARED_CLOSE; | ||
956 | case ',': | ||
957 | return TOKEN_COMMA; | ||
958 | case '"': | ||
959 | return TOKEN_STRING; | ||
960 | case '0': | ||
961 | case '1': | ||
962 | case '2': | ||
963 | case '3': | ||
964 | case '4': | ||
965 | case '5': | ||
966 | case '6': | ||
967 | case '7': | ||
968 | case '8': | ||
969 | case '9': | ||
970 | case '-': | ||
971 | return TOKEN_NUMBER; | ||
972 | case ':': | ||
973 | return TOKEN_COLON; | ||
974 | } | ||
975 | index--; | ||
976 | int remainingLength = json.Length - index; | ||
977 | // false | ||
978 | if (remainingLength >= 5) | ||
979 | { | ||
980 | if (json[index] == 'f' && json[index + 1] == 'a' && json[index + 2] == 'l' && json[index + 3] == 's' && json[index + 4] == 'e') | ||
981 | { | ||
982 | index += 5; | ||
983 | return TOKEN_FALSE; | ||
984 | } | ||
985 | } | ||
986 | // true | ||
987 | if (remainingLength >= 4) | ||
988 | { | ||
989 | if (json[index] == 't' && json[index + 1] == 'r' && json[index + 2] == 'u' && json[index + 3] == 'e') | ||
990 | { | ||
991 | index += 4; | ||
992 | return TOKEN_TRUE; | ||
993 | } | ||
994 | } | ||
995 | // null | ||
996 | if (remainingLength >= 4) | ||
997 | { | ||
998 | if (json[index] == 'n' && json[index + 1] == 'u' && json[index + 2] == 'l' && json[index + 3] == 'l') | ||
999 | { | ||
1000 | index += 4; | ||
1001 | return TOKEN_NULL; | ||
1002 | } | ||
1003 | } | ||
1004 | return TOKEN_NONE; | ||
1005 | } | ||
1006 | |||
1007 | static bool SerializeValue(IJsonSerializerStrategy jsonSerializerStrategy, object value, StringBuilder builder) | ||
1008 | { | ||
1009 | bool success = true; | ||
1010 | string stringValue = value as string; | ||
1011 | if (stringValue != null) | ||
1012 | success = SerializeString(stringValue, builder); | ||
1013 | else | ||
1014 | { | ||
1015 | IDictionary<string, object> dict = value as IDictionary<string, object>; | ||
1016 | if (dict != null) | ||
1017 | { | ||
1018 | success = SerializeObject(jsonSerializerStrategy, dict.Keys, dict.Values, builder); | ||
1019 | } | ||
1020 | else | ||
1021 | { | ||
1022 | IDictionary<string, string> stringDictionary = value as IDictionary<string, string>; | ||
1023 | if (stringDictionary != null) | ||
1024 | { | ||
1025 | success = SerializeObject(jsonSerializerStrategy, stringDictionary.Keys, stringDictionary.Values, builder); | ||
1026 | } | ||
1027 | else | ||
1028 | { | ||
1029 | IEnumerable enumerableValue = value as IEnumerable; | ||
1030 | if (enumerableValue != null) | ||
1031 | success = SerializeArray(jsonSerializerStrategy, enumerableValue, builder); | ||
1032 | else if (IsNumeric(value)) | ||
1033 | success = SerializeNumber(value, builder); | ||
1034 | else if (value is bool) | ||
1035 | builder.Append((bool)value ? "true" : "false"); | ||
1036 | else if (value == null) | ||
1037 | builder.Append("null"); | ||
1038 | else | ||
1039 | { | ||
1040 | object serializedObject; | ||
1041 | success = jsonSerializerStrategy.TrySerializeNonPrimitiveObject(value, out serializedObject); | ||
1042 | if (success) | ||
1043 | SerializeValue(jsonSerializerStrategy, serializedObject, builder); | ||
1044 | } | ||
1045 | } | ||
1046 | } | ||
1047 | } | ||
1048 | return success; | ||
1049 | } | ||
1050 | |||
1051 | static bool SerializeObject(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable keys, IEnumerable values, StringBuilder builder) | ||
1052 | { | ||
1053 | builder.Append("{"); | ||
1054 | IEnumerator ke = keys.GetEnumerator(); | ||
1055 | IEnumerator ve = values.GetEnumerator(); | ||
1056 | bool first = true; | ||
1057 | while (ke.MoveNext() && ve.MoveNext()) | ||
1058 | { | ||
1059 | object key = ke.Current; | ||
1060 | object value = ve.Current; | ||
1061 | if (!first) | ||
1062 | builder.Append(","); | ||
1063 | string stringKey = key as string; | ||
1064 | if (stringKey != null) | ||
1065 | SerializeString(stringKey, builder); | ||
1066 | else | ||
1067 | if (!SerializeValue(jsonSerializerStrategy, value, builder)) return false; | ||
1068 | builder.Append(":"); | ||
1069 | if (!SerializeValue(jsonSerializerStrategy, value, builder)) | ||
1070 | return false; | ||
1071 | first = false; | ||
1072 | } | ||
1073 | builder.Append("}"); | ||
1074 | return true; | ||
1075 | } | ||
1076 | |||
1077 | static bool SerializeArray(IJsonSerializerStrategy jsonSerializerStrategy, IEnumerable anArray, StringBuilder builder) | ||
1078 | { | ||
1079 | builder.Append("["); | ||
1080 | bool first = true; | ||
1081 | foreach (object value in anArray) | ||
1082 | { | ||
1083 | if (!first) | ||
1084 | builder.Append(","); | ||
1085 | if (!SerializeValue(jsonSerializerStrategy, value, builder)) | ||
1086 | return false; | ||
1087 | first = false; | ||
1088 | } | ||
1089 | builder.Append("]"); | ||
1090 | return true; | ||
1091 | } | ||
1092 | |||
1093 | static bool SerializeString(string aString, StringBuilder builder) | ||
1094 | { | ||
1095 | // Happy path if there's nothing to be escaped. IndexOfAny is highly optimized (and unmanaged) | ||
1096 | if (aString.IndexOfAny(EscapeCharacters) == -1) | ||
1097 | { | ||
1098 | builder.Append('"'); | ||
1099 | builder.Append(aString); | ||
1100 | builder.Append('"'); | ||
1101 | |||
1102 | return true; | ||
1103 | } | ||
1104 | |||
1105 | builder.Append('"'); | ||
1106 | int safeCharacterCount = 0; | ||
1107 | char[] charArray = aString.ToCharArray(); | ||
1108 | |||
1109 | for (int i = 0; i < charArray.Length; i++) | ||
1110 | { | ||
1111 | char c = charArray[i]; | ||
1112 | |||
1113 | // Non ascii characters are fine, buffer them up and send them to the builder | ||
1114 | // in larger chunks if possible. The escape table is a 1:1 translation table | ||
1115 | // with \0 [default(char)] denoting a safe character. | ||
1116 | if (c >= EscapeTable.Length || EscapeTable[c] == default(char)) | ||
1117 | { | ||
1118 | safeCharacterCount++; | ||
1119 | } | ||
1120 | else | ||
1121 | { | ||
1122 | if (safeCharacterCount > 0) | ||
1123 | { | ||
1124 | builder.Append(charArray, i - safeCharacterCount, safeCharacterCount); | ||
1125 | safeCharacterCount = 0; | ||
1126 | } | ||
1127 | |||
1128 | builder.Append('\\'); | ||
1129 | builder.Append(EscapeTable[c]); | ||
1130 | } | ||
1131 | } | ||
1132 | |||
1133 | if (safeCharacterCount > 0) | ||
1134 | { | ||
1135 | builder.Append(charArray, charArray.Length - safeCharacterCount, safeCharacterCount); | ||
1136 | } | ||
1137 | |||
1138 | builder.Append('"'); | ||
1139 | return true; | ||
1140 | } | ||
1141 | |||
1142 | static bool SerializeNumber(object number, StringBuilder builder) | ||
1143 | { | ||
1144 | if (number is long) | ||
1145 | builder.Append(((long)number).ToString(CultureInfo.InvariantCulture)); | ||
1146 | else if (number is ulong) | ||
1147 | builder.Append(((ulong)number).ToString(CultureInfo.InvariantCulture)); | ||
1148 | else if (number is int) | ||
1149 | builder.Append(((int)number).ToString(CultureInfo.InvariantCulture)); | ||
1150 | else if (number is uint) | ||
1151 | builder.Append(((uint)number).ToString(CultureInfo.InvariantCulture)); | ||
1152 | else if (number is decimal) | ||
1153 | builder.Append(((decimal)number).ToString(CultureInfo.InvariantCulture)); | ||
1154 | else if (number is float) | ||
1155 | builder.Append(((float)number).ToString(CultureInfo.InvariantCulture)); | ||
1156 | else | ||
1157 | builder.Append(Convert.ToDouble(number, CultureInfo.InvariantCulture).ToString("r", CultureInfo.InvariantCulture)); | ||
1158 | return true; | ||
1159 | } | ||
1160 | |||
1161 | /// <summary> | ||
1162 | /// Determines if a given object is numeric in any way | ||
1163 | /// (can be integer, double, null, etc). | ||
1164 | /// </summary> | ||
1165 | static bool IsNumeric(object value) | ||
1166 | { | ||
1167 | if (value is sbyte) return true; | ||
1168 | if (value is byte) return true; | ||
1169 | if (value is short) return true; | ||
1170 | if (value is ushort) return true; | ||
1171 | if (value is int) return true; | ||
1172 | if (value is uint) return true; | ||
1173 | if (value is long) return true; | ||
1174 | if (value is ulong) return true; | ||
1175 | if (value is float) return true; | ||
1176 | if (value is double) return true; | ||
1177 | if (value is decimal) return true; | ||
1178 | return false; | ||
1179 | } | ||
1180 | |||
1181 | private static IJsonSerializerStrategy _currentJsonSerializerStrategy; | ||
1182 | public static IJsonSerializerStrategy CurrentJsonSerializerStrategy | ||
1183 | { | ||
1184 | get | ||
1185 | { | ||
1186 | return _currentJsonSerializerStrategy ?? | ||
1187 | (_currentJsonSerializerStrategy = | ||
1188 | #if SIMPLE_JSON_DATACONTRACT | ||
1189 | DataContractJsonSerializerStrategy | ||
1190 | #else | ||
1191 | PocoJsonSerializerStrategy | ||
1192 | #endif | ||
1193 | ); | ||
1194 | } | ||
1195 | set | ||
1196 | { | ||
1197 | _currentJsonSerializerStrategy = value; | ||
1198 | } | ||
1199 | } | ||
1200 | |||
1201 | private static PocoJsonSerializerStrategy _pocoJsonSerializerStrategy; | ||
1202 | [EditorBrowsable(EditorBrowsableState.Advanced)] | ||
1203 | public static PocoJsonSerializerStrategy PocoJsonSerializerStrategy | ||
1204 | { | ||
1205 | get | ||
1206 | { | ||
1207 | return _pocoJsonSerializerStrategy ?? (_pocoJsonSerializerStrategy = new PocoJsonSerializerStrategy()); | ||
1208 | } | ||
1209 | } | ||
1210 | |||
1211 | #if SIMPLE_JSON_DATACONTRACT | ||
1212 | |||
1213 | private static DataContractJsonSerializerStrategy _dataContractJsonSerializerStrategy; | ||
1214 | [System.ComponentModel.EditorBrowsable(EditorBrowsableState.Advanced)] | ||
1215 | public static DataContractJsonSerializerStrategy DataContractJsonSerializerStrategy | ||
1216 | { | ||
1217 | get | ||
1218 | { | ||
1219 | return _dataContractJsonSerializerStrategy ?? (_dataContractJsonSerializerStrategy = new DataContractJsonSerializerStrategy()); | ||
1220 | } | ||
1221 | } | ||
1222 | |||
1223 | #endif | ||
1224 | } | ||
1225 | |||
1226 | [GeneratedCode("simple-json", "1.0.0")] | ||
1227 | #if SIMPLE_JSON_INTERNAL | ||
1228 | internal | ||
1229 | #else | ||
1230 | public | ||
1231 | #endif | ||
1232 | interface IJsonSerializerStrategy | ||
1233 | { | ||
1234 | [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] | ||
1235 | bool TrySerializeNonPrimitiveObject(object input, out object output); | ||
1236 | object DeserializeObject(object value, Type type); | ||
1237 | } | ||
1238 | |||
1239 | [GeneratedCode("simple-json", "1.0.0")] | ||
1240 | #if SIMPLE_JSON_INTERNAL | ||
1241 | internal | ||
1242 | #else | ||
1243 | public | ||
1244 | #endif | ||
1245 | class PocoJsonSerializerStrategy : IJsonSerializerStrategy | ||
1246 | { | ||
1247 | internal IDictionary<Type, ReflectionUtils.ConstructorDelegate> ConstructorCache; | ||
1248 | internal IDictionary<Type, IDictionary<string, ReflectionUtils.GetDelegate>> GetCache; | ||
1249 | internal IDictionary<Type, IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>>> SetCache; | ||
1250 | |||
1251 | internal static readonly Type[] EmptyTypes = new Type[0]; | ||
1252 | internal static readonly Type[] ArrayConstructorParameterTypes = new Type[] { typeof(int) }; | ||
1253 | |||
1254 | private static readonly string[] Iso8601Format = new string[] | ||
1255 | { | ||
1256 | @"yyyy-MM-dd\THH:mm:ss.FFFFFFF\Z", | ||
1257 | @"yyyy-MM-dd\THH:mm:ss\Z", | ||
1258 | @"yyyy-MM-dd\THH:mm:ssK" | ||
1259 | }; | ||
1260 | |||
1261 | public PocoJsonSerializerStrategy() | ||
1262 | { | ||
1263 | ConstructorCache = new ReflectionUtils.ThreadSafeDictionary<Type, ReflectionUtils.ConstructorDelegate>(ContructorDelegateFactory); | ||
1264 | GetCache = new ReflectionUtils.ThreadSafeDictionary<Type, IDictionary<string, ReflectionUtils.GetDelegate>>(GetterValueFactory); | ||
1265 | SetCache = new ReflectionUtils.ThreadSafeDictionary<Type, IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>>>(SetterValueFactory); | ||
1266 | } | ||
1267 | |||
1268 | protected virtual string MapClrMemberNameToJsonFieldName(string clrPropertyName) | ||
1269 | { | ||
1270 | return clrPropertyName; | ||
1271 | } | ||
1272 | |||
1273 | internal virtual ReflectionUtils.ConstructorDelegate ContructorDelegateFactory(Type key) | ||
1274 | { | ||
1275 | return ReflectionUtils.GetContructor(key, key.IsArray ? ArrayConstructorParameterTypes : EmptyTypes); | ||
1276 | } | ||
1277 | |||
1278 | internal virtual IDictionary<string, ReflectionUtils.GetDelegate> GetterValueFactory(Type type) | ||
1279 | { | ||
1280 | IDictionary<string, ReflectionUtils.GetDelegate> result = new Dictionary<string, ReflectionUtils.GetDelegate>(); | ||
1281 | foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) | ||
1282 | { | ||
1283 | if (propertyInfo.CanRead) | ||
1284 | { | ||
1285 | MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); | ||
1286 | if (getMethod.IsStatic || !getMethod.IsPublic) | ||
1287 | continue; | ||
1288 | result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = ReflectionUtils.GetGetMethod(propertyInfo); | ||
1289 | } | ||
1290 | } | ||
1291 | foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) | ||
1292 | { | ||
1293 | if (fieldInfo.IsStatic || !fieldInfo.IsPublic) | ||
1294 | continue; | ||
1295 | result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = ReflectionUtils.GetGetMethod(fieldInfo); | ||
1296 | } | ||
1297 | return result; | ||
1298 | } | ||
1299 | |||
1300 | internal virtual IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>> SetterValueFactory(Type type) | ||
1301 | { | ||
1302 | IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>> result = new Dictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>>(); | ||
1303 | foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) | ||
1304 | { | ||
1305 | if (propertyInfo.CanWrite) | ||
1306 | { | ||
1307 | MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); | ||
1308 | if (setMethod.IsStatic || !setMethod.IsPublic) | ||
1309 | continue; | ||
1310 | result[MapClrMemberNameToJsonFieldName(propertyInfo.Name)] = new KeyValuePair<Type, ReflectionUtils.SetDelegate>(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); | ||
1311 | } | ||
1312 | } | ||
1313 | foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) | ||
1314 | { | ||
1315 | if (fieldInfo.IsInitOnly || fieldInfo.IsStatic || !fieldInfo.IsPublic) | ||
1316 | continue; | ||
1317 | result[MapClrMemberNameToJsonFieldName(fieldInfo.Name)] = new KeyValuePair<Type, ReflectionUtils.SetDelegate>(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); | ||
1318 | } | ||
1319 | return result; | ||
1320 | } | ||
1321 | |||
1322 | public virtual bool TrySerializeNonPrimitiveObject(object input, out object output) | ||
1323 | { | ||
1324 | return TrySerializeKnownTypes(input, out output) || TrySerializeUnknownTypes(input, out output); | ||
1325 | } | ||
1326 | |||
1327 | [SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity")] | ||
1328 | public virtual object DeserializeObject(object value, Type type) | ||
1329 | { | ||
1330 | if (type == null) throw new ArgumentNullException("type"); | ||
1331 | string str = value as string; | ||
1332 | |||
1333 | if (type == typeof(Guid) && string.IsNullOrEmpty(str)) | ||
1334 | return default(Guid); | ||
1335 | |||
1336 | if (value == null) | ||
1337 | return null; | ||
1338 | |||
1339 | object obj = null; | ||
1340 | |||
1341 | if (str != null) | ||
1342 | { | ||
1343 | if (str.Length != 0) // We know it can't be null now. | ||
1344 | { | ||
1345 | if (type == typeof(DateTime) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTime))) | ||
1346 | return DateTime.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); | ||
1347 | if (type == typeof(DateTimeOffset) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(DateTimeOffset))) | ||
1348 | return DateTimeOffset.ParseExact(str, Iso8601Format, CultureInfo.InvariantCulture, DateTimeStyles.AssumeUniversal | DateTimeStyles.AdjustToUniversal); | ||
1349 | if (type == typeof(Guid) || (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid))) | ||
1350 | return new Guid(str); | ||
1351 | if (type == typeof(Uri)) | ||
1352 | { | ||
1353 | bool isValid = Uri.IsWellFormedUriString(str, UriKind.RelativeOrAbsolute); | ||
1354 | |||
1355 | Uri result; | ||
1356 | if (isValid && Uri.TryCreate(str, UriKind.RelativeOrAbsolute, out result)) | ||
1357 | return result; | ||
1358 | |||
1359 | return null; | ||
1360 | } | ||
1361 | |||
1362 | if (type == typeof(string)) | ||
1363 | return str; | ||
1364 | |||
1365 | return Convert.ChangeType(str, type, CultureInfo.InvariantCulture); | ||
1366 | } | ||
1367 | else | ||
1368 | { | ||
1369 | if (type == typeof(Guid)) | ||
1370 | obj = default(Guid); | ||
1371 | else if (ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) | ||
1372 | obj = null; | ||
1373 | else | ||
1374 | obj = str; | ||
1375 | } | ||
1376 | // Empty string case | ||
1377 | if (!ReflectionUtils.IsNullableType(type) && Nullable.GetUnderlyingType(type) == typeof(Guid)) | ||
1378 | return str; | ||
1379 | } | ||
1380 | else if (value is bool) | ||
1381 | return value; | ||
1382 | |||
1383 | bool valueIsLong = value is long; | ||
1384 | bool valueIsDouble = value is double; | ||
1385 | if ((valueIsLong && type == typeof(long)) || (valueIsDouble && type == typeof(double))) | ||
1386 | return value; | ||
1387 | if ((valueIsDouble && type != typeof(double)) || (valueIsLong && type != typeof(long))) | ||
1388 | { | ||
1389 | obj = type == typeof(int) || type == typeof(long) || type == typeof(double) || type == typeof(float) || type == typeof(bool) || type == typeof(decimal) || type == typeof(byte) || type == typeof(short) | ||
1390 | ? Convert.ChangeType(value, type, CultureInfo.InvariantCulture) | ||
1391 | : value; | ||
1392 | } | ||
1393 | else | ||
1394 | { | ||
1395 | IDictionary<string, object> objects = value as IDictionary<string, object>; | ||
1396 | if (objects != null) | ||
1397 | { | ||
1398 | IDictionary<string, object> jsonObject = objects; | ||
1399 | |||
1400 | if (ReflectionUtils.IsTypeDictionary(type)) | ||
1401 | { | ||
1402 | // if dictionary then | ||
1403 | Type[] types = ReflectionUtils.GetGenericTypeArguments(type); | ||
1404 | Type keyType = types[0]; | ||
1405 | Type valueType = types[1]; | ||
1406 | |||
1407 | Type genericType = typeof(Dictionary<,>).MakeGenericType(keyType, valueType); | ||
1408 | |||
1409 | IDictionary dict = (IDictionary)ConstructorCache[genericType](); | ||
1410 | |||
1411 | foreach (KeyValuePair<string, object> kvp in jsonObject) | ||
1412 | dict.Add(kvp.Key, DeserializeObject(kvp.Value, valueType)); | ||
1413 | |||
1414 | obj = dict; | ||
1415 | } | ||
1416 | else | ||
1417 | { | ||
1418 | if (type == typeof(object)) | ||
1419 | obj = value; | ||
1420 | else | ||
1421 | { | ||
1422 | obj = ConstructorCache[type](); | ||
1423 | foreach (KeyValuePair<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>> setter in SetCache[type]) | ||
1424 | { | ||
1425 | object jsonValue; | ||
1426 | if (jsonObject.TryGetValue(setter.Key, out jsonValue)) | ||
1427 | { | ||
1428 | jsonValue = DeserializeObject(jsonValue, setter.Value.Key); | ||
1429 | setter.Value.Value(obj, jsonValue); | ||
1430 | } | ||
1431 | } | ||
1432 | } | ||
1433 | } | ||
1434 | } | ||
1435 | else | ||
1436 | { | ||
1437 | IList<object> valueAsList = value as IList<object>; | ||
1438 | if (valueAsList != null) | ||
1439 | { | ||
1440 | IList<object> jsonObject = valueAsList; | ||
1441 | IList list = null; | ||
1442 | |||
1443 | if (type.IsArray) | ||
1444 | { | ||
1445 | list = (IList)ConstructorCache[type](jsonObject.Count); | ||
1446 | int i = 0; | ||
1447 | foreach (object o in jsonObject) | ||
1448 | list[i++] = DeserializeObject(o, type.GetElementType()); | ||
1449 | } | ||
1450 | else if (ReflectionUtils.IsTypeGenericeCollectionInterface(type) || ReflectionUtils.IsAssignableFrom(typeof(IList), type)) | ||
1451 | { | ||
1452 | Type innerType = ReflectionUtils.GetGenericListElementType(type); | ||
1453 | list = (IList)(ConstructorCache[type] ?? ConstructorCache[typeof(List<>).MakeGenericType(innerType)])(jsonObject.Count); | ||
1454 | foreach (object o in jsonObject) | ||
1455 | list.Add(DeserializeObject(o, innerType)); | ||
1456 | } | ||
1457 | obj = list; | ||
1458 | } | ||
1459 | } | ||
1460 | return obj; | ||
1461 | } | ||
1462 | if (ReflectionUtils.IsNullableType(type)) | ||
1463 | return ReflectionUtils.ToNullableType(obj, type); | ||
1464 | return obj; | ||
1465 | } | ||
1466 | |||
1467 | protected virtual object SerializeEnum(Enum p) | ||
1468 | { | ||
1469 | return Convert.ToDouble(p, CultureInfo.InvariantCulture); | ||
1470 | } | ||
1471 | |||
1472 | [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] | ||
1473 | protected virtual bool TrySerializeKnownTypes(object input, out object output) | ||
1474 | { | ||
1475 | bool returnValue = true; | ||
1476 | if (input is DateTime) | ||
1477 | output = ((DateTime)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); | ||
1478 | else if (input is DateTimeOffset) | ||
1479 | output = ((DateTimeOffset)input).ToUniversalTime().ToString(Iso8601Format[0], CultureInfo.InvariantCulture); | ||
1480 | else if (input is Guid) | ||
1481 | output = ((Guid)input).ToString("D"); | ||
1482 | else if (input is Uri) | ||
1483 | output = input.ToString(); | ||
1484 | else | ||
1485 | { | ||
1486 | Enum inputEnum = input as Enum; | ||
1487 | if (inputEnum != null) | ||
1488 | output = SerializeEnum(inputEnum); | ||
1489 | else | ||
1490 | { | ||
1491 | returnValue = false; | ||
1492 | output = null; | ||
1493 | } | ||
1494 | } | ||
1495 | return returnValue; | ||
1496 | } | ||
1497 | [SuppressMessage("Microsoft.Design", "CA1007:UseGenericsWhereAppropriate", Justification = "Need to support .NET 2")] | ||
1498 | protected virtual bool TrySerializeUnknownTypes(object input, out object output) | ||
1499 | { | ||
1500 | if (input == null) throw new ArgumentNullException("input"); | ||
1501 | output = null; | ||
1502 | Type type = input.GetType(); | ||
1503 | if (type.FullName == null) | ||
1504 | return false; | ||
1505 | IDictionary<string, object> obj = new JsonObject(); | ||
1506 | IDictionary<string, ReflectionUtils.GetDelegate> getters = GetCache[type]; | ||
1507 | foreach (KeyValuePair<string, ReflectionUtils.GetDelegate> getter in getters) | ||
1508 | { | ||
1509 | if (getter.Value != null) | ||
1510 | obj.Add(MapClrMemberNameToJsonFieldName(getter.Key), getter.Value(input)); | ||
1511 | } | ||
1512 | output = obj; | ||
1513 | return true; | ||
1514 | } | ||
1515 | } | ||
1516 | |||
1517 | #if SIMPLE_JSON_DATACONTRACT | ||
1518 | [GeneratedCode("simple-json", "1.0.0")] | ||
1519 | #if SIMPLE_JSON_INTERNAL | ||
1520 | internal | ||
1521 | #else | ||
1522 | public | ||
1523 | #endif | ||
1524 | class DataContractJsonSerializerStrategy : PocoJsonSerializerStrategy | ||
1525 | { | ||
1526 | public DataContractJsonSerializerStrategy() | ||
1527 | { | ||
1528 | GetCache = new ReflectionUtils.ThreadSafeDictionary<Type, IDictionary<string, ReflectionUtils.GetDelegate>>(GetterValueFactory); | ||
1529 | SetCache = new ReflectionUtils.ThreadSafeDictionary<Type, IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>>>(SetterValueFactory); | ||
1530 | } | ||
1531 | |||
1532 | internal override IDictionary<string, ReflectionUtils.GetDelegate> GetterValueFactory(Type type) | ||
1533 | { | ||
1534 | bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; | ||
1535 | if (!hasDataContract) | ||
1536 | return base.GetterValueFactory(type); | ||
1537 | string jsonKey; | ||
1538 | IDictionary<string, ReflectionUtils.GetDelegate> result = new Dictionary<string, ReflectionUtils.GetDelegate>(); | ||
1539 | foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) | ||
1540 | { | ||
1541 | if (propertyInfo.CanRead) | ||
1542 | { | ||
1543 | MethodInfo getMethod = ReflectionUtils.GetGetterMethodInfo(propertyInfo); | ||
1544 | if (!getMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) | ||
1545 | result[jsonKey] = ReflectionUtils.GetGetMethod(propertyInfo); | ||
1546 | } | ||
1547 | } | ||
1548 | foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) | ||
1549 | { | ||
1550 | if (!fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) | ||
1551 | result[jsonKey] = ReflectionUtils.GetGetMethod(fieldInfo); | ||
1552 | } | ||
1553 | return result; | ||
1554 | } | ||
1555 | |||
1556 | internal override IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>> SetterValueFactory(Type type) | ||
1557 | { | ||
1558 | bool hasDataContract = ReflectionUtils.GetAttribute(type, typeof(DataContractAttribute)) != null; | ||
1559 | if (!hasDataContract) | ||
1560 | return base.SetterValueFactory(type); | ||
1561 | string jsonKey; | ||
1562 | IDictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>> result = new Dictionary<string, KeyValuePair<Type, ReflectionUtils.SetDelegate>>(); | ||
1563 | foreach (PropertyInfo propertyInfo in ReflectionUtils.GetProperties(type)) | ||
1564 | { | ||
1565 | if (propertyInfo.CanWrite) | ||
1566 | { | ||
1567 | MethodInfo setMethod = ReflectionUtils.GetSetterMethodInfo(propertyInfo); | ||
1568 | if (!setMethod.IsStatic && CanAdd(propertyInfo, out jsonKey)) | ||
1569 | result[jsonKey] = new KeyValuePair<Type, ReflectionUtils.SetDelegate>(propertyInfo.PropertyType, ReflectionUtils.GetSetMethod(propertyInfo)); | ||
1570 | } | ||
1571 | } | ||
1572 | foreach (FieldInfo fieldInfo in ReflectionUtils.GetFields(type)) | ||
1573 | { | ||
1574 | if (!fieldInfo.IsInitOnly && !fieldInfo.IsStatic && CanAdd(fieldInfo, out jsonKey)) | ||
1575 | result[jsonKey] = new KeyValuePair<Type, ReflectionUtils.SetDelegate>(fieldInfo.FieldType, ReflectionUtils.GetSetMethod(fieldInfo)); | ||
1576 | } | ||
1577 | // todo implement sorting for DATACONTRACT. | ||
1578 | return result; | ||
1579 | } | ||
1580 | |||
1581 | private static bool CanAdd(MemberInfo info, out string jsonKey) | ||
1582 | { | ||
1583 | jsonKey = null; | ||
1584 | if (ReflectionUtils.GetAttribute(info, typeof(IgnoreDataMemberAttribute)) != null) | ||
1585 | return false; | ||
1586 | DataMemberAttribute dataMemberAttribute = (DataMemberAttribute)ReflectionUtils.GetAttribute(info, typeof(DataMemberAttribute)); | ||
1587 | if (dataMemberAttribute == null) | ||
1588 | return false; | ||
1589 | jsonKey = string.IsNullOrEmpty(dataMemberAttribute.Name) ? info.Name : dataMemberAttribute.Name; | ||
1590 | return true; | ||
1591 | } | ||
1592 | } | ||
1593 | |||
1594 | #endif | ||
1595 | |||
1596 | namespace Reflection | ||
1597 | { | ||
1598 | // This class is meant to be copied into other libraries. So we want to exclude it from Code Analysis rules | ||
1599 | // that might be in place in the target project. | ||
1600 | [GeneratedCode("reflection-utils", "1.0.0")] | ||
1601 | #if SIMPLE_JSON_REFLECTION_UTILS_PUBLIC | ||
1602 | public | ||
1603 | #else | ||
1604 | internal | ||
1605 | #endif | ||
1606 | class ReflectionUtils | ||
1607 | { | ||
1608 | private static readonly object[] EmptyObjects = new object[] { }; | ||
1609 | |||
1610 | public delegate object GetDelegate(object source); | ||
1611 | public delegate void SetDelegate(object source, object value); | ||
1612 | public delegate object ConstructorDelegate(params object[] args); | ||
1613 | |||
1614 | public delegate TValue ThreadSafeDictionaryValueFactory<TKey, TValue>(TKey key); | ||
1615 | |||
1616 | #if SIMPLE_JSON_TYPEINFO | ||
1617 | public static TypeInfo GetTypeInfo(Type type) | ||
1618 | { | ||
1619 | return type.GetTypeInfo(); | ||
1620 | } | ||
1621 | #else | ||
1622 | public static Type GetTypeInfo(Type type) | ||
1623 | { | ||
1624 | return type; | ||
1625 | } | ||
1626 | #endif | ||
1627 | |||
1628 | public static Attribute GetAttribute(MemberInfo info, Type type) | ||
1629 | { | ||
1630 | #if SIMPLE_JSON_TYPEINFO | ||
1631 | if (info == null || type == null || !info.IsDefined(type)) | ||
1632 | return null; | ||
1633 | return info.GetCustomAttribute(type); | ||
1634 | #else | ||
1635 | if (info == null || type == null || !Attribute.IsDefined(info, type)) | ||
1636 | return null; | ||
1637 | return Attribute.GetCustomAttribute(info, type); | ||
1638 | #endif | ||
1639 | } | ||
1640 | |||
1641 | public static Type GetGenericListElementType(Type type) | ||
1642 | { | ||
1643 | IEnumerable<Type> interfaces; | ||
1644 | #if SIMPLE_JSON_TYPEINFO | ||
1645 | interfaces = type.GetTypeInfo().ImplementedInterfaces; | ||
1646 | #else | ||
1647 | interfaces = type.GetInterfaces(); | ||
1648 | #endif | ||
1649 | foreach (Type implementedInterface in interfaces) | ||
1650 | { | ||
1651 | if (IsTypeGeneric(implementedInterface) && | ||
1652 | implementedInterface.GetGenericTypeDefinition() == typeof(IList<>)) | ||
1653 | { | ||
1654 | return GetGenericTypeArguments(implementedInterface)[0]; | ||
1655 | } | ||
1656 | } | ||
1657 | return GetGenericTypeArguments(type)[0]; | ||
1658 | } | ||
1659 | |||
1660 | public static Attribute GetAttribute(Type objectType, Type attributeType) | ||
1661 | { | ||
1662 | |||
1663 | #if SIMPLE_JSON_TYPEINFO | ||
1664 | if (objectType == null || attributeType == null || !objectType.GetTypeInfo().IsDefined(attributeType)) | ||
1665 | return null; | ||
1666 | return objectType.GetTypeInfo().GetCustomAttribute(attributeType); | ||
1667 | #else | ||
1668 | if (objectType == null || attributeType == null || !Attribute.IsDefined(objectType, attributeType)) | ||
1669 | return null; | ||
1670 | return Attribute.GetCustomAttribute(objectType, attributeType); | ||
1671 | #endif | ||
1672 | } | ||
1673 | |||
1674 | public static Type[] GetGenericTypeArguments(Type type) | ||
1675 | { | ||
1676 | #if SIMPLE_JSON_TYPEINFO | ||
1677 | return type.GetTypeInfo().GenericTypeArguments; | ||
1678 | #else | ||
1679 | return type.GetGenericArguments(); | ||
1680 | #endif | ||
1681 | } | ||
1682 | |||
1683 | public static bool IsTypeGeneric(Type type) | ||
1684 | { | ||
1685 | return GetTypeInfo(type).IsGenericType; | ||
1686 | } | ||
1687 | |||
1688 | public static bool IsTypeGenericeCollectionInterface(Type type) | ||
1689 | { | ||
1690 | if (!IsTypeGeneric(type)) | ||
1691 | return false; | ||
1692 | |||
1693 | Type genericDefinition = type.GetGenericTypeDefinition(); | ||
1694 | |||
1695 | return (genericDefinition == typeof(IList<>) | ||
1696 | || genericDefinition == typeof(ICollection<>) | ||
1697 | || genericDefinition == typeof(IEnumerable<>) | ||
1698 | #if SIMPLE_JSON_READONLY_COLLECTIONS | ||
1699 | || genericDefinition == typeof(IReadOnlyCollection<>) | ||
1700 | || genericDefinition == typeof(IReadOnlyList<>) | ||
1701 | #endif | ||
1702 | ); | ||
1703 | } | ||
1704 | |||
1705 | public static bool IsAssignableFrom(Type type1, Type type2) | ||
1706 | { | ||
1707 | return GetTypeInfo(type1).IsAssignableFrom(GetTypeInfo(type2)); | ||
1708 | } | ||
1709 | |||
1710 | public static bool IsTypeDictionary(Type type) | ||
1711 | { | ||
1712 | #if SIMPLE_JSON_TYPEINFO | ||
1713 | if (typeof(IDictionary<,>).GetTypeInfo().IsAssignableFrom(type.GetTypeInfo())) | ||
1714 | return true; | ||
1715 | #else | ||
1716 | if (typeof(System.Collections.IDictionary).IsAssignableFrom(type)) | ||
1717 | return true; | ||
1718 | #endif | ||
1719 | if (!GetTypeInfo(type).IsGenericType) | ||
1720 | return false; | ||
1721 | |||
1722 | Type genericDefinition = type.GetGenericTypeDefinition(); | ||
1723 | return genericDefinition == typeof(IDictionary<,>); | ||
1724 | } | ||
1725 | |||
1726 | public static bool IsNullableType(Type type) | ||
1727 | { | ||
1728 | return GetTypeInfo(type).IsGenericType && type.GetGenericTypeDefinition() == typeof(Nullable<>); | ||
1729 | } | ||
1730 | |||
1731 | public static object ToNullableType(object obj, Type nullableType) | ||
1732 | { | ||
1733 | return obj == null ? null : Convert.ChangeType(obj, Nullable.GetUnderlyingType(nullableType), CultureInfo.InvariantCulture); | ||
1734 | } | ||
1735 | |||
1736 | public static bool IsValueType(Type type) | ||
1737 | { | ||
1738 | return GetTypeInfo(type).IsValueType; | ||
1739 | } | ||
1740 | |||
1741 | public static IEnumerable<ConstructorInfo> GetConstructors(Type type) | ||
1742 | { | ||
1743 | #if SIMPLE_JSON_TYPEINFO | ||
1744 | return type.GetTypeInfo().DeclaredConstructors; | ||
1745 | #else | ||
1746 | return type.GetConstructors(); | ||
1747 | #endif | ||
1748 | } | ||
1749 | |||
1750 | public static ConstructorInfo GetConstructorInfo(Type type, params Type[] argsType) | ||
1751 | { | ||
1752 | IEnumerable<ConstructorInfo> constructorInfos = GetConstructors(type); | ||
1753 | int i; | ||
1754 | bool matches; | ||
1755 | foreach (ConstructorInfo constructorInfo in constructorInfos) | ||
1756 | { | ||
1757 | ParameterInfo[] parameters = constructorInfo.GetParameters(); | ||
1758 | if (argsType.Length != parameters.Length) | ||
1759 | continue; | ||
1760 | |||
1761 | i = 0; | ||
1762 | matches = true; | ||
1763 | foreach (ParameterInfo parameterInfo in constructorInfo.GetParameters()) | ||
1764 | { | ||
1765 | if (parameterInfo.ParameterType != argsType[i]) | ||
1766 | { | ||
1767 | matches = false; | ||
1768 | break; | ||
1769 | } | ||
1770 | } | ||
1771 | |||
1772 | if (matches) | ||
1773 | return constructorInfo; | ||
1774 | } | ||
1775 | |||
1776 | return null; | ||
1777 | } | ||
1778 | |||
1779 | public static IEnumerable<PropertyInfo> GetProperties(Type type) | ||
1780 | { | ||
1781 | #if SIMPLE_JSON_TYPEINFO | ||
1782 | return type.GetRuntimeProperties(); | ||
1783 | #else | ||
1784 | return type.GetProperties(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); | ||
1785 | #endif | ||
1786 | } | ||
1787 | |||
1788 | public static IEnumerable<FieldInfo> GetFields(Type type) | ||
1789 | { | ||
1790 | #if SIMPLE_JSON_TYPEINFO | ||
1791 | return type.GetRuntimeFields(); | ||
1792 | #else | ||
1793 | return type.GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static); | ||
1794 | #endif | ||
1795 | } | ||
1796 | |||
1797 | public static MethodInfo GetGetterMethodInfo(PropertyInfo propertyInfo) | ||
1798 | { | ||
1799 | #if SIMPLE_JSON_TYPEINFO | ||
1800 | return propertyInfo.GetMethod; | ||
1801 | #else | ||
1802 | return propertyInfo.GetGetMethod(true); | ||
1803 | #endif | ||
1804 | } | ||
1805 | |||
1806 | public static MethodInfo GetSetterMethodInfo(PropertyInfo propertyInfo) | ||
1807 | { | ||
1808 | #if SIMPLE_JSON_TYPEINFO | ||
1809 | return propertyInfo.SetMethod; | ||
1810 | #else | ||
1811 | return propertyInfo.GetSetMethod(true); | ||
1812 | #endif | ||
1813 | } | ||
1814 | |||
1815 | public static ConstructorDelegate GetContructor(ConstructorInfo constructorInfo) | ||
1816 | { | ||
1817 | #if SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1818 | return GetConstructorByReflection(constructorInfo); | ||
1819 | #else | ||
1820 | return GetConstructorByExpression(constructorInfo); | ||
1821 | #endif | ||
1822 | } | ||
1823 | |||
1824 | public static ConstructorDelegate GetContructor(Type type, params Type[] argsType) | ||
1825 | { | ||
1826 | #if SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1827 | return GetConstructorByReflection(type, argsType); | ||
1828 | #else | ||
1829 | return GetConstructorByExpression(type, argsType); | ||
1830 | #endif | ||
1831 | } | ||
1832 | |||
1833 | public static ConstructorDelegate GetConstructorByReflection(ConstructorInfo constructorInfo) | ||
1834 | { | ||
1835 | return delegate (object[] args) { return constructorInfo.Invoke(args); }; | ||
1836 | } | ||
1837 | |||
1838 | public static ConstructorDelegate GetConstructorByReflection(Type type, params Type[] argsType) | ||
1839 | { | ||
1840 | ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); | ||
1841 | return constructorInfo == null ? null : GetConstructorByReflection(constructorInfo); | ||
1842 | } | ||
1843 | |||
1844 | #if !SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1845 | |||
1846 | public static ConstructorDelegate GetConstructorByExpression(ConstructorInfo constructorInfo) | ||
1847 | { | ||
1848 | ParameterInfo[] paramsInfo = constructorInfo.GetParameters(); | ||
1849 | ParameterExpression param = Expression.Parameter(typeof(object[]), "args"); | ||
1850 | Expression[] argsExp = new Expression[paramsInfo.Length]; | ||
1851 | for (int i = 0; i < paramsInfo.Length; i++) | ||
1852 | { | ||
1853 | Expression index = Expression.Constant(i); | ||
1854 | Type paramType = paramsInfo[i].ParameterType; | ||
1855 | Expression paramAccessorExp = Expression.ArrayIndex(param, index); | ||
1856 | Expression paramCastExp = Expression.Convert(paramAccessorExp, paramType); | ||
1857 | argsExp[i] = paramCastExp; | ||
1858 | } | ||
1859 | NewExpression newExp = Expression.New(constructorInfo, argsExp); | ||
1860 | Expression<Func<object[], object>> lambda = Expression.Lambda<Func<object[], object>>(newExp, param); | ||
1861 | Func<object[], object> compiledLambda = lambda.Compile(); | ||
1862 | return delegate (object[] args) { return compiledLambda(args); }; | ||
1863 | } | ||
1864 | |||
1865 | public static ConstructorDelegate GetConstructorByExpression(Type type, params Type[] argsType) | ||
1866 | { | ||
1867 | ConstructorInfo constructorInfo = GetConstructorInfo(type, argsType); | ||
1868 | return constructorInfo == null ? null : GetConstructorByExpression(constructorInfo); | ||
1869 | } | ||
1870 | |||
1871 | #endif | ||
1872 | |||
1873 | public static GetDelegate GetGetMethod(PropertyInfo propertyInfo) | ||
1874 | { | ||
1875 | #if SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1876 | return GetGetMethodByReflection(propertyInfo); | ||
1877 | #else | ||
1878 | return GetGetMethodByExpression(propertyInfo); | ||
1879 | #endif | ||
1880 | } | ||
1881 | |||
1882 | public static GetDelegate GetGetMethod(FieldInfo fieldInfo) | ||
1883 | { | ||
1884 | #if SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1885 | return GetGetMethodByReflection(fieldInfo); | ||
1886 | #else | ||
1887 | return GetGetMethodByExpression(fieldInfo); | ||
1888 | #endif | ||
1889 | } | ||
1890 | |||
1891 | public static GetDelegate GetGetMethodByReflection(PropertyInfo propertyInfo) | ||
1892 | { | ||
1893 | MethodInfo methodInfo = GetGetterMethodInfo(propertyInfo); | ||
1894 | return delegate (object source) { return methodInfo.Invoke(source, EmptyObjects); }; | ||
1895 | } | ||
1896 | |||
1897 | public static GetDelegate GetGetMethodByReflection(FieldInfo fieldInfo) | ||
1898 | { | ||
1899 | return delegate (object source) { return fieldInfo.GetValue(source); }; | ||
1900 | } | ||
1901 | |||
1902 | #if !SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1903 | |||
1904 | public static GetDelegate GetGetMethodByExpression(PropertyInfo propertyInfo) | ||
1905 | { | ||
1906 | MethodInfo getMethodInfo = GetGetterMethodInfo(propertyInfo); | ||
1907 | ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); | ||
1908 | UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); | ||
1909 | Func<object, object> compiled = Expression.Lambda<Func<object, object>>(Expression.TypeAs(Expression.Call(instanceCast, getMethodInfo), typeof(object)), instance).Compile(); | ||
1910 | return delegate (object source) { return compiled(source); }; | ||
1911 | } | ||
1912 | |||
1913 | public static GetDelegate GetGetMethodByExpression(FieldInfo fieldInfo) | ||
1914 | { | ||
1915 | ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); | ||
1916 | MemberExpression member = Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo); | ||
1917 | GetDelegate compiled = Expression.Lambda<GetDelegate>(Expression.Convert(member, typeof(object)), instance).Compile(); | ||
1918 | return delegate (object source) { return compiled(source); }; | ||
1919 | } | ||
1920 | |||
1921 | #endif | ||
1922 | |||
1923 | public static SetDelegate GetSetMethod(PropertyInfo propertyInfo) | ||
1924 | { | ||
1925 | #if SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1926 | return GetSetMethodByReflection(propertyInfo); | ||
1927 | #else | ||
1928 | return GetSetMethodByExpression(propertyInfo); | ||
1929 | #endif | ||
1930 | } | ||
1931 | |||
1932 | public static SetDelegate GetSetMethod(FieldInfo fieldInfo) | ||
1933 | { | ||
1934 | #if SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1935 | return GetSetMethodByReflection(fieldInfo); | ||
1936 | #else | ||
1937 | return GetSetMethodByExpression(fieldInfo); | ||
1938 | #endif | ||
1939 | } | ||
1940 | |||
1941 | public static SetDelegate GetSetMethodByReflection(PropertyInfo propertyInfo) | ||
1942 | { | ||
1943 | MethodInfo methodInfo = GetSetterMethodInfo(propertyInfo); | ||
1944 | return delegate (object source, object value) { methodInfo.Invoke(source, new object[] { value }); }; | ||
1945 | } | ||
1946 | |||
1947 | public static SetDelegate GetSetMethodByReflection(FieldInfo fieldInfo) | ||
1948 | { | ||
1949 | return delegate (object source, object value) { fieldInfo.SetValue(source, value); }; | ||
1950 | } | ||
1951 | |||
1952 | #if !SIMPLE_JSON_NO_LINQ_EXPRESSION | ||
1953 | |||
1954 | public static SetDelegate GetSetMethodByExpression(PropertyInfo propertyInfo) | ||
1955 | { | ||
1956 | MethodInfo setMethodInfo = GetSetterMethodInfo(propertyInfo); | ||
1957 | ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); | ||
1958 | ParameterExpression value = Expression.Parameter(typeof(object), "value"); | ||
1959 | UnaryExpression instanceCast = (!IsValueType(propertyInfo.DeclaringType)) ? Expression.TypeAs(instance, propertyInfo.DeclaringType) : Expression.Convert(instance, propertyInfo.DeclaringType); | ||
1960 | UnaryExpression valueCast = (!IsValueType(propertyInfo.PropertyType)) ? Expression.TypeAs(value, propertyInfo.PropertyType) : Expression.Convert(value, propertyInfo.PropertyType); | ||
1961 | Action<object, object> compiled = Expression.Lambda<Action<object, object>>(Expression.Call(instanceCast, setMethodInfo, valueCast), new ParameterExpression[] { instance, value }).Compile(); | ||
1962 | return delegate (object source, object val) { compiled(source, val); }; | ||
1963 | } | ||
1964 | |||
1965 | public static SetDelegate GetSetMethodByExpression(FieldInfo fieldInfo) | ||
1966 | { | ||
1967 | ParameterExpression instance = Expression.Parameter(typeof(object), "instance"); | ||
1968 | ParameterExpression value = Expression.Parameter(typeof(object), "value"); | ||
1969 | Action<object, object> compiled = Expression.Lambda<Action<object, object>>( | ||
1970 | Assign(Expression.Field(Expression.Convert(instance, fieldInfo.DeclaringType), fieldInfo), Expression.Convert(value, fieldInfo.FieldType)), instance, value).Compile(); | ||
1971 | return delegate (object source, object val) { compiled(source, val); }; | ||
1972 | } | ||
1973 | |||
1974 | public static BinaryExpression Assign(Expression left, Expression right) | ||
1975 | { | ||
1976 | #if SIMPLE_JSON_TYPEINFO | ||
1977 | return Expression.Assign(left, right); | ||
1978 | #else | ||
1979 | MethodInfo assign = typeof(Assigner<>).MakeGenericType(left.Type).GetMethod("Assign"); | ||
1980 | BinaryExpression assignExpr = Expression.Add(left, right, assign); | ||
1981 | return assignExpr; | ||
1982 | #endif | ||
1983 | } | ||
1984 | |||
1985 | private static class Assigner<T> | ||
1986 | { | ||
1987 | public static T Assign(ref T left, T right) | ||
1988 | { | ||
1989 | return (left = right); | ||
1990 | } | ||
1991 | } | ||
1992 | |||
1993 | #endif | ||
1994 | |||
1995 | public sealed class ThreadSafeDictionary<TKey, TValue> : IDictionary<TKey, TValue> | ||
1996 | { | ||
1997 | private readonly object _lock = new object(); | ||
1998 | private readonly ThreadSafeDictionaryValueFactory<TKey, TValue> _valueFactory; | ||
1999 | private Dictionary<TKey, TValue> _dictionary; | ||
2000 | |||
2001 | public ThreadSafeDictionary(ThreadSafeDictionaryValueFactory<TKey, TValue> valueFactory) | ||
2002 | { | ||
2003 | _valueFactory = valueFactory; | ||
2004 | } | ||
2005 | |||
2006 | private TValue Get(TKey key) | ||
2007 | { | ||
2008 | if (_dictionary == null) | ||
2009 | return AddValue(key); | ||
2010 | TValue value; | ||
2011 | if (!_dictionary.TryGetValue(key, out value)) | ||
2012 | return AddValue(key); | ||
2013 | return value; | ||
2014 | } | ||
2015 | |||
2016 | private TValue AddValue(TKey key) | ||
2017 | { | ||
2018 | TValue value = _valueFactory(key); | ||
2019 | lock (_lock) | ||
2020 | { | ||
2021 | if (_dictionary == null) | ||
2022 | { | ||
2023 | _dictionary = new Dictionary<TKey, TValue>(); | ||
2024 | _dictionary[key] = value; | ||
2025 | } | ||
2026 | else | ||
2027 | { | ||
2028 | TValue val; | ||
2029 | if (_dictionary.TryGetValue(key, out val)) | ||
2030 | return val; | ||
2031 | Dictionary<TKey, TValue> dict = new Dictionary<TKey, TValue>(_dictionary); | ||
2032 | dict[key] = value; | ||
2033 | _dictionary = dict; | ||
2034 | } | ||
2035 | } | ||
2036 | return value; | ||
2037 | } | ||
2038 | |||
2039 | public void Add(TKey key, TValue value) | ||
2040 | { | ||
2041 | throw new NotImplementedException(); | ||
2042 | } | ||
2043 | |||
2044 | public bool ContainsKey(TKey key) | ||
2045 | { | ||
2046 | return _dictionary.ContainsKey(key); | ||
2047 | } | ||
2048 | |||
2049 | public ICollection<TKey> Keys | ||
2050 | { | ||
2051 | get { return _dictionary.Keys; } | ||
2052 | } | ||
2053 | |||
2054 | public bool Remove(TKey key) | ||
2055 | { | ||
2056 | throw new NotImplementedException(); | ||
2057 | } | ||
2058 | |||
2059 | public bool TryGetValue(TKey key, out TValue value) | ||
2060 | { | ||
2061 | value = this[key]; | ||
2062 | return true; | ||
2063 | } | ||
2064 | |||
2065 | public ICollection<TValue> Values | ||
2066 | { | ||
2067 | get { return _dictionary.Values; } | ||
2068 | } | ||
2069 | |||
2070 | public TValue this[TKey key] | ||
2071 | { | ||
2072 | get { return Get(key); } | ||
2073 | set { throw new NotImplementedException(); } | ||
2074 | } | ||
2075 | |||
2076 | public void Add(KeyValuePair<TKey, TValue> item) | ||
2077 | { | ||
2078 | throw new NotImplementedException(); | ||
2079 | } | ||
2080 | |||
2081 | public void Clear() | ||
2082 | { | ||
2083 | throw new NotImplementedException(); | ||
2084 | } | ||
2085 | |||
2086 | public bool Contains(KeyValuePair<TKey, TValue> item) | ||
2087 | { | ||
2088 | throw new NotImplementedException(); | ||
2089 | } | ||
2090 | |||
2091 | public void CopyTo(KeyValuePair<TKey, TValue>[] array, int arrayIndex) | ||
2092 | { | ||
2093 | throw new NotImplementedException(); | ||
2094 | } | ||
2095 | |||
2096 | public int Count | ||
2097 | { | ||
2098 | get { return _dictionary.Count; } | ||
2099 | } | ||
2100 | |||
2101 | public bool IsReadOnly | ||
2102 | { | ||
2103 | get { throw new NotImplementedException(); } | ||
2104 | } | ||
2105 | |||
2106 | public bool Remove(KeyValuePair<TKey, TValue> item) | ||
2107 | { | ||
2108 | throw new NotImplementedException(); | ||
2109 | } | ||
2110 | |||
2111 | public IEnumerator<KeyValuePair<TKey, TValue>> GetEnumerator() | ||
2112 | { | ||
2113 | return _dictionary.GetEnumerator(); | ||
2114 | } | ||
2115 | |||
2116 | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() | ||
2117 | { | ||
2118 | return _dictionary.GetEnumerator(); | ||
2119 | } | ||
2120 | } | ||
2121 | |||
2122 | } | ||
2123 | } | ||
2124 | } | ||
2125 | // ReSharper restore LoopCanBeConvertedToQuery | ||
2126 | // ReSharper restore RedundantExplicitArrayCreation | ||
2127 | // ReSharper restore SuggestUseVarKeywordEvident \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Library.cs b/src/WixToolset.Data/Library.cs index d82e64e0..13a670b0 100644 --- a/src/WixToolset.Data/Library.cs +++ b/src/WixToolset.Data/Library.cs | |||
@@ -15,6 +15,7 @@ namespace WixToolset.Data | |||
15 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixlib"; | 15 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixlib"; |
16 | private static readonly Version CurrentVersion = new Version("4.0.0.0"); | 16 | private static readonly Version CurrentVersion = new Version("4.0.0.0"); |
17 | 17 | ||
18 | #if false | ||
18 | private string id; | 19 | private string id; |
19 | private List<string> embedFilePaths; | 20 | private List<string> embedFilePaths; |
20 | private Dictionary<string, Localization> localizations; | 21 | private Dictionary<string, Localization> localizations; |
@@ -186,7 +187,7 @@ namespace WixToolset.Data | |||
186 | switch (reader.LocalName) | 187 | switch (reader.LocalName) |
187 | { | 188 | { |
188 | case "localization": | 189 | case "localization": |
189 | Localization localization = Localization.Read(reader, tableDefinitions); | 190 | Localization localization = Localization.Read(reader); |
190 | library.localizations.Add(localization.Culture, localization); | 191 | library.localizations.Add(localization.Culture, localization); |
191 | break; | 192 | break; |
192 | case "section": | 193 | case "section": |
@@ -237,5 +238,6 @@ namespace WixToolset.Data | |||
237 | 238 | ||
238 | writer.WriteEndElement(); | 239 | writer.WriteEndElement(); |
239 | } | 240 | } |
241 | #endif | ||
240 | } | 242 | } |
241 | } | 243 | } |
diff --git a/src/WixToolset.Data/Localization.cs b/src/WixToolset.Data/Localization.cs index 658ce14a..a5e2ba14 100644 --- a/src/WixToolset.Data/Localization.cs +++ b/src/WixToolset.Data/Localization.cs | |||
@@ -3,17 +3,10 @@ | |||
3 | namespace WixToolset.Data | 3 | namespace WixToolset.Data |
4 | { | 4 | { |
5 | using System; | 5 | using System; |
6 | using System.Collections; | ||
7 | using System.Collections.Generic; | 6 | using System.Collections.Generic; |
8 | using System.Diagnostics; | 7 | using System.Diagnostics; |
9 | using System.Diagnostics.CodeAnalysis; | ||
10 | using System.Globalization; | 8 | using System.Globalization; |
11 | using System.IO; | ||
12 | using System.Linq; | ||
13 | using System.Reflection; | ||
14 | using System.Xml; | 9 | using System.Xml; |
15 | using System.Xml.Linq; | ||
16 | using System.Xml.Schema; | ||
17 | using WixToolset.Data.Msi; | 10 | using WixToolset.Data.Msi; |
18 | using WixToolset.Data.Rows; | 11 | using WixToolset.Data.Rows; |
19 | 12 | ||
@@ -24,17 +17,17 @@ namespace WixToolset.Data | |||
24 | { | 17 | { |
25 | private static string XmlElementName = "localization"; | 18 | private static string XmlElementName = "localization"; |
26 | 19 | ||
27 | private Dictionary<string, WixVariableRow> variables = new Dictionary<string, WixVariableRow>(); | 20 | private Dictionary<string, BindVariable> variables = new Dictionary<string, BindVariable>(); |
28 | private Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>(); | 21 | private Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>(); |
29 | 22 | ||
30 | /// <summary> | 23 | /// <summary> |
31 | /// Instantiates a new localization object. | 24 | /// Instantiates a new localization object. |
32 | /// </summary> | 25 | /// </summary> |
33 | public Localization(int codepage, string culture, IDictionary<string, WixVariableRow> variables, IDictionary<string, LocalizedControl> localizedControls) | 26 | public Localization(int codepage, string culture, IDictionary<string, BindVariable> variables, IDictionary<string, LocalizedControl> localizedControls) |
34 | { | 27 | { |
35 | this.Codepage = codepage; | 28 | this.Codepage = codepage; |
36 | this.Culture = String.IsNullOrEmpty(culture) ? String.Empty : culture.ToLowerInvariant(); | 29 | this.Culture = String.IsNullOrEmpty(culture) ? String.Empty : culture.ToLowerInvariant(); |
37 | this.variables = new Dictionary<string, WixVariableRow>(variables); | 30 | this.variables = new Dictionary<string, BindVariable>(variables); |
38 | this.localizedControls = new Dictionary<string, LocalizedControl>(localizedControls); | 31 | this.localizedControls = new Dictionary<string, LocalizedControl>(localizedControls); |
39 | } | 32 | } |
40 | 33 | ||
@@ -54,19 +47,13 @@ namespace WixToolset.Data | |||
54 | /// Gets the variables. | 47 | /// Gets the variables. |
55 | /// </summary> | 48 | /// </summary> |
56 | /// <value>The variables.</value> | 49 | /// <value>The variables.</value> |
57 | public ICollection<WixVariableRow> Variables | 50 | public ICollection<BindVariable> Variables => this.variables.Values; |
58 | { | ||
59 | get { return this.variables.Values; } | ||
60 | } | ||
61 | 51 | ||
62 | /// <summary> | 52 | /// <summary> |
63 | /// Gets the localized controls. | 53 | /// Gets the localized controls. |
64 | /// </summary> | 54 | /// </summary> |
65 | /// <value>The localized controls.</value> | 55 | /// <value>The localized controls.</value> |
66 | public ICollection<KeyValuePair<string, LocalizedControl>> LocalizedControls | 56 | public ICollection<KeyValuePair<string, LocalizedControl>> LocalizedControls => this.localizedControls; |
67 | { | ||
68 | get { return this.localizedControls; } | ||
69 | } | ||
70 | 57 | ||
71 | /// <summary> | 58 | /// <summary> |
72 | /// Merge the information from another localization object into this one. | 59 | /// Merge the information from another localization object into this one. |
@@ -74,10 +61,9 @@ namespace WixToolset.Data | |||
74 | /// <param name="localization">The localization object to be merged into this one.</param> | 61 | /// <param name="localization">The localization object to be merged into this one.</param> |
75 | public void Merge(Localization localization) | 62 | public void Merge(Localization localization) |
76 | { | 63 | { |
77 | foreach (WixVariableRow wixVariableRow in localization.Variables) | 64 | foreach (BindVariable wixVariableRow in localization.Variables) |
78 | { | 65 | { |
79 | WixVariableRow existingWixVariableRow; | 66 | if (!this.variables.TryGetValue(wixVariableRow.Id, out BindVariable existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) |
80 | if (!this.variables.TryGetValue(wixVariableRow.Id, out existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable)) | ||
81 | { | 67 | { |
82 | variables[wixVariableRow.Id] = wixVariableRow; | 68 | variables[wixVariableRow.Id] = wixVariableRow; |
83 | } | 69 | } |
@@ -94,7 +80,7 @@ namespace WixToolset.Data | |||
94 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> | 80 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> |
95 | /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param> | 81 | /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param> |
96 | /// <returns>Returns the loaded localization.</returns> | 82 | /// <returns>Returns the loaded localization.</returns> |
97 | internal static Localization Read(XmlReader reader, TableDefinitionCollection tableDefinitions) | 83 | internal static Localization Read(XmlReader reader) |
98 | { | 84 | { |
99 | Debug.Assert("localization" == reader.LocalName); | 85 | Debug.Assert("localization" == reader.LocalName); |
100 | 86 | ||
@@ -115,8 +101,7 @@ namespace WixToolset.Data | |||
115 | } | 101 | } |
116 | } | 102 | } |
117 | 103 | ||
118 | TableDefinition wixVariableTable = tableDefinitions["WixVariable"]; | 104 | Dictionary<string, BindVariable> variables = new Dictionary<string, BindVariable>(); |
119 | Dictionary<string, WixVariableRow> variables = new Dictionary<string, WixVariableRow>(); | ||
120 | Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>(); | 105 | Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>(); |
121 | 106 | ||
122 | if (!empty) | 107 | if (!empty) |
@@ -131,7 +116,7 @@ namespace WixToolset.Data | |||
131 | switch (reader.LocalName) | 116 | switch (reader.LocalName) |
132 | { | 117 | { |
133 | case "string": | 118 | case "string": |
134 | WixVariableRow row = Localization.ReadString(reader, wixVariableTable); | 119 | BindVariable row = Localization.ReadString(reader); |
135 | variables.Add(row.Id, row); | 120 | variables.Add(row.Id, row); |
136 | break; | 121 | break; |
137 | 122 | ||
@@ -177,7 +162,7 @@ namespace WixToolset.Data | |||
177 | writer.WriteAttributeString("culture", this.Culture); | 162 | writer.WriteAttributeString("culture", this.Culture); |
178 | } | 163 | } |
179 | 164 | ||
180 | foreach (WixVariableRow wixVariableRow in this.variables.Values) | 165 | foreach (BindVariable wixVariableRow in this.variables.Values) |
181 | { | 166 | { |
182 | writer.WriteStartElement("string", Library.XmlNamespaceUri); | 167 | writer.WriteStartElement("string", Library.XmlNamespaceUri); |
183 | 168 | ||
@@ -265,7 +250,7 @@ namespace WixToolset.Data | |||
265 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> | 250 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> |
266 | /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param> | 251 | /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param> |
267 | /// <returns>Returns the loaded localization.</returns> | 252 | /// <returns>Returns the loaded localization.</returns> |
268 | private static WixVariableRow ReadString(XmlReader reader, TableDefinition wixVariableTable) | 253 | private static BindVariable ReadString(XmlReader reader) |
269 | { | 254 | { |
270 | Debug.Assert("string" == reader.LocalName); | 255 | Debug.Assert("string" == reader.LocalName); |
271 | 256 | ||
@@ -302,7 +287,8 @@ namespace WixToolset.Data | |||
302 | } | 287 | } |
303 | } | 288 | } |
304 | 289 | ||
305 | WixVariableRow wixVariableRow = new WixVariableRow(SourceLineNumber.CreateFromUri(reader.BaseURI), wixVariableTable); | 290 | BindVariable wixVariableRow = new BindVariable(); |
291 | wixVariableRow.SourceLineNumbers = SourceLineNumber.CreateFromUri(reader.BaseURI); | ||
306 | wixVariableRow.Id = id; | 292 | wixVariableRow.Id = id; |
307 | wixVariableRow.Overridable = overridable; | 293 | wixVariableRow.Overridable = overridable; |
308 | wixVariableRow.Value = value; | 294 | wixVariableRow.Value = value; |
diff --git a/src/WixToolset.Data/Msi/MsiInterop.cs b/src/WixToolset.Data/Msi/MsiInterop.cs index 1a8ebbf0..e4dad358 100644 --- a/src/WixToolset.Data/Msi/MsiInterop.cs +++ b/src/WixToolset.Data/Msi/MsiInterop.cs | |||
@@ -2,25 +2,25 @@ | |||
2 | 2 | ||
3 | namespace WixToolset.Data.Msi | 3 | namespace WixToolset.Data.Msi |
4 | { | 4 | { |
5 | class MsiInterop | 5 | public class MsiInterop |
6 | { | 6 | { |
7 | // Patching constants | 7 | // Patching constants |
8 | internal const int MsiMaxStreamNameLength = 62; // http://msdn2.microsoft.com/library/aa370551.aspx | 8 | internal const int MsiMaxStreamNameLength = 62; // http://msdn2.microsoft.com/library/aa370551.aspx |
9 | 9 | ||
10 | // Component.Attributes | 10 | // Component.Attributes |
11 | internal const int MsidbComponentAttributesLocalOnly = 0; | 11 | public const int MsidbComponentAttributesLocalOnly = 0; |
12 | internal const int MsidbComponentAttributesSourceOnly = 1; | 12 | public const int MsidbComponentAttributesSourceOnly = 1; |
13 | internal const int MsidbComponentAttributesOptional = 2; | 13 | public const int MsidbComponentAttributesOptional = 2; |
14 | internal const int MsidbComponentAttributesRegistryKeyPath = 4; | 14 | public const int MsidbComponentAttributesRegistryKeyPath = 4; |
15 | internal const int MsidbComponentAttributesSharedDllRefCount = 8; | 15 | public const int MsidbComponentAttributesSharedDllRefCount = 8; |
16 | internal const int MsidbComponentAttributesPermanent = 16; | 16 | public const int MsidbComponentAttributesPermanent = 16; |
17 | internal const int MsidbComponentAttributesODBCDataSource = 32; | 17 | public const int MsidbComponentAttributesODBCDataSource = 32; |
18 | internal const int MsidbComponentAttributesTransitive = 64; | 18 | public const int MsidbComponentAttributesTransitive = 64; |
19 | internal const int MsidbComponentAttributesNeverOverwrite = 128; | 19 | public const int MsidbComponentAttributesNeverOverwrite = 128; |
20 | internal const int MsidbComponentAttributes64bit = 256; | 20 | public const int MsidbComponentAttributes64bit = 256; |
21 | internal const int MsidbComponentAttributesDisableRegistryReflection = 512; | 21 | public const int MsidbComponentAttributesDisableRegistryReflection = 512; |
22 | internal const int MsidbComponentAttributesUninstallOnSupersedence = 1024; | 22 | public const int MsidbComponentAttributesUninstallOnSupersedence = 1024; |
23 | internal const int MsidbComponentAttributesShared = 2048; | 23 | public const int MsidbComponentAttributesShared = 2048; |
24 | 24 | ||
25 | // BBControl.Attributes & Control.Attributes | 25 | // BBControl.Attributes & Control.Attributes |
26 | internal const int MsidbControlAttributesVisible = 0x00000001; | 26 | internal const int MsidbControlAttributesVisible = 0x00000001; |
@@ -141,14 +141,14 @@ namespace WixToolset.Data.Msi | |||
141 | internal const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; | 141 | internal const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32; |
142 | 142 | ||
143 | // File.Attributes | 143 | // File.Attributes |
144 | internal const int MsidbFileAttributesReadOnly = 1; | 144 | public const int MsidbFileAttributesReadOnly = 1; |
145 | internal const int MsidbFileAttributesHidden = 2; | 145 | public const int MsidbFileAttributesHidden = 2; |
146 | internal const int MsidbFileAttributesSystem = 4; | 146 | public const int MsidbFileAttributesSystem = 4; |
147 | internal const int MsidbFileAttributesVital = 512; | 147 | public const int MsidbFileAttributesVital = 512; |
148 | internal const int MsidbFileAttributesChecksum = 1024; | 148 | public const int MsidbFileAttributesChecksum = 1024; |
149 | internal const int MsidbFileAttributesPatchAdded = 4096; | 149 | public const int MsidbFileAttributesPatchAdded = 4096; |
150 | internal const int MsidbFileAttributesNoncompressed = 8192; | 150 | public const int MsidbFileAttributesNoncompressed = 8192; |
151 | internal const int MsidbFileAttributesCompressed = 16384; | 151 | public const int MsidbFileAttributesCompressed = 16384; |
152 | 152 | ||
153 | // IniFile.Action & RemoveIniFile.Action | 153 | // IniFile.Action & RemoveIniFile.Action |
154 | internal const int MsidbIniFileActionAddLine = 0; | 154 | internal const int MsidbIniFileActionAddLine = 0; |
diff --git a/src/WixToolset.Data/NonClosingStreamWrapper.cs b/src/WixToolset.Data/NonClosingStreamWrapper.cs index 53d17d4d..a2d3be6a 100644 --- a/src/WixToolset.Data/NonClosingStreamWrapper.cs +++ b/src/WixToolset.Data/NonClosingStreamWrapper.cs | |||
@@ -18,88 +18,67 @@ namespace WixToolset.Data | |||
18 | this.stream = stream; | 18 | this.stream = stream; |
19 | } | 19 | } |
20 | 20 | ||
21 | public override bool CanRead { get { return this.stream.CanRead; } } | 21 | public override bool CanRead => this.stream.CanRead; |
22 | 22 | ||
23 | public override bool CanSeek { get { return this.stream.CanSeek; } } | 23 | public override bool CanSeek => this.stream.CanSeek; |
24 | 24 | ||
25 | public override bool CanTimeout { get { return this.stream.CanTimeout; } } | 25 | public override bool CanTimeout => this.stream.CanTimeout; |
26 | 26 | ||
27 | public override bool CanWrite { get { return this.stream.CanWrite; } } | 27 | public override bool CanWrite => this.stream.CanWrite; |
28 | 28 | ||
29 | public override long Length { get { return this.stream.Length; } } | 29 | public override long Length => this.stream.Length; |
30 | 30 | ||
31 | public override long Position { get { return this.stream.Position; } set { this.stream.Position = value; } } | 31 | public override long Position |
32 | |||
33 | public override int ReadTimeout { get { return this.stream.ReadTimeout; } set { this.stream.ReadTimeout = value; } } | ||
34 | |||
35 | public override int WriteTimeout { get { return this.stream.WriteTimeout; } set { this.stream.WriteTimeout = value; } } | ||
36 | |||
37 | public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) | ||
38 | { | 32 | { |
39 | return this.stream.BeginRead(buffer, offset, count, callback, state); | 33 | get => this.stream.Position; |
34 | set => this.stream.Position = value; | ||
40 | } | 35 | } |
41 | 36 | ||
42 | public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) | 37 | public override int ReadTimeout |
43 | { | 38 | { |
44 | return this.stream.BeginWrite(buffer, offset, count, callback, state); | 39 | get => this.stream.ReadTimeout; |
40 | set => this.stream.ReadTimeout = value; | ||
45 | } | 41 | } |
46 | 42 | ||
47 | public override void Close() | 43 | public override int WriteTimeout |
48 | { | 44 | { |
49 | // Do not pass through the call since this is what we are overriding. | 45 | get => this.stream.WriteTimeout; |
46 | set => this.stream.WriteTimeout = value; | ||
50 | } | 47 | } |
51 | 48 | ||
52 | protected override void Dispose(bool disposing) | 49 | public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginRead(buffer, offset, count, callback, state); |
53 | { | ||
54 | if (disposing) | ||
55 | { | ||
56 | this.stream.Flush(); | ||
57 | } | ||
58 | } | ||
59 | 50 | ||
60 | public override int EndRead(IAsyncResult asyncResult) | 51 | public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginWrite(buffer, offset, count, callback, state); |
61 | { | ||
62 | return this.stream.EndRead(asyncResult); | ||
63 | } | ||
64 | 52 | ||
65 | public override void EndWrite(IAsyncResult asyncResult) | 53 | public override int EndRead(IAsyncResult asyncResult) => this.stream.EndRead(asyncResult); |
66 | { | ||
67 | this.stream.EndWrite(asyncResult); | ||
68 | } | ||
69 | 54 | ||
70 | public override void Flush() | 55 | public override void EndWrite(IAsyncResult asyncResult) => this.stream.EndWrite(asyncResult); |
71 | { | ||
72 | this.stream.Flush(); | ||
73 | } | ||
74 | 56 | ||
75 | public override int Read(byte[] buffer, int offset, int count) | 57 | public override void Flush() => this.stream.Flush(); |
76 | { | ||
77 | return this.stream.Read(buffer, offset, count); | ||
78 | } | ||
79 | 58 | ||
80 | public override int ReadByte() | 59 | public override int Read(byte[] buffer, int offset, int count) => this.stream.Read(buffer, offset, count); |
81 | { | ||
82 | return this.stream.ReadByte(); | ||
83 | } | ||
84 | 60 | ||
85 | public override long Seek(long offset, SeekOrigin origin) | 61 | public override int ReadByte() => this.stream.ReadByte(); |
86 | { | ||
87 | return this.stream.Seek(offset, origin); | ||
88 | } | ||
89 | 62 | ||
90 | public override void SetLength(long value) | 63 | public override long Seek(long offset, SeekOrigin origin) => this.stream.Seek(offset, origin); |
91 | { | 64 | |
92 | this.stream.SetLength(value); | 65 | public override void SetLength(long value) => this.stream.SetLength(value); |
93 | } | ||
94 | 66 | ||
95 | public override void Write(byte[] buffer, int offset, int count) | 67 | public override void Write(byte[] buffer, int offset, int count) => this.stream.Write(buffer, offset, count); |
68 | |||
69 | public override void WriteByte(byte value) => this.stream.WriteByte(value); | ||
70 | |||
71 | public override void Close() | ||
96 | { | 72 | { |
97 | this.stream.Write(buffer, offset, count); | 73 | // Do not pass through the call since this is what we are overriding. |
98 | } | 74 | } |
99 | 75 | ||
100 | public override void WriteByte(byte value) | 76 | protected override void Dispose(bool disposing) |
101 | { | 77 | { |
102 | this.stream.WriteByte(value); | 78 | if (disposing) |
79 | { | ||
80 | this.stream.Flush(); | ||
81 | } | ||
103 | } | 82 | } |
104 | } | 83 | } |
105 | } | 84 | } |
diff --git a/src/WixToolset.Data/ObjectField.cs b/src/WixToolset.Data/ObjectField.cs deleted file mode 100644 index 42ef111b..00000000 --- a/src/WixToolset.Data/ObjectField.cs +++ /dev/null | |||
@@ -1,183 +0,0 @@ | |||
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 System; | ||
6 | using System.Diagnostics; | ||
7 | using System.Globalization; | ||
8 | using System.Xml; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Field containing data for an object column in a row. | ||
12 | /// </summary> | ||
13 | public sealed class ObjectField : Field | ||
14 | { | ||
15 | /// <summary> | ||
16 | /// Instantiates a new Field. | ||
17 | /// </summary> | ||
18 | /// <param name="columnDefinition">Column definition for this field.</param> | ||
19 | internal ObjectField(ColumnDefinition columnDefinition) : | ||
20 | base(columnDefinition) | ||
21 | { | ||
22 | } | ||
23 | |||
24 | /// <summary> | ||
25 | /// Gets or sets the index of the embedded file in a library. | ||
26 | /// </summary> | ||
27 | /// <value>The index of the embedded file.</value> | ||
28 | public int? EmbeddedFileIndex { get; set; } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the previous index of the embedded file in the library. | ||
32 | /// </summary> | ||
33 | /// <value>The previous index of the embedded file.</value> | ||
34 | public int? PreviousEmbeddedFileIndex { get; set; } | ||
35 | |||
36 | /// <summary> | ||
37 | /// Gets or sets the path to the embedded cabinet of the previous file. | ||
38 | /// </summary> | ||
39 | /// <value>The path of the cabinet containing the previous file.</value> | ||
40 | public Uri PreviousBaseUri { get; set; } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets the base URI of the object field. | ||
44 | /// </summary> | ||
45 | /// <value>The base URI of the object field.</value> | ||
46 | public Uri BaseUri { get; private set; } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Gets or sets the unresolved data for this field. | ||
50 | /// </summary> | ||
51 | /// <value>Unresolved Data in the field.</value> | ||
52 | public string UnresolvedData { get; set; } | ||
53 | |||
54 | /// <summary> | ||
55 | /// Gets or sets the unresolved previous data. | ||
56 | /// </summary> | ||
57 | /// <value>The unresolved previous data.</value> | ||
58 | public string UnresolvedPreviousData { get; set; } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Parse a field from the xml. | ||
62 | /// </summary> | ||
63 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> | ||
64 | internal override void Read(XmlReader reader) | ||
65 | { | ||
66 | Debug.Assert("field" == reader.LocalName); | ||
67 | |||
68 | bool empty = reader.IsEmptyElement; | ||
69 | |||
70 | this.BaseUri = new Uri(reader.BaseURI); | ||
71 | |||
72 | while (reader.MoveToNextAttribute()) | ||
73 | { | ||
74 | switch (reader.LocalName) | ||
75 | { | ||
76 | case "cabinetFileId": | ||
77 | this.EmbeddedFileIndex = Convert.ToInt32(reader.Value); | ||
78 | break; | ||
79 | case "modified": | ||
80 | this.Modified = reader.Value.Equals("yes"); | ||
81 | break; | ||
82 | case "previousData": | ||
83 | this.PreviousData = reader.Value; | ||
84 | break; | ||
85 | case "unresolvedPreviousData": | ||
86 | this.UnresolvedPreviousData = reader.Value; | ||
87 | break; | ||
88 | case "unresolvedData": | ||
89 | this.UnresolvedData = reader.Value; | ||
90 | break; | ||
91 | case "previousCabinetFileId": | ||
92 | this.PreviousEmbeddedFileIndex = Convert.ToInt32(reader.Value); | ||
93 | break; | ||
94 | } | ||
95 | } | ||
96 | |||
97 | if (!empty) | ||
98 | { | ||
99 | bool done = false; | ||
100 | |||
101 | while (!done && reader.Read()) | ||
102 | { | ||
103 | switch (reader.NodeType) | ||
104 | { | ||
105 | case XmlNodeType.Element: | ||
106 | throw new XmlException(); | ||
107 | case XmlNodeType.CDATA: | ||
108 | case XmlNodeType.Text: | ||
109 | if (0 < reader.Value.Length) | ||
110 | { | ||
111 | this.Data = reader.Value; | ||
112 | } | ||
113 | break; | ||
114 | case XmlNodeType.EndElement: | ||
115 | done = true; | ||
116 | break; | ||
117 | } | ||
118 | } | ||
119 | |||
120 | if (!done) | ||
121 | { | ||
122 | throw new XmlException(); | ||
123 | } | ||
124 | } | ||
125 | } | ||
126 | |||
127 | /// <summary> | ||
128 | /// Persists a field in an XML format. | ||
129 | /// </summary> | ||
130 | /// <param name="writer">XmlWriter where the Field should persist itself as XML.</param> | ||
131 | internal override void Write(XmlWriter writer) | ||
132 | { | ||
133 | writer.WriteStartElement("field", Intermediate.XmlNamespaceUri); | ||
134 | |||
135 | if (this.EmbeddedFileIndex.HasValue) | ||
136 | { | ||
137 | writer.WriteStartAttribute("cabinetFileId"); | ||
138 | writer.WriteValue(this.EmbeddedFileIndex); | ||
139 | writer.WriteEndAttribute(); | ||
140 | } | ||
141 | |||
142 | if (this.Modified) | ||
143 | { | ||
144 | writer.WriteAttributeString("modified", "yes"); | ||
145 | } | ||
146 | |||
147 | if (null != this.UnresolvedPreviousData) | ||
148 | { | ||
149 | writer.WriteAttributeString("unresolvedPreviousData", this.UnresolvedPreviousData); | ||
150 | } | ||
151 | |||
152 | if (null != this.PreviousData) | ||
153 | { | ||
154 | writer.WriteAttributeString("previousData", this.PreviousData); | ||
155 | } | ||
156 | |||
157 | if (null != this.UnresolvedData) | ||
158 | { | ||
159 | writer.WriteAttributeString("unresolvedData", this.UnresolvedData); | ||
160 | } | ||
161 | |||
162 | if (this.PreviousEmbeddedFileIndex.HasValue) | ||
163 | { | ||
164 | writer.WriteStartAttribute("previousCabinetFileId"); | ||
165 | writer.WriteValue(this.PreviousEmbeddedFileIndex); | ||
166 | writer.WriteEndAttribute(); | ||
167 | } | ||
168 | |||
169 | // Convert the data to a string that will persist nicely (nulls as String.Empty). | ||
170 | string text = Convert.ToString(this.Data, CultureInfo.InvariantCulture); | ||
171 | if (this.Column.UseCData) | ||
172 | { | ||
173 | writer.WriteCData(text); | ||
174 | } | ||
175 | else | ||
176 | { | ||
177 | writer.WriteString(text); | ||
178 | } | ||
179 | |||
180 | writer.WriteEndElement(); | ||
181 | } | ||
182 | } | ||
183 | } | ||
diff --git a/src/WixToolset.Data/Output.cs b/src/WixToolset.Data/Output.cs deleted file mode 100644 index b2a21c6c..00000000 --- a/src/WixToolset.Data/Output.cs +++ /dev/null | |||
@@ -1,394 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Globalization; | ||
8 | using System.IO; | ||
9 | using System.Linq; | ||
10 | using System.Xml; | ||
11 | |||
12 | /// <summary> | ||
13 | /// Output is generated by the linker. | ||
14 | /// </summary> | ||
15 | public sealed class Output | ||
16 | { | ||
17 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixout"; | ||
18 | private static readonly Version CurrentVersion = new Version("4.0.0.0"); | ||
19 | |||
20 | private Section entrySection; | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates a new empty output object. | ||
24 | /// </summary> | ||
25 | /// <param name="sourceLineNumbers">The source line information for the output.</param> | ||
26 | public Output(SourceLineNumber sourceLineNumbers) | ||
27 | { | ||
28 | this.Sections = new List<Section>(); | ||
29 | this.SourceLineNumbers = sourceLineNumbers; | ||
30 | this.SubStorages = new List<SubStorage>(); | ||
31 | this.Tables = new TableIndexedCollection(); | ||
32 | } | ||
33 | |||
34 | /// <summary> | ||
35 | /// Gets the entry section for the output | ||
36 | /// </summary> | ||
37 | /// <value>Entry section for the output.</value> | ||
38 | public Section EntrySection | ||
39 | { | ||
40 | get | ||
41 | { | ||
42 | return this.entrySection; | ||
43 | } | ||
44 | |||
45 | set | ||
46 | { | ||
47 | this.entrySection = value; | ||
48 | this.Codepage = value.Codepage; | ||
49 | |||
50 | switch (this.entrySection.Type) | ||
51 | { | ||
52 | case SectionType.Bundle: | ||
53 | this.Type = OutputType.Bundle; | ||
54 | break; | ||
55 | case SectionType.Product: | ||
56 | this.Type = OutputType.Product; | ||
57 | break; | ||
58 | case SectionType.Module: | ||
59 | this.Type = OutputType.Module; | ||
60 | break; | ||
61 | case SectionType.PatchCreation: | ||
62 | this.Type = OutputType.PatchCreation; | ||
63 | break; | ||
64 | case SectionType.Patch: | ||
65 | this.Type = OutputType.Patch; | ||
66 | break; | ||
67 | default: | ||
68 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_UnexpectedEntrySectionType, this.entrySection.Type)); | ||
69 | } | ||
70 | } | ||
71 | } | ||
72 | |||
73 | /// <summary> | ||
74 | /// Gets the type of the output. | ||
75 | /// </summary> | ||
76 | /// <value>Type of the output.</value> | ||
77 | public OutputType Type { get; set; } | ||
78 | |||
79 | /// <summary> | ||
80 | /// Gets or sets the codepage for this output. | ||
81 | /// </summary> | ||
82 | /// <value>Codepage of the output.</value> | ||
83 | public int Codepage { get; set; } | ||
84 | |||
85 | /// <summary> | ||
86 | /// Gets the sections contained in the output. | ||
87 | /// </summary> | ||
88 | /// <value>Sections in the output.</value> | ||
89 | public ICollection<Section> Sections { get; private set; } | ||
90 | |||
91 | /// <summary> | ||
92 | /// Gets the source line information for this output. | ||
93 | /// </summary> | ||
94 | /// <value>The source line information for this output.</value> | ||
95 | public SourceLineNumber SourceLineNumbers { get; private set; } | ||
96 | |||
97 | /// <summary> | ||
98 | /// Gets the substorages in this output. | ||
99 | /// </summary> | ||
100 | /// <value>The substorages in this output.</value> | ||
101 | public ICollection<SubStorage> SubStorages { get; private set; } | ||
102 | |||
103 | /// <summary> | ||
104 | /// Gets the tables contained in this output. | ||
105 | /// </summary> | ||
106 | /// <value>Collection of tables.</value> | ||
107 | public TableIndexedCollection Tables { get; private set; } | ||
108 | |||
109 | /// <summary> | ||
110 | /// Gets the output type corresponding to a given output filename extension. | ||
111 | /// </summary> | ||
112 | /// <param name="extension">Case-insensitive output filename extension.</param> | ||
113 | /// <returns>Output type for the extension.</returns> | ||
114 | public static OutputType GetOutputType(string extension) | ||
115 | { | ||
116 | if (extension.Equals(".exe", StringComparison.OrdinalIgnoreCase)) | ||
117 | { | ||
118 | return OutputType.Bundle; | ||
119 | } | ||
120 | if (extension.Equals(".msi", StringComparison.OrdinalIgnoreCase)) | ||
121 | { | ||
122 | return OutputType.Product; | ||
123 | } | ||
124 | else if (extension.Equals(".msm", StringComparison.OrdinalIgnoreCase)) | ||
125 | { | ||
126 | return OutputType.Module; | ||
127 | } | ||
128 | else if (extension.Equals(".msp", StringComparison.OrdinalIgnoreCase)) | ||
129 | { | ||
130 | return OutputType.Patch; | ||
131 | } | ||
132 | else if (extension.Equals(".mst", StringComparison.OrdinalIgnoreCase)) | ||
133 | { | ||
134 | return OutputType.Transform; | ||
135 | } | ||
136 | else if (extension.Equals(".pcp", StringComparison.OrdinalIgnoreCase)) | ||
137 | { | ||
138 | return OutputType.PatchCreation; | ||
139 | } | ||
140 | else | ||
141 | { | ||
142 | return OutputType.Unknown; | ||
143 | } | ||
144 | } | ||
145 | |||
146 | /// <summary> | ||
147 | /// Gets the filename extension corresponding to a given output type. | ||
148 | /// </summary> | ||
149 | /// <param name="type">One of the WiX output types.</param> | ||
150 | /// <returns>Filename extension for the output type, for example ".msi".</returns> | ||
151 | public static string GetExtension(OutputType type) | ||
152 | { | ||
153 | switch (type) | ||
154 | { | ||
155 | case OutputType.Bundle: | ||
156 | return ".exe"; | ||
157 | case OutputType.Product: | ||
158 | return ".msi"; | ||
159 | case OutputType.Module: | ||
160 | return ".msm"; | ||
161 | case OutputType.Patch: | ||
162 | return ".msp"; | ||
163 | case OutputType.Transform: | ||
164 | return ".mst"; | ||
165 | case OutputType.PatchCreation: | ||
166 | return ".pcp"; | ||
167 | default: | ||
168 | return ".wix"; | ||
169 | } | ||
170 | } | ||
171 | |||
172 | /// <summary> | ||
173 | /// Loads an output from a path on disk. | ||
174 | /// </summary> | ||
175 | /// <param name="path">Path to output file saved on disk.</param> | ||
176 | /// <param name="suppressVersionCheck">Suppresses wix.dll version mismatch check.</param> | ||
177 | /// <returns>Output object.</returns> | ||
178 | public static Output Load(string path, bool suppressVersionCheck) | ||
179 | { | ||
180 | using (FileStream stream = File.OpenRead(path)) | ||
181 | using (FileStructure fs = FileStructure.Read(stream)) | ||
182 | { | ||
183 | if (FileFormat.Wixout != fs.FileFormat) | ||
184 | { | ||
185 | throw new WixUnexpectedFileFormatException(path, FileFormat.Wixout, fs.FileFormat); | ||
186 | } | ||
187 | |||
188 | Uri uri = new Uri(Path.GetFullPath(path)); | ||
189 | using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) | ||
190 | { | ||
191 | try | ||
192 | { | ||
193 | reader.MoveToContent(); | ||
194 | return Output.Read(reader, suppressVersionCheck); | ||
195 | } | ||
196 | catch (XmlException xe) | ||
197 | { | ||
198 | throw new WixCorruptFileException(path, fs.FileFormat, xe); | ||
199 | } | ||
200 | } | ||
201 | } | ||
202 | } | ||
203 | |||
204 | /// <summary> | ||
205 | /// Saves an output to a path on disk. | ||
206 | /// </summary> | ||
207 | /// <param name="path">Path to save output file to on disk.</param> | ||
208 | public void Save(string path) | ||
209 | { | ||
210 | Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); | ||
211 | |||
212 | using (FileStream stream = File.Create(path)) | ||
213 | using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixout, null)) | ||
214 | using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) | ||
215 | { | ||
216 | writer.WriteStartDocument(); | ||
217 | this.Write(writer); | ||
218 | writer.WriteEndDocument(); | ||
219 | } | ||
220 | } | ||
221 | |||
222 | /// <summary> | ||
223 | /// Processes an XmlReader and builds up the output object. | ||
224 | /// </summary> | ||
225 | /// <param name="reader">Reader to get data from.</param> | ||
226 | /// <param name="suppressVersionCheck">Suppresses wix.dll version mismatch check.</param> | ||
227 | /// <returns>The Output represented by the Xml.</returns> | ||
228 | internal static Output Read(XmlReader reader, bool suppressVersionCheck) | ||
229 | { | ||
230 | if (!reader.LocalName.Equals("wixOutput")) | ||
231 | { | ||
232 | throw new XmlException(); | ||
233 | } | ||
234 | |||
235 | bool empty = reader.IsEmptyElement; | ||
236 | Output output = new Output(SourceLineNumber.CreateFromUri(reader.BaseURI)); | ||
237 | SectionType sectionType = SectionType.Unknown; | ||
238 | Version version = null; | ||
239 | |||
240 | while (reader.MoveToNextAttribute()) | ||
241 | { | ||
242 | switch (reader.LocalName) | ||
243 | { | ||
244 | case "codepage": | ||
245 | output.Codepage = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture.NumberFormat); | ||
246 | break; | ||
247 | case "type": | ||
248 | switch (reader.Value) | ||
249 | { | ||
250 | case "Bundle": | ||
251 | output.Type = OutputType.Bundle; | ||
252 | sectionType = SectionType.Bundle; | ||
253 | break; | ||
254 | case "Module": | ||
255 | output.Type = OutputType.Module; | ||
256 | sectionType = SectionType.Module; | ||
257 | break; | ||
258 | case "Patch": | ||
259 | output.Type = OutputType.Patch; | ||
260 | break; | ||
261 | case "PatchCreation": | ||
262 | output.Type = OutputType.PatchCreation; | ||
263 | sectionType = SectionType.PatchCreation; | ||
264 | break; | ||
265 | case "Product": | ||
266 | output.Type = OutputType.Product; | ||
267 | sectionType = SectionType.Product; | ||
268 | break; | ||
269 | case "Transform": | ||
270 | output.Type = OutputType.Transform; | ||
271 | break; | ||
272 | default: | ||
273 | throw new XmlException(); | ||
274 | } | ||
275 | break; | ||
276 | case "version": | ||
277 | version = new Version(reader.Value); | ||
278 | break; | ||
279 | } | ||
280 | } | ||
281 | |||
282 | if (!suppressVersionCheck && null != version && !Output.CurrentVersion.Equals(version)) | ||
283 | { | ||
284 | throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixOutput", version.ToString(), Output.CurrentVersion.ToString())); | ||
285 | } | ||
286 | |||
287 | // create a section for all the rows to belong to | ||
288 | output.entrySection = new Section(null, sectionType, output.Codepage); | ||
289 | |||
290 | // loop through the rest of the xml building up the Output object | ||
291 | TableDefinitionCollection tableDefinitions = null; | ||
292 | List<Table> tables = new List<Table>(); | ||
293 | if (!empty) | ||
294 | { | ||
295 | bool done = false; | ||
296 | |||
297 | // loop through all the fields in a row | ||
298 | while (!done && reader.Read()) | ||
299 | { | ||
300 | switch (reader.NodeType) | ||
301 | { | ||
302 | case XmlNodeType.Element: | ||
303 | switch (reader.LocalName) | ||
304 | { | ||
305 | case "subStorage": | ||
306 | output.SubStorages.Add(SubStorage.Read(reader)); | ||
307 | break; | ||
308 | case "table": | ||
309 | if (null == tableDefinitions) | ||
310 | { | ||
311 | throw new XmlException(); | ||
312 | } | ||
313 | tables.Add(Table.Read(reader, output.entrySection, tableDefinitions)); | ||
314 | break; | ||
315 | case "tableDefinitions": | ||
316 | tableDefinitions = TableDefinitionCollection.Read(reader); | ||
317 | break; | ||
318 | default: | ||
319 | throw new XmlException(); | ||
320 | } | ||
321 | break; | ||
322 | case XmlNodeType.EndElement: | ||
323 | done = true; | ||
324 | break; | ||
325 | } | ||
326 | } | ||
327 | |||
328 | if (!done) | ||
329 | { | ||
330 | throw new XmlException(); | ||
331 | } | ||
332 | } | ||
333 | |||
334 | output.Tables = new TableIndexedCollection(tables); | ||
335 | return output; | ||
336 | } | ||
337 | |||
338 | /// <summary> | ||
339 | /// Ensure this output contains a particular table. | ||
340 | /// </summary> | ||
341 | /// <param name="tableDefinition">Definition of the table that should exist.</param> | ||
342 | /// <param name="section">Optional section to use for the table. If one is not provided, the entry section will be used.</param> | ||
343 | /// <returns>The table in this output.</returns> | ||
344 | public Table EnsureTable(TableDefinition tableDefinition, Section section = null) | ||
345 | { | ||
346 | Table table; | ||
347 | if (!this.Tables.TryGetTable(tableDefinition.Name, out table)) | ||
348 | { | ||
349 | table = new Table(section ?? this.entrySection, tableDefinition); | ||
350 | this.Tables.Add(table); | ||
351 | } | ||
352 | |||
353 | return table; | ||
354 | } | ||
355 | |||
356 | /// <summary> | ||
357 | /// Persists an output in an XML format. | ||
358 | /// </summary> | ||
359 | /// <param name="writer">XmlWriter where the Output should persist itself as XML.</param> | ||
360 | internal void Write(XmlWriter writer) | ||
361 | { | ||
362 | writer.WriteStartElement("wixOutput", XmlNamespaceUri); | ||
363 | |||
364 | writer.WriteAttributeString("type", this.Type.ToString()); | ||
365 | |||
366 | if (0 != this.Codepage) | ||
367 | { | ||
368 | writer.WriteAttributeString("codepage", this.Codepage.ToString(CultureInfo.InvariantCulture)); | ||
369 | } | ||
370 | |||
371 | writer.WriteAttributeString("version", Output.CurrentVersion.ToString()); | ||
372 | |||
373 | // Collect all the table definitions and write them. | ||
374 | TableDefinitionCollection tableDefinitions = new TableDefinitionCollection(); | ||
375 | foreach (Table table in this.Tables) | ||
376 | { | ||
377 | tableDefinitions.Add(table.Definition); | ||
378 | } | ||
379 | tableDefinitions.Write(writer); | ||
380 | |||
381 | foreach (Table table in this.Tables.OrderBy(t => t.Name)) | ||
382 | { | ||
383 | table.Write(writer); | ||
384 | } | ||
385 | |||
386 | foreach (SubStorage subStorage in this.SubStorages) | ||
387 | { | ||
388 | subStorage.Write(writer); | ||
389 | } | ||
390 | |||
391 | writer.WriteEndElement(); | ||
392 | } | ||
393 | } | ||
394 | } | ||
diff --git a/src/WixToolset.Data/Pdb.cs b/src/WixToolset.Data/Pdb.cs deleted file mode 100644 index 03c3ddbb..00000000 --- a/src/WixToolset.Data/Pdb.cs +++ /dev/null | |||
@@ -1,163 +0,0 @@ | |||
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 System; | ||
6 | using System.IO; | ||
7 | using System.Xml; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Pdb generated by the binder. | ||
11 | /// </summary> | ||
12 | public sealed class Pdb | ||
13 | { | ||
14 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixpdb"; | ||
15 | private static readonly Version CurrentVersion = new Version("4.0.0.0"); | ||
16 | |||
17 | /// <summary> | ||
18 | /// Creates a new empty pdb object. | ||
19 | /// </summary> | ||
20 | /// <param name="sourceLineNumbers">The source line information for the pdb.</param> | ||
21 | public Pdb() | ||
22 | { | ||
23 | } | ||
24 | |||
25 | /// <summary> | ||
26 | /// Gets or sets the output that is a part of this pdb. | ||
27 | /// </summary> | ||
28 | /// <value>Type of the output.</value> | ||
29 | public Output Output { get; set; } | ||
30 | |||
31 | /// <summary> | ||
32 | /// Loads a pdb from a path on disk. | ||
33 | /// </summary> | ||
34 | /// <param name="path">Path to pdb file saved on disk.</param> | ||
35 | /// <param name="suppressVersionCheck">Suppresses wix.dll version mismatch check.</param> | ||
36 | /// <returns>Pdb pdb.</returns> | ||
37 | public static Pdb Load(string path, bool suppressVersionCheck) | ||
38 | { | ||
39 | using (FileStream stream = File.OpenRead(path)) | ||
40 | using (FileStructure fs = FileStructure.Read(stream)) | ||
41 | { | ||
42 | if (FileFormat.Wixpdb != fs.FileFormat) | ||
43 | { | ||
44 | throw new WixUnexpectedFileFormatException(path, FileFormat.Wixpdb, fs.FileFormat); | ||
45 | } | ||
46 | |||
47 | Uri uri = new Uri(Path.GetFullPath(path)); | ||
48 | using (XmlReader reader = XmlReader.Create(fs.GetDataStream(), null, uri.AbsoluteUri)) | ||
49 | { | ||
50 | try | ||
51 | { | ||
52 | reader.MoveToContent(); | ||
53 | return Pdb.Read(reader, suppressVersionCheck); | ||
54 | } | ||
55 | catch (XmlException xe) | ||
56 | { | ||
57 | throw new WixCorruptFileException(path, fs.FileFormat, xe); | ||
58 | } | ||
59 | } | ||
60 | } | ||
61 | } | ||
62 | |||
63 | /// <summary> | ||
64 | /// Saves a pdb to a path on disk. | ||
65 | /// </summary> | ||
66 | /// <param name="path">Path to save pdb file to on disk.</param> | ||
67 | public void Save(string path) | ||
68 | { | ||
69 | Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path))); | ||
70 | |||
71 | using (FileStream stream = File.Create(path)) | ||
72 | using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixpdb, null)) | ||
73 | using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream())) | ||
74 | { | ||
75 | writer.WriteStartDocument(); | ||
76 | this.Write(writer); | ||
77 | writer.WriteEndDocument(); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | /// <summary> | ||
82 | /// Processes an XmlReader and builds up the pdb object. | ||
83 | /// </summary> | ||
84 | /// <param name="reader">Reader to get data from.</param> | ||
85 | /// <param name="suppressVersionCheck">Suppresses wix.dll version mismatch check.</param> | ||
86 | /// <returns>The Pdb represented by the Xml.</returns> | ||
87 | internal static Pdb Read(XmlReader reader, bool suppressVersionCheck) | ||
88 | { | ||
89 | if ("wixPdb" != reader.LocalName) | ||
90 | { | ||
91 | throw new XmlException(); | ||
92 | } | ||
93 | |||
94 | bool empty = reader.IsEmptyElement; | ||
95 | Pdb pdb = new Pdb(); | ||
96 | Version version = null; | ||
97 | |||
98 | while (reader.MoveToNextAttribute()) | ||
99 | { | ||
100 | switch (reader.LocalName) | ||
101 | { | ||
102 | case "version": | ||
103 | version = new Version(reader.Value); | ||
104 | break; | ||
105 | } | ||
106 | } | ||
107 | |||
108 | if (!suppressVersionCheck && null != version && !Pdb.CurrentVersion.Equals(version)) | ||
109 | { | ||
110 | throw new WixException(WixDataErrors.VersionMismatch(SourceLineNumber.CreateFromUri(reader.BaseURI), "wixPdb", version.ToString(), Pdb.CurrentVersion.ToString())); | ||
111 | } | ||
112 | |||
113 | // loop through the rest of the pdb building up the Output object | ||
114 | if (!empty) | ||
115 | { | ||
116 | bool done = false; | ||
117 | |||
118 | // loop through all the fields in a row | ||
119 | while (!done && reader.Read()) | ||
120 | { | ||
121 | switch (reader.NodeType) | ||
122 | { | ||
123 | case XmlNodeType.Element: | ||
124 | switch (reader.LocalName) | ||
125 | { | ||
126 | case "wixOutput": | ||
127 | pdb.Output = Output.Read(reader, suppressVersionCheck); | ||
128 | break; | ||
129 | default: | ||
130 | throw new XmlException(); | ||
131 | } | ||
132 | break; | ||
133 | case XmlNodeType.EndElement: | ||
134 | done = true; | ||
135 | break; | ||
136 | } | ||
137 | } | ||
138 | |||
139 | if (!done) | ||
140 | { | ||
141 | throw new XmlException(); | ||
142 | } | ||
143 | } | ||
144 | |||
145 | return pdb; | ||
146 | } | ||
147 | |||
148 | /// <summary> | ||
149 | /// Persists a pdb in an XML format. | ||
150 | /// </summary> | ||
151 | /// <param name="writer">XmlWriter where the Pdb should persist itself as XML.</param> | ||
152 | internal void Write(XmlWriter writer) | ||
153 | { | ||
154 | writer.WriteStartElement("wixPdb", XmlNamespaceUri); | ||
155 | |||
156 | writer.WriteAttributeString("version", Pdb.CurrentVersion.ToString()); | ||
157 | |||
158 | this.Output.Write(writer); | ||
159 | |||
160 | writer.WriteEndElement(); | ||
161 | } | ||
162 | } | ||
163 | } | ||
diff --git a/src/WixToolset.Data/Row.cs b/src/WixToolset.Data/Row.cs deleted file mode 100644 index 4ebddc06..00000000 --- a/src/WixToolset.Data/Row.cs +++ /dev/null | |||
@@ -1,626 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Diagnostics; | ||
8 | using System.Diagnostics.CodeAnalysis; | ||
9 | using System.Globalization; | ||
10 | using System.Text; | ||
11 | using System.Text.RegularExpressions; | ||
12 | using System.Xml; | ||
13 | |||
14 | /// <summary> | ||
15 | /// Row containing data for a table. | ||
16 | /// </summary> | ||
17 | public class Row | ||
18 | { | ||
19 | private static long rowCount; | ||
20 | |||
21 | private Field[] fields; | ||
22 | |||
23 | /// <summary> | ||
24 | /// Creates a row that belongs to a table. | ||
25 | /// </summary> | ||
26 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
27 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
28 | /// <remarks>The compiler should use this constructor exclusively.</remarks> | ||
29 | public Row(SourceLineNumber sourceLineNumbers, Table table) | ||
30 | : this(sourceLineNumbers, table.Definition) | ||
31 | { | ||
32 | this.Table = table; | ||
33 | } | ||
34 | |||
35 | /// <summary> | ||
36 | /// Creates a row that does not belong to a table. | ||
37 | /// </summary> | ||
38 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
39 | /// <param name="tableDefinition">TableDefinition this row should get its column definitions from.</param> | ||
40 | /// <remarks>This constructor is used in cases where there isn't a clear owner of the row. The linker uses this constructor for the rows it generates.</remarks> | ||
41 | public Row(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) | ||
42 | { | ||
43 | this.Number = rowCount++; | ||
44 | this.SourceLineNumbers = sourceLineNumbers; | ||
45 | this.fields = new Field[tableDefinition.Columns.Count]; | ||
46 | this.TableDefinition = tableDefinition; | ||
47 | |||
48 | for (int i = 0; i < this.fields.Length; ++i) | ||
49 | { | ||
50 | this.fields[i] = Field.Create(this.TableDefinition.Columns[i]); | ||
51 | } | ||
52 | } | ||
53 | |||
54 | /// <summary> | ||
55 | /// Creates a shallow copy of a row from another row. | ||
56 | /// </summary> | ||
57 | /// <param name="source">The row the data is copied from.</param> | ||
58 | protected Row(Row source) | ||
59 | { | ||
60 | this.Table = source.Table; | ||
61 | this.TableDefinition = source.TableDefinition; | ||
62 | this.Number = source.Number; | ||
63 | this.Access = source.Access; | ||
64 | this.Operation = source.Operation; | ||
65 | this.Redundant = source.Redundant; | ||
66 | this.SectionId = source.SectionId; | ||
67 | this.SourceLineNumbers = source.SourceLineNumbers; | ||
68 | this.fields = source.fields; | ||
69 | } | ||
70 | |||
71 | /// <summary> | ||
72 | /// Gets or sets the access to the row's primary key. | ||
73 | /// </summary> | ||
74 | /// <value>The row access modifier.</value> | ||
75 | public AccessModifier Access { get; set; } | ||
76 | |||
77 | /// <summary> | ||
78 | /// Gets or sets the row transform operation. | ||
79 | /// </summary> | ||
80 | /// <value>The row transform operation.</value> | ||
81 | public RowOperation Operation { get; set; } | ||
82 | |||
83 | /// <summary> | ||
84 | /// Gets or sets wether the row is a duplicate of another row thus redundant. | ||
85 | /// </summary> | ||
86 | public bool Redundant { get; set; } | ||
87 | |||
88 | /// <summary> | ||
89 | /// Gets the section for the row. | ||
90 | /// </summary> | ||
91 | /// <value>Section for the row.</value> | ||
92 | public Section Section { get { return (null == this.Table) ? null : this.Table.Section; } } | ||
93 | |||
94 | /// <summary> | ||
95 | /// Gets or sets the SectionId property on the row. | ||
96 | /// </summary> | ||
97 | /// <value>The SectionId property on the row.</value> | ||
98 | public string SectionId { get; set; } | ||
99 | |||
100 | /// <summary> | ||
101 | /// Gets the source file and line number for the row. | ||
102 | /// </summary> | ||
103 | /// <value>Source file and line number.</value> | ||
104 | public SourceLineNumber SourceLineNumbers { get; private set; } | ||
105 | |||
106 | /// <summary> | ||
107 | /// Gets the table this row belongs to. | ||
108 | /// </summary> | ||
109 | /// <value>null if Row does not belong to a Table, or owner Table otherwise.</value> | ||
110 | public Table Table { get; private set; } | ||
111 | |||
112 | /// <summary> | ||
113 | /// Gets the table definition for this row. | ||
114 | /// </summary> | ||
115 | /// <remarks>A Row always has a TableDefinition, even if the Row does not belong to a Table.</remarks> | ||
116 | /// <value>TableDefinition for Row.</value> | ||
117 | public TableDefinition TableDefinition { get; private set; } | ||
118 | |||
119 | /// <summary> | ||
120 | /// Gets the fields contained by this row. | ||
121 | /// </summary> | ||
122 | /// <value>Array of field objects</value> | ||
123 | [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
124 | public Field[] Fields | ||
125 | { | ||
126 | get { return this.fields; } | ||
127 | } | ||
128 | |||
129 | /// <summary> | ||
130 | /// Gets the unique number for the row. | ||
131 | /// </summary> | ||
132 | /// <value>Number for row.</value> | ||
133 | public long Number { get; private set; } | ||
134 | |||
135 | /// <summary> | ||
136 | /// Gets or sets the value of a particular field in the row. | ||
137 | /// </summary> | ||
138 | /// <param name="field">field index.</param> | ||
139 | /// <value>Value of a field in the row.</value> | ||
140 | public object this[int field] | ||
141 | { | ||
142 | get { return this.fields[field].Data; } | ||
143 | set { this.fields[field].Data = value; } | ||
144 | } | ||
145 | |||
146 | /// <summary> | ||
147 | /// Gets the field as an integer. | ||
148 | /// </summary> | ||
149 | /// <returns>Field's data as an integer.</returns> | ||
150 | public int FieldAsInteger(int field) | ||
151 | { | ||
152 | return this.fields[field].AsInteger(); | ||
153 | } | ||
154 | |||
155 | /// <summary> | ||
156 | /// Gets the field as an integer that could be null. | ||
157 | /// </summary> | ||
158 | /// <returns>Field's data as an integer that could be null.</returns> | ||
159 | public int? FieldAsNullableInteger(int field) | ||
160 | { | ||
161 | return this.fields[field].AsNullableInteger(); | ||
162 | } | ||
163 | |||
164 | /// <summary> | ||
165 | /// Gets the field as a string. | ||
166 | /// </summary> | ||
167 | /// <returns>Field's data as a string.</returns> | ||
168 | public string FieldAsString(int field) | ||
169 | { | ||
170 | return this.fields[field].AsString(); | ||
171 | } | ||
172 | |||
173 | /// <summary> | ||
174 | /// Sets the value of a particular field in the row without validating. | ||
175 | /// </summary> | ||
176 | /// <param name="field">field index.</param> | ||
177 | /// <param name="value">Value of a field in the row.</param> | ||
178 | /// <returns>True if successful, false if validation failed.</returns> | ||
179 | public bool BestEffortSetField(int field, object value) | ||
180 | { | ||
181 | return this.fields[field].BestEffortSet(value); | ||
182 | } | ||
183 | |||
184 | /// <summary> | ||
185 | /// Get the value used to represent the row in a keyed row collection. | ||
186 | /// </summary> | ||
187 | /// <returns>Primary key or row number if no primary key is available.</returns> | ||
188 | public string GetKey() | ||
189 | { | ||
190 | return this.GetPrimaryKey() ?? Convert.ToString(this.Number, CultureInfo.InvariantCulture); | ||
191 | } | ||
192 | |||
193 | /// <summary> | ||
194 | /// Get the primary key of this row. | ||
195 | /// </summary> | ||
196 | /// <param name="delimiter">Delimiter character for multiple column primary keys.</param> | ||
197 | /// <returns>The primary key or null if the row's table has no primary key columns.</returns> | ||
198 | public string GetPrimaryKey(char delimiter = '/') | ||
199 | { | ||
200 | return this.GetPrimaryKey(delimiter, String.Empty); | ||
201 | } | ||
202 | |||
203 | /// <summary> | ||
204 | /// Get the primary key of this row. | ||
205 | /// </summary> | ||
206 | /// <param name="delimiter">Delimiter character for multiple column primary keys.</param> | ||
207 | /// <param name="nullReplacement">String to represent null values in the primary key.</param> | ||
208 | /// <returns>The primary key or null if the row's table has no primary key columns.</returns> | ||
209 | public string GetPrimaryKey(char delimiter, string nullReplacement) | ||
210 | { | ||
211 | bool foundPrimaryKey = false; | ||
212 | StringBuilder primaryKey = new StringBuilder(); | ||
213 | |||
214 | foreach (Field field in this.fields) | ||
215 | { | ||
216 | if (field.Column.PrimaryKey) | ||
217 | { | ||
218 | if (foundPrimaryKey) | ||
219 | { | ||
220 | primaryKey.Append(delimiter); | ||
221 | } | ||
222 | |||
223 | primaryKey.Append((null == field.Data) ? nullReplacement : Convert.ToString(field.Data, CultureInfo.InvariantCulture)); | ||
224 | |||
225 | foundPrimaryKey = true; | ||
226 | } | ||
227 | else // primary keys must be the first columns of a row so the first non-primary key means we can stop looking. | ||
228 | { | ||
229 | break; | ||
230 | } | ||
231 | } | ||
232 | |||
233 | return foundPrimaryKey ? primaryKey.ToString() : null; | ||
234 | } | ||
235 | |||
236 | /// <summary> | ||
237 | /// Returns true if the specified field is null or an empty string. | ||
238 | /// </summary> | ||
239 | /// <param name="field">Index of the field to check.</param> | ||
240 | /// <returns>true if the specified field is null or an empty string, false otherwise.</returns> | ||
241 | public bool IsColumnEmpty(int field) | ||
242 | { | ||
243 | if (null == this.fields[field].Data) | ||
244 | { | ||
245 | return true; | ||
246 | } | ||
247 | |||
248 | string dataString = this.fields[field].Data as string; | ||
249 | if (null != dataString && 0 == dataString.Length) | ||
250 | { | ||
251 | return true; | ||
252 | } | ||
253 | |||
254 | return false; | ||
255 | } | ||
256 | |||
257 | /// <summary> | ||
258 | /// Tests if the passed in row is identical. | ||
259 | /// </summary> | ||
260 | /// <param name="row">Row to compare against.</param> | ||
261 | /// <returns>True if two rows are identical.</returns> | ||
262 | public bool IsIdentical(Row row) | ||
263 | { | ||
264 | bool identical = (this.TableDefinition.Name == row.TableDefinition.Name && this.fields.Length == row.fields.Length); | ||
265 | |||
266 | for (int i = 0; identical && i < this.fields.Length; ++i) | ||
267 | { | ||
268 | if (!(this.fields[i].IsIdentical(row.fields[i]))) | ||
269 | { | ||
270 | identical = false; | ||
271 | } | ||
272 | } | ||
273 | |||
274 | return identical; | ||
275 | } | ||
276 | |||
277 | /// <summary> | ||
278 | /// Returns a string representation of the Row. | ||
279 | /// </summary> | ||
280 | /// <returns>A string representation of the Row.</returns> | ||
281 | public override string ToString() | ||
282 | { | ||
283 | return String.Join("/", (object[])this.fields); | ||
284 | } | ||
285 | |||
286 | /// <summary> | ||
287 | /// Creates a Row from the XmlReader. | ||
288 | /// </summary> | ||
289 | /// <param name="reader">Reader to get data from.</param> | ||
290 | /// <param name="table">Table for this row.</param> | ||
291 | /// <returns>New row object.</returns> | ||
292 | internal static Row Read(XmlReader reader, Table table) | ||
293 | { | ||
294 | Debug.Assert("row" == reader.LocalName); | ||
295 | |||
296 | bool empty = reader.IsEmptyElement; | ||
297 | AccessModifier access = AccessModifier.Public; | ||
298 | RowOperation operation = RowOperation.None; | ||
299 | bool redundant = false; | ||
300 | string sectionId = null; | ||
301 | SourceLineNumber sourceLineNumbers = null; | ||
302 | |||
303 | while (reader.MoveToNextAttribute()) | ||
304 | { | ||
305 | switch (reader.LocalName) | ||
306 | { | ||
307 | case "access": | ||
308 | access = (AccessModifier)Enum.Parse(typeof(AccessModifier), reader.Value, true); | ||
309 | break; | ||
310 | case "op": | ||
311 | operation = (RowOperation)Enum.Parse(typeof(RowOperation), reader.Value, true); | ||
312 | break; | ||
313 | case "redundant": | ||
314 | redundant = reader.Value.Equals("yes"); | ||
315 | break; | ||
316 | case "sectionId": | ||
317 | sectionId = reader.Value; | ||
318 | break; | ||
319 | case "sourceLineNumber": | ||
320 | sourceLineNumbers = SourceLineNumber.CreateFromEncoded(reader.Value); | ||
321 | break; | ||
322 | } | ||
323 | } | ||
324 | |||
325 | Row row = table.CreateRow(sourceLineNumbers); | ||
326 | row.Access = access; | ||
327 | row.Operation = operation; | ||
328 | row.Redundant = redundant; | ||
329 | row.SectionId = sectionId; | ||
330 | |||
331 | // loop through all the fields in a row | ||
332 | if (!empty) | ||
333 | { | ||
334 | bool done = false; | ||
335 | int field = 0; | ||
336 | |||
337 | // loop through all the fields in a row | ||
338 | while (!done && reader.Read()) | ||
339 | { | ||
340 | switch (reader.NodeType) | ||
341 | { | ||
342 | case XmlNodeType.Element: | ||
343 | switch (reader.LocalName) | ||
344 | { | ||
345 | case "field": | ||
346 | if (row.Fields.Length <= field) | ||
347 | { | ||
348 | if (!reader.IsEmptyElement) | ||
349 | { | ||
350 | throw new XmlException(); | ||
351 | } | ||
352 | } | ||
353 | else | ||
354 | { | ||
355 | row.fields[field].Read(reader); | ||
356 | } | ||
357 | ++field; | ||
358 | break; | ||
359 | default: | ||
360 | throw new XmlException(); | ||
361 | } | ||
362 | break; | ||
363 | case XmlNodeType.EndElement: | ||
364 | done = true; | ||
365 | break; | ||
366 | } | ||
367 | } | ||
368 | |||
369 | if (!done) | ||
370 | { | ||
371 | throw new XmlException(); | ||
372 | } | ||
373 | } | ||
374 | |||
375 | return row; | ||
376 | } | ||
377 | |||
378 | /// <summary> | ||
379 | /// Returns the row in a format usable in IDT files. | ||
380 | /// </summary> | ||
381 | /// <param name="keepAddedColumns">Whether to keep columns added in a transform.</param> | ||
382 | /// <returns>String with tab delimited field values.</returns> | ||
383 | internal string ToIdtDefinition(bool keepAddedColumns) | ||
384 | { | ||
385 | bool first = true; | ||
386 | StringBuilder sb = new StringBuilder(); | ||
387 | |||
388 | foreach (Field field in this.fields) | ||
389 | { | ||
390 | // Conditionally keep columns added in a transform; otherwise, | ||
391 | // break because columns can only be added at the end. | ||
392 | if (field.Column.Added && !keepAddedColumns) | ||
393 | { | ||
394 | break; | ||
395 | } | ||
396 | |||
397 | if (first) | ||
398 | { | ||
399 | first = false; | ||
400 | } | ||
401 | else | ||
402 | { | ||
403 | sb.Append('\t'); | ||
404 | } | ||
405 | |||
406 | sb.Append(field.ToIdtValue()); | ||
407 | } | ||
408 | sb.Append("\r\n"); | ||
409 | |||
410 | return sb.ToString(); | ||
411 | } | ||
412 | |||
413 | /// <summary> | ||
414 | /// Gets the modularized version of the field data. | ||
415 | /// </summary> | ||
416 | /// <param name="field">The field to modularize.</param> | ||
417 | /// <param name="modularizationGuid">String containing the GUID of the Merge Module to append the the field value, if appropriate.</param> | ||
418 | /// <param name="suppressModularizationIdentifiers">Optional collection of identifiers that should not be modularized.</param> | ||
419 | /// <remarks>moduleGuid is expected to be null when not being used to compile a Merge Module.</remarks> | ||
420 | /// <returns>The modularized version of the field data.</returns> | ||
421 | internal string GetModularizedValue(Field field, string modularizationGuid, ISet<string> suppressModularizationIdentifiers) | ||
422 | { | ||
423 | Debug.Assert(null != field.Data && 0 < ((string)field.Data).Length); | ||
424 | string fieldData = Convert.ToString(field.Data, CultureInfo.InvariantCulture); | ||
425 | |||
426 | if (null != modularizationGuid && ColumnModularizeType.None != field.Column.ModularizeType && !(WindowsInstallerStandard.IsStandardAction(fieldData) || WindowsInstallerStandard.IsStandardProperty(fieldData))) | ||
427 | { | ||
428 | StringBuilder sb; | ||
429 | int start; | ||
430 | ColumnModularizeType modularizeType = field.Column.ModularizeType; | ||
431 | |||
432 | // special logic for the ControlEvent table's Argument column | ||
433 | // this column requires different modularization methods depending upon the value of the Event column | ||
434 | if (ColumnModularizeType.ControlEventArgument == field.Column.ModularizeType) | ||
435 | { | ||
436 | switch (this[2].ToString()) | ||
437 | { | ||
438 | case "CheckExistingTargetPath": // redirectable property name | ||
439 | case "CheckTargetPath": | ||
440 | case "DoAction": // custom action name | ||
441 | case "NewDialog": // dialog name | ||
442 | case "SelectionBrowse": | ||
443 | case "SetTargetPath": | ||
444 | case "SpawnDialog": | ||
445 | case "SpawnWaitDialog": | ||
446 | if (Common.IsIdentifier(fieldData)) | ||
447 | { | ||
448 | modularizeType = ColumnModularizeType.Column; | ||
449 | } | ||
450 | else | ||
451 | { | ||
452 | modularizeType = ColumnModularizeType.Property; | ||
453 | } | ||
454 | break; | ||
455 | default: // formatted | ||
456 | modularizeType = ColumnModularizeType.Property; | ||
457 | break; | ||
458 | } | ||
459 | } | ||
460 | else if (ColumnModularizeType.ControlText == field.Column.ModularizeType) | ||
461 | { | ||
462 | // icons are stored in the Binary table, so they get column-type modularization | ||
463 | if (("Bitmap" == this[2].ToString() || "Icon" == this[2].ToString()) && Common.IsIdentifier(fieldData)) | ||
464 | { | ||
465 | modularizeType = ColumnModularizeType.Column; | ||
466 | } | ||
467 | else | ||
468 | { | ||
469 | modularizeType = ColumnModularizeType.Property; | ||
470 | } | ||
471 | } | ||
472 | |||
473 | switch (modularizeType) | ||
474 | { | ||
475 | case ColumnModularizeType.Column: | ||
476 | // ensure the value is an identifier (otherwise it shouldn't be modularized this way) | ||
477 | if (!Common.IsIdentifier(fieldData)) | ||
478 | { | ||
479 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotModularizeIllegalID, fieldData)); | ||
480 | } | ||
481 | |||
482 | // if we're not supposed to suppress modularization of this identifier | ||
483 | if (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) | ||
484 | { | ||
485 | fieldData = String.Concat(fieldData, ".", modularizationGuid); | ||
486 | } | ||
487 | break; | ||
488 | |||
489 | case ColumnModularizeType.Property: | ||
490 | case ColumnModularizeType.Condition: | ||
491 | Regex regex; | ||
492 | if (ColumnModularizeType.Property == modularizeType) | ||
493 | { | ||
494 | regex = new Regex(@"\[(?<identifier>[#$!]?[a-zA-Z_][a-zA-Z0-9_\.]*)]", RegexOptions.Singleline | RegexOptions.ExplicitCapture); | ||
495 | } | ||
496 | else | ||
497 | { | ||
498 | Debug.Assert(ColumnModularizeType.Condition == modularizeType); | ||
499 | |||
500 | // This heinous looking regular expression is actually quite an elegant way | ||
501 | // to shred the entire condition into the identifiers that need to be | ||
502 | // modularized. Let's break it down piece by piece: | ||
503 | // | ||
504 | // 1. Look for the operators: NOT, EQV, XOR, OR, AND, IMP (plus a space). Note that the | ||
505 | // regular expression is case insensitive so we don't have to worry about | ||
506 | // all the permutations of these strings. | ||
507 | // 2. Look for quoted strings. Quoted strings are just text and are ignored | ||
508 | // outright. | ||
509 | // 3. Look for environment variables. These look like identifiers we might | ||
510 | // otherwise be interested in but start with a percent sign. Like quoted | ||
511 | // strings these enviroment variable references are ignored outright. | ||
512 | // 4. Match all identifiers that are things that need to be modularized. Note | ||
513 | // the special characters (!, $, ?, &) that denote Component and Feature states. | ||
514 | regex = new Regex(@"NOT\s|EQV\s|XOR\s|OR\s|AND\s|IMP\s|"".*?""|%[a-zA-Z_][a-zA-Z0-9_\.]*|(?<identifier>[!$\?&]?[a-zA-Z_][a-zA-Z0-9_\.]*)", RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); | ||
515 | |||
516 | // less performant version of the above with captures showing where everything lives | ||
517 | // regex = new Regex(@"(?<operator>NOT|EQV|XOR|OR|AND|IMP)|(?<string>"".*?"")|(?<environment>%[a-zA-Z_][a-zA-Z0-9_\.]*)|(?<identifier>[!$\?&]?[a-zA-Z_][a-zA-Z0-9_\.]*)",RegexOptions.Singleline | RegexOptions.IgnoreCase | RegexOptions.ExplicitCapture); | ||
518 | } | ||
519 | |||
520 | MatchCollection matches = regex.Matches(fieldData); | ||
521 | |||
522 | sb = new StringBuilder(fieldData); | ||
523 | |||
524 | // notice how this code walks backward through the list | ||
525 | // because it modifies the string as we through it | ||
526 | for (int i = matches.Count - 1; 0 <= i; i--) | ||
527 | { | ||
528 | Group group = matches[i].Groups["identifier"]; | ||
529 | if (group.Success) | ||
530 | { | ||
531 | string identifier = group.Value; | ||
532 | if (!WindowsInstallerStandard.IsStandardProperty(identifier) && (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(identifier))) | ||
533 | { | ||
534 | sb.Insert(group.Index + group.Length, '.'); | ||
535 | sb.Insert(group.Index + group.Length + 1, modularizationGuid); | ||
536 | } | ||
537 | } | ||
538 | } | ||
539 | |||
540 | fieldData = sb.ToString(); | ||
541 | break; | ||
542 | |||
543 | case ColumnModularizeType.CompanionFile: | ||
544 | // if we're not supposed to ignore this identifier and the value does not start with | ||
545 | // a digit, we must have a companion file so modularize it | ||
546 | if ((null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) && | ||
547 | 0 < fieldData.Length && !Char.IsDigit(fieldData, 0)) | ||
548 | { | ||
549 | fieldData = String.Concat(fieldData, ".", modularizationGuid); | ||
550 | } | ||
551 | break; | ||
552 | |||
553 | case ColumnModularizeType.Icon: | ||
554 | if (null == suppressModularizationIdentifiers || !suppressModularizationIdentifiers.Contains(fieldData)) | ||
555 | { | ||
556 | start = fieldData.LastIndexOf(".", StringComparison.Ordinal); | ||
557 | if (-1 == start) | ||
558 | { | ||
559 | fieldData = String.Concat(fieldData, ".", modularizationGuid); | ||
560 | } | ||
561 | else | ||
562 | { | ||
563 | fieldData = String.Concat(fieldData.Substring(0, start), ".", modularizationGuid, fieldData.Substring(start)); | ||
564 | } | ||
565 | } | ||
566 | break; | ||
567 | |||
568 | case ColumnModularizeType.SemicolonDelimited: | ||
569 | string[] keys = fieldData.Split(';'); | ||
570 | for (int i = 0; i < keys.Length; ++i) | ||
571 | { | ||
572 | keys[i] = String.Concat(keys[i], ".", modularizationGuid); | ||
573 | } | ||
574 | fieldData = String.Join(";", keys); | ||
575 | break; | ||
576 | } | ||
577 | } | ||
578 | |||
579 | return fieldData; | ||
580 | } | ||
581 | |||
582 | /// <summary> | ||
583 | /// Persists a row in an XML format. | ||
584 | /// </summary> | ||
585 | /// <param name="writer">XmlWriter where the Row should persist itself as XML.</param> | ||
586 | [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Changing the way this string normalizes would result " + | ||
587 | "in a change to the way intermediate files are generated, potentially causing extra churn in patches on an MSI built from an older version of WiX. " + | ||
588 | "Furthermore, there is no security hole here, as the strings won't need to make a round trip")] | ||
589 | internal void Write(XmlWriter writer) | ||
590 | { | ||
591 | writer.WriteStartElement("row", Intermediate.XmlNamespaceUri); | ||
592 | |||
593 | if (AccessModifier.Public != this.Access) | ||
594 | { | ||
595 | writer.WriteAttributeString("access", this.Access.ToString().ToLowerInvariant()); | ||
596 | } | ||
597 | |||
598 | if (RowOperation.None != this.Operation) | ||
599 | { | ||
600 | writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); | ||
601 | } | ||
602 | |||
603 | if (this.Redundant) | ||
604 | { | ||
605 | writer.WriteAttributeString("redundant", "yes"); | ||
606 | } | ||
607 | |||
608 | if (null != this.SectionId) | ||
609 | { | ||
610 | writer.WriteAttributeString("sectionId", this.SectionId); | ||
611 | } | ||
612 | |||
613 | if (null != this.SourceLineNumbers) | ||
614 | { | ||
615 | writer.WriteAttributeString("sourceLineNumber", this.SourceLineNumbers.GetEncoded()); | ||
616 | } | ||
617 | |||
618 | for (int i = 0; i < this.fields.Length; ++i) | ||
619 | { | ||
620 | this.fields[i].Write(writer); | ||
621 | } | ||
622 | |||
623 | writer.WriteEndElement(); | ||
624 | } | ||
625 | } | ||
626 | } | ||
diff --git a/src/WixToolset.Data/RowDictionary.cs b/src/WixToolset.Data/RowDictionary.cs deleted file mode 100644 index a0cc5302..00000000 --- a/src/WixToolset.Data/RowDictionary.cs +++ /dev/null | |||
@@ -1,84 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | |||
8 | /// <summary> | ||
9 | /// A dictionary of rows. Unlike the <see cref="RowIndexedCollection"/> this | ||
10 | /// will throw when multiple rows with the same key are added. | ||
11 | /// </summary> | ||
12 | public sealed class RowDictionary<T> : Dictionary<string, T> where T : Row | ||
13 | { | ||
14 | /// <summary> | ||
15 | /// Creates an empty <see cref="RowDictionary"/>. | ||
16 | /// </summary> | ||
17 | public RowDictionary() | ||
18 | : base(StringComparer.InvariantCulture) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates and populates a <see cref="RowDictionary"/> with the rows from the given enumerator. | ||
24 | /// </summary> | ||
25 | /// <param name="Rows">Rows to add.</param> | ||
26 | public RowDictionary(IEnumerable<T> rows) | ||
27 | : this() | ||
28 | { | ||
29 | foreach (T row in rows) | ||
30 | { | ||
31 | this.Add(row); | ||
32 | } | ||
33 | } | ||
34 | |||
35 | /// <summary> | ||
36 | /// Creates and populates a <see cref="RowDictionary"/> with the rows from the given <see cref="Table"/>. | ||
37 | /// </summary> | ||
38 | /// <param name="table">The table to index.</param> | ||
39 | /// <remarks> | ||
40 | /// Rows added to the index are not automatically added to the given <paramref name="table"/>. | ||
41 | /// </remarks> | ||
42 | public RowDictionary(Table table) | ||
43 | : this() | ||
44 | { | ||
45 | if (null != table) | ||
46 | { | ||
47 | foreach (T row in table.Rows) | ||
48 | { | ||
49 | this.Add(row); | ||
50 | } | ||
51 | } | ||
52 | } | ||
53 | |||
54 | /// <summary> | ||
55 | /// Adds a row to the dictionary using the row key. | ||
56 | /// </summary> | ||
57 | /// <param name="row">Row to add to the dictionary.</param> | ||
58 | public void Add(T row) | ||
59 | { | ||
60 | this.Add(row.GetKey(), row); | ||
61 | } | ||
62 | |||
63 | /// <summary> | ||
64 | /// Gets the row by integer key. | ||
65 | /// </summary> | ||
66 | /// <param name="key">Integer key to look up.</param> | ||
67 | /// <returns>Row or null if key is not found.</returns> | ||
68 | public T Get(int key) | ||
69 | { | ||
70 | return this.Get(key.ToString()); | ||
71 | } | ||
72 | |||
73 | /// <summary> | ||
74 | /// Gets the row by string key. | ||
75 | /// </summary> | ||
76 | /// <param name="key">String key to look up.</param> | ||
77 | /// <returns>Row or null if key is not found.</returns> | ||
78 | public T Get(string key) | ||
79 | { | ||
80 | T result; | ||
81 | return this.TryGetValue(key, out result) ? result : null; | ||
82 | } | ||
83 | } | ||
84 | } | ||
diff --git a/src/WixToolset.Data/RowIndexedList.cs b/src/WixToolset.Data/RowIndexedList.cs deleted file mode 100644 index 27c43a81..00000000 --- a/src/WixToolset.Data/RowIndexedList.cs +++ /dev/null | |||
@@ -1,301 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | |||
8 | /// <summary> | ||
9 | /// A list of rows indexed by their primary key. Unlike a <see cref="RowDictionary"/> | ||
10 | /// this indexed list will track rows in their added order and will allow rows with | ||
11 | /// duplicate keys to be added to the list, although only the first row will be indexed. | ||
12 | /// </summary> | ||
13 | public sealed class RowIndexedList<T> : IList<T> where T : Row | ||
14 | { | ||
15 | private Dictionary<string, T> index; | ||
16 | private List<T> rows; | ||
17 | private List<T> duplicates; | ||
18 | |||
19 | /// <summary> | ||
20 | /// Creates an empty <see cref="RowIndexedList"/>. | ||
21 | /// </summary> | ||
22 | public RowIndexedList() | ||
23 | { | ||
24 | this.index = new Dictionary<string, T>(StringComparer.InvariantCulture); | ||
25 | this.rows = new List<T>(); | ||
26 | this.duplicates = new List<T>(); | ||
27 | } | ||
28 | |||
29 | /// <summary> | ||
30 | /// Creates and populates a <see cref="RowDictionary"/> with the rows from the given enumerator. | ||
31 | /// </summary> | ||
32 | /// <param name="rows">Rows to index.</param> | ||
33 | public RowIndexedList(IEnumerable<T> rows) | ||
34 | : this() | ||
35 | { | ||
36 | foreach (T row in rows) | ||
37 | { | ||
38 | this.Add(row); | ||
39 | } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Creates and populates a <see cref="RowDictionary"/> with the rows from the given <see cref="Table"/>. | ||
44 | /// </summary> | ||
45 | /// <param name="table">The table to index.</param> | ||
46 | /// <remarks> | ||
47 | /// Rows added to the index are not automatically added to the given <paramref name="table"/>. | ||
48 | /// </remarks> | ||
49 | public RowIndexedList(Table table) | ||
50 | : this() | ||
51 | { | ||
52 | if (null != table) | ||
53 | { | ||
54 | foreach (T row in table.Rows) | ||
55 | { | ||
56 | this.Add(row); | ||
57 | } | ||
58 | } | ||
59 | } | ||
60 | |||
61 | /// <summary> | ||
62 | /// Gets the duplicates in the list. | ||
63 | /// </summary> | ||
64 | public IEnumerable<T> Duplicates { get { return this.duplicates; } } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Gets the row by integer key. | ||
68 | /// </summary> | ||
69 | /// <param name="key">Integer key to look up.</param> | ||
70 | /// <returns>Row or null if key is not found.</returns> | ||
71 | public T Get(int key) | ||
72 | { | ||
73 | return this.Get(key.ToString()); | ||
74 | } | ||
75 | |||
76 | /// <summary> | ||
77 | /// Gets the row by string key. | ||
78 | /// </summary> | ||
79 | /// <param name="key">String key to look up.</param> | ||
80 | /// <returns>Row or null if key is not found.</returns> | ||
81 | public T Get(string key) | ||
82 | { | ||
83 | T result; | ||
84 | return this.TryGet(key, out result) ? result : null; | ||
85 | } | ||
86 | |||
87 | /// <summary> | ||
88 | /// Gets the row by string key if it exists. | ||
89 | /// </summary> | ||
90 | /// <param name="key">Key of row to get.</param> | ||
91 | /// <param name="row">Row found.</param> | ||
92 | /// <returns>True if key was found otherwise false.</returns> | ||
93 | public bool TryGet(string key, out T row) | ||
94 | { | ||
95 | return this.index.TryGetValue(key, out row); | ||
96 | } | ||
97 | |||
98 | /// <summary> | ||
99 | /// Tries to add a row as long as it would not create a duplicate. | ||
100 | /// </summary> | ||
101 | /// <param name="row">Row to add.</param> | ||
102 | /// <returns>True if the row as added otherwise false.</returns> | ||
103 | public bool TryAdd(T row) | ||
104 | { | ||
105 | try | ||
106 | { | ||
107 | this.index.Add(row.GetKey(), row); | ||
108 | } | ||
109 | catch (ArgumentException) // if the key already exists, bail. | ||
110 | { | ||
111 | return false; | ||
112 | } | ||
113 | |||
114 | this.rows.Add(row); | ||
115 | return true; | ||
116 | } | ||
117 | |||
118 | /// <summary> | ||
119 | /// Adds a row to the list. If a row with the same key is already index, the row is | ||
120 | /// is not in the index but will still be part of the list and added to the duplicates | ||
121 | /// list. | ||
122 | /// </summary> | ||
123 | /// <param name="row"></param> | ||
124 | public void Add(T row) | ||
125 | { | ||
126 | this.rows.Add(row); | ||
127 | try | ||
128 | { | ||
129 | this.index.Add(row.GetKey(), row); | ||
130 | } | ||
131 | catch (ArgumentException) // if the key already exists, we have a duplicate. | ||
132 | { | ||
133 | this.duplicates.Add(row); | ||
134 | } | ||
135 | } | ||
136 | |||
137 | /// <summary> | ||
138 | /// Gets the index of a row. | ||
139 | /// </summary> | ||
140 | /// <param name="row">Iterates through the list of rows to find the index of a particular row.</param> | ||
141 | /// <returns>Index of row or -1 if not found.</returns> | ||
142 | public int IndexOf(T row) | ||
143 | { | ||
144 | return this.rows.IndexOf(row); | ||
145 | } | ||
146 | |||
147 | /// <summary> | ||
148 | /// Inserts a row at a particular index of the list. | ||
149 | /// </summary> | ||
150 | /// <param name="index">Index to insert the row after.</param> | ||
151 | /// <param name="row">Row to insert.</param> | ||
152 | public void Insert(int index, T row) | ||
153 | { | ||
154 | this.rows.Insert(index, row); | ||
155 | try | ||
156 | { | ||
157 | this.index.Add(row.GetKey(), row); | ||
158 | } | ||
159 | catch (ArgumentException) // if the key already exists, we have a duplicate. | ||
160 | { | ||
161 | this.duplicates.Add(row); | ||
162 | } | ||
163 | } | ||
164 | |||
165 | /// <summary> | ||
166 | /// Removes a row from a particular index. | ||
167 | /// </summary> | ||
168 | /// <param name="index">Index to remove the row at.</param> | ||
169 | public void RemoveAt(int index) | ||
170 | { | ||
171 | T row = this.rows[index]; | ||
172 | |||
173 | this.rows.RemoveAt(index); | ||
174 | |||
175 | T indexRow; | ||
176 | if (this.index.TryGetValue(row.GetKey(), out indexRow) && indexRow == row) | ||
177 | { | ||
178 | this.index.Remove(row.GetKey()); | ||
179 | } | ||
180 | else // only try to remove from duplicates if the row was not indexed (if it was indexed, it wasn't a dupe). | ||
181 | { | ||
182 | this.duplicates.Remove(row); | ||
183 | } | ||
184 | } | ||
185 | |||
186 | /// <summary> | ||
187 | /// Gets or sets a row at the specified index. | ||
188 | /// </summary> | ||
189 | /// <param name="index">Index to get the row.</param> | ||
190 | /// <returns>Row at specified index.</returns> | ||
191 | public T this[int index] | ||
192 | { | ||
193 | get | ||
194 | { | ||
195 | return this.rows[index]; | ||
196 | } | ||
197 | set | ||
198 | { | ||
199 | this.rows[index] = value; | ||
200 | try | ||
201 | { | ||
202 | this.index.Add(value.GetKey(), value); | ||
203 | } | ||
204 | catch (ArgumentException) // if the key already exists, we have a duplicate. | ||
205 | { | ||
206 | this.duplicates.Add(value); | ||
207 | } | ||
208 | } | ||
209 | } | ||
210 | |||
211 | /// <summary> | ||
212 | /// Empties the list and it's index. | ||
213 | /// </summary> | ||
214 | public void Clear() | ||
215 | { | ||
216 | this.index.Clear(); | ||
217 | this.rows.Clear(); | ||
218 | this.duplicates.Clear(); | ||
219 | } | ||
220 | |||
221 | /// <summary> | ||
222 | /// Searches the list for a row without using the index. | ||
223 | /// </summary> | ||
224 | /// <param name="row">Row to look for in the list.</param> | ||
225 | /// <returns>True if the row is in the list, otherwise false.</returns> | ||
226 | public bool Contains(T row) | ||
227 | { | ||
228 | return this.rows.Contains(row); | ||
229 | } | ||
230 | |||
231 | /// <summary> | ||
232 | /// Copies the rows of the list to an array. | ||
233 | /// </summary> | ||
234 | /// <param name="array">Array to copy the list into.</param> | ||
235 | /// <param name="arrayIndex">Index to start copying at.</param> | ||
236 | public void CopyTo(T[] array, int arrayIndex) | ||
237 | { | ||
238 | this.rows.CopyTo(array, arrayIndex); | ||
239 | } | ||
240 | |||
241 | /// <summary> | ||
242 | /// Number of rows in the list. | ||
243 | /// </summary> | ||
244 | public int Count | ||
245 | { | ||
246 | get { return this.rows.Count; } | ||
247 | } | ||
248 | |||
249 | /// <summary> | ||
250 | /// Indicates whether the list is read-only. Always false. | ||
251 | /// </summary> | ||
252 | public bool IsReadOnly | ||
253 | { | ||
254 | get { return false; } | ||
255 | } | ||
256 | |||
257 | /// <summary> | ||
258 | /// Removes a row from the list. Indexed rows will be removed but the colleciton will NOT | ||
259 | /// promote duplicates to the index automatically. The duplicate would also need to be removed | ||
260 | /// and re-added to be indexed. | ||
261 | /// </summary> | ||
262 | /// <param name="row"></param> | ||
263 | /// <returns></returns> | ||
264 | public bool Remove(T row) | ||
265 | { | ||
266 | bool removed = this.rows.Remove(row); | ||
267 | if (removed) | ||
268 | { | ||
269 | T indexRow; | ||
270 | if (this.index.TryGetValue(row.GetKey(), out indexRow) && indexRow == row) | ||
271 | { | ||
272 | this.index.Remove(row.GetKey()); | ||
273 | } | ||
274 | else // only try to remove from duplicates if the row was not indexed (if it was indexed, it wasn't a dupe). | ||
275 | { | ||
276 | this.duplicates.Remove(row); | ||
277 | } | ||
278 | } | ||
279 | |||
280 | return removed; | ||
281 | } | ||
282 | |||
283 | /// <summary> | ||
284 | /// Gets an enumerator over the whole list. | ||
285 | /// </summary> | ||
286 | /// <returns>List enumerator.</returns> | ||
287 | public IEnumerator<T> GetEnumerator() | ||
288 | { | ||
289 | return this.rows.GetEnumerator(); | ||
290 | } | ||
291 | |||
292 | /// <summary> | ||
293 | /// Gets an untyped enumerator over the whole list. | ||
294 | /// </summary> | ||
295 | /// <returns>Untyped list enumerator.</returns> | ||
296 | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() | ||
297 | { | ||
298 | return this.rows.GetEnumerator(); | ||
299 | } | ||
300 | } | ||
301 | } | ||
diff --git a/src/WixToolset.Data/RowOperation.cs b/src/WixToolset.Data/RowOperation.cs deleted file mode 100644 index 30dadd4e..00000000 --- a/src/WixToolset.Data/RowOperation.cs +++ /dev/null | |||
@@ -1,30 +0,0 @@ | |||
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 | /// <summary> | ||
6 | /// The row transform operations. | ||
7 | /// </summary> | ||
8 | public enum RowOperation | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// No operation. | ||
12 | /// </summary> | ||
13 | None, | ||
14 | |||
15 | /// <summary> | ||
16 | /// Added row. | ||
17 | /// </summary> | ||
18 | Add, | ||
19 | |||
20 | /// <summary> | ||
21 | /// Deleted row. | ||
22 | /// </summary> | ||
23 | Delete, | ||
24 | |||
25 | /// <summary> | ||
26 | /// Modified row. | ||
27 | /// </summary> | ||
28 | Modify | ||
29 | } | ||
30 | } | ||
diff --git a/src/WixToolset.Data/Rows/BBControlRow.cs b/src/WixToolset.Data/Rows/BBControlRow.cs deleted file mode 100644 index d0f08662..00000000 --- a/src/WixToolset.Data/Rows/BBControlRow.cs +++ /dev/null | |||
@@ -1,113 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System.Diagnostics.CodeAnalysis; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Specialization of a row for the Control table. | ||
9 | /// </summary> | ||
10 | public sealed class BBControlRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a Control row that belongs to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="table">Table this Control row belongs to and should get its column definitions from.</param> | ||
17 | public BBControlRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
18 | base(sourceLineNumbers, table) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Gets or sets the dialog of the Control row. | ||
24 | /// </summary> | ||
25 | /// <value>Primary key of the Control row.</value> | ||
26 | public string Billboard | ||
27 | { | ||
28 | get { return (string)this.Fields[0].Data; } | ||
29 | set { this.Fields[0].Data = value; } | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets or sets the identifier for this Control row. | ||
34 | /// </summary> | ||
35 | /// <value>Identifier for this Control row.</value> | ||
36 | public string BBControl | ||
37 | { | ||
38 | get { return (string)this.Fields[1].Data; } | ||
39 | set { this.Fields[1].Data = value; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets or sets the type of the BBControl. | ||
44 | /// </summary> | ||
45 | /// <value>Name of the BBControl.</value> | ||
46 | [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] | ||
47 | public string Type | ||
48 | { | ||
49 | get { return this.Fields[2].AsString(); } | ||
50 | set { this.Fields[2].Data = value; } | ||
51 | } | ||
52 | |||
53 | /// <summary> | ||
54 | /// Gets or sets the X location of the BBControl. | ||
55 | /// </summary> | ||
56 | /// <value>X location of the BBControl.</value> | ||
57 | public string X | ||
58 | { | ||
59 | get { return this.Fields[3].AsString(); } | ||
60 | set { this.Fields[3].Data = value; } | ||
61 | } | ||
62 | |||
63 | /// <summary> | ||
64 | /// Gets or sets the Y location of the BBControl. | ||
65 | /// </summary> | ||
66 | /// <value>Y location of the BBControl.</value> | ||
67 | public string Y | ||
68 | { | ||
69 | get { return this.Fields[4].AsString(); } | ||
70 | set { this.Fields[4].Data = value; } | ||
71 | } | ||
72 | |||
73 | /// <summary> | ||
74 | /// Gets or sets the width of the BBControl. | ||
75 | /// </summary> | ||
76 | /// <value>Width of the BBControl.</value> | ||
77 | public string Width | ||
78 | { | ||
79 | get { return this.Fields[5].AsString(); } | ||
80 | set { this.Fields[5].Data = value; } | ||
81 | } | ||
82 | |||
83 | /// <summary> | ||
84 | /// Gets or sets the height of the BBControl. | ||
85 | /// </summary> | ||
86 | /// <value>Height of the BBControl.</value> | ||
87 | public string Height | ||
88 | { | ||
89 | get { return this.Fields[6].AsString(); } | ||
90 | set { this.Fields[6].Data = value; } | ||
91 | } | ||
92 | |||
93 | /// <summary> | ||
94 | /// Gets or sets the attributes for the BBControl. | ||
95 | /// </summary> | ||
96 | /// <value>Attributes for the BBControl.</value> | ||
97 | public int Attributes | ||
98 | { | ||
99 | get { return (int)this.Fields[7].Data; } | ||
100 | set { this.Fields[7].Data = value; } | ||
101 | } | ||
102 | |||
103 | /// <summary> | ||
104 | /// Gets or sets the text of the BBControl. | ||
105 | /// </summary> | ||
106 | /// <value>Text of the BBControl.</value> | ||
107 | public string Text | ||
108 | { | ||
109 | get { return (string)this.Fields[8].Data; } | ||
110 | set { this.Fields[8].Data = value; } | ||
111 | } | ||
112 | } | ||
113 | } | ||
diff --git a/src/WixToolset.Data/Rows/ComponentRow.cs b/src/WixToolset.Data/Rows/ComponentRow.cs deleted file mode 100644 index 3ff10175..00000000 --- a/src/WixToolset.Data/Rows/ComponentRow.cs +++ /dev/null | |||
@@ -1,245 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using WixToolset.Data.Msi; | ||
7 | |||
8 | /// <summary> | ||
9 | /// Specialization of a row for the Component table. | ||
10 | /// </summary> | ||
11 | public sealed class ComponentRow : Row | ||
12 | { | ||
13 | private string sourceFile; | ||
14 | |||
15 | /// <summary> | ||
16 | /// Creates a Control row that belongs to a table. | ||
17 | /// </summary> | ||
18 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
19 | /// <param name="table">Table this Component row belongs to and should get its column definitions from.</param> | ||
20 | public ComponentRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
21 | base(sourceLineNumbers, table) | ||
22 | { | ||
23 | } | ||
24 | |||
25 | /// <summary> | ||
26 | /// Gets or sets the identifier for this Component row. | ||
27 | /// </summary> | ||
28 | /// <value>Identifier for this Component row.</value> | ||
29 | public string Component | ||
30 | { | ||
31 | get { return (string)this.Fields[0].Data; } | ||
32 | set { this.Fields[0].Data = value; } | ||
33 | } | ||
34 | |||
35 | /// <summary> | ||
36 | /// Gets or sets the ComponentId for this Component row. | ||
37 | /// </summary> | ||
38 | /// <value>guid for this Component row.</value> | ||
39 | public string Guid | ||
40 | { | ||
41 | get { return (string)this.Fields[1].Data; } | ||
42 | set { this.Fields[1].Data = value; } | ||
43 | } | ||
44 | |||
45 | /// <summary> | ||
46 | /// Gets or sets the Directory_ of the Component. | ||
47 | /// </summary> | ||
48 | /// <value>Directory of the Component.</value> | ||
49 | public string Directory | ||
50 | { | ||
51 | get { return (string)this.Fields[2].Data; } | ||
52 | set { this.Fields[2].Data = value; } | ||
53 | } | ||
54 | |||
55 | /// <summary> | ||
56 | /// Gets or sets the local only attribute of the Component. | ||
57 | /// </summary> | ||
58 | /// <value>Local only attribute of the component.</value> | ||
59 | public bool IsLocalOnly | ||
60 | { | ||
61 | get { return MsiInterop.MsidbComponentAttributesLocalOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesLocalOnly); } | ||
62 | set | ||
63 | { | ||
64 | if (value) | ||
65 | { | ||
66 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesLocalOnly; | ||
67 | } | ||
68 | else | ||
69 | { | ||
70 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesLocalOnly; | ||
71 | } | ||
72 | } | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets or sets the source only attribute of the Component. | ||
77 | /// </summary> | ||
78 | /// <value>Source only attribute of the component.</value> | ||
79 | public bool IsSourceOnly | ||
80 | { | ||
81 | get { return MsiInterop.MsidbComponentAttributesSourceOnly == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSourceOnly); } | ||
82 | set | ||
83 | { | ||
84 | if (value) | ||
85 | { | ||
86 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSourceOnly; | ||
87 | } | ||
88 | else | ||
89 | { | ||
90 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSourceOnly; | ||
91 | } | ||
92 | } | ||
93 | } | ||
94 | |||
95 | /// <summary> | ||
96 | /// Gets or sets the optional attribute of the Component. | ||
97 | /// </summary> | ||
98 | /// <value>Optional attribute of the component.</value> | ||
99 | public bool IsOptional | ||
100 | { | ||
101 | get { return MsiInterop.MsidbComponentAttributesOptional == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesOptional); } | ||
102 | set | ||
103 | { | ||
104 | if (value) | ||
105 | { | ||
106 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesOptional; | ||
107 | } | ||
108 | else | ||
109 | { | ||
110 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesOptional; | ||
111 | } | ||
112 | } | ||
113 | } | ||
114 | |||
115 | /// <summary> | ||
116 | /// Gets or sets the registry key path attribute of the Component. | ||
117 | /// </summary> | ||
118 | /// <value>Registry key path attribute of the component.</value> | ||
119 | public bool IsRegistryKeyPath | ||
120 | { | ||
121 | get { return MsiInterop.MsidbComponentAttributesRegistryKeyPath == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesRegistryKeyPath); } | ||
122 | set | ||
123 | { | ||
124 | if (value) | ||
125 | { | ||
126 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesRegistryKeyPath; | ||
127 | } | ||
128 | else | ||
129 | { | ||
130 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesRegistryKeyPath; | ||
131 | } | ||
132 | } | ||
133 | } | ||
134 | |||
135 | /// <summary> | ||
136 | /// Gets or sets the shared dll ref count attribute of the Component. | ||
137 | /// </summary> | ||
138 | /// <value>Shared dll ref countattribute of the component.</value> | ||
139 | public bool IsSharedDll | ||
140 | { | ||
141 | get { return MsiInterop.MsidbComponentAttributesSharedDllRefCount == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesSharedDllRefCount); } | ||
142 | set | ||
143 | { | ||
144 | if (value) | ||
145 | { | ||
146 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesSharedDllRefCount; | ||
147 | } | ||
148 | else | ||
149 | { | ||
150 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesSharedDllRefCount; | ||
151 | } | ||
152 | } | ||
153 | } | ||
154 | |||
155 | /// <summary> | ||
156 | /// Gets or sets the permanent attribute of the Component. | ||
157 | /// </summary> | ||
158 | /// <value>Permanent attribute of the component.</value> | ||
159 | public bool IsPermanent | ||
160 | { | ||
161 | get { return MsiInterop.MsidbComponentAttributesPermanent == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesPermanent); } | ||
162 | set | ||
163 | { | ||
164 | if (value) | ||
165 | { | ||
166 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesPermanent; | ||
167 | } | ||
168 | else | ||
169 | { | ||
170 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesPermanent; | ||
171 | } | ||
172 | } | ||
173 | } | ||
174 | |||
175 | /// <summary> | ||
176 | /// Gets or sets the ODBC data source key path attribute of the Component. | ||
177 | /// </summary> | ||
178 | /// <value>ODBC data source key path attribute of the component.</value> | ||
179 | public bool IsOdbcDataSourceKeyPath | ||
180 | { | ||
181 | get { return MsiInterop.MsidbComponentAttributesODBCDataSource == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributesODBCDataSource); } | ||
182 | set | ||
183 | { | ||
184 | if (value) | ||
185 | { | ||
186 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributesODBCDataSource; | ||
187 | } | ||
188 | else | ||
189 | { | ||
190 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributesODBCDataSource; | ||
191 | } | ||
192 | } | ||
193 | } | ||
194 | |||
195 | /// <summary> | ||
196 | /// Gets or sets the 64 bit attribute of the Component. | ||
197 | /// </summary> | ||
198 | /// <value>64-bitness of the component.</value> | ||
199 | public bool Is64Bit | ||
200 | { | ||
201 | get { return MsiInterop.MsidbComponentAttributes64bit == ((int)this.Fields[3].Data & MsiInterop.MsidbComponentAttributes64bit); } | ||
202 | set | ||
203 | { | ||
204 | if (value) | ||
205 | { | ||
206 | this.Fields[3].Data = (int)this.Fields[3].Data | MsiInterop.MsidbComponentAttributes64bit; | ||
207 | } | ||
208 | else | ||
209 | { | ||
210 | this.Fields[3].Data = (int)this.Fields[3].Data & ~MsiInterop.MsidbComponentAttributes64bit; | ||
211 | } | ||
212 | } | ||
213 | } | ||
214 | |||
215 | /// <summary> | ||
216 | /// Gets or sets the condition of the Component. | ||
217 | /// </summary> | ||
218 | /// <value>Condition of the Component.</value> | ||
219 | public string Condition | ||
220 | { | ||
221 | get { return (string)this.Fields[4].Data; } | ||
222 | set { this.Fields[4].Data = value; } | ||
223 | } | ||
224 | |||
225 | /// <summary> | ||
226 | /// Gets or sets the key path of the Component. | ||
227 | /// </summary> | ||
228 | /// <value>Key path of the Component.</value> | ||
229 | public string KeyPath | ||
230 | { | ||
231 | get { return (string)this.Fields[5].Data; } | ||
232 | set { this.Fields[5].Data = value; } | ||
233 | } | ||
234 | |||
235 | /// <summary> | ||
236 | /// Gets or sets the source location to the file to fill in the Text of the control. | ||
237 | /// </summary> | ||
238 | /// <value>Source location to the file to fill in the Text of the control.</value> | ||
239 | public string SourceFile | ||
240 | { | ||
241 | get { return this.sourceFile; } | ||
242 | set { this.sourceFile = value; } | ||
243 | } | ||
244 | } | ||
245 | } | ||
diff --git a/src/WixToolset.Data/Rows/ContainerType.cs b/src/WixToolset.Data/Rows/ContainerType.cs deleted file mode 100644 index 55a74235..00000000 --- a/src/WixToolset.Data/Rows/ContainerType.cs +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Types of bundle packages. | ||
7 | /// </summary> | ||
8 | public enum ContainerType | ||
9 | { | ||
10 | Attached, | ||
11 | Detached, | ||
12 | } | ||
13 | } | ||
diff --git a/src/WixToolset.Data/Rows/ControlRow.cs b/src/WixToolset.Data/Rows/ControlRow.cs deleted file mode 100644 index 8fa3f633..00000000 --- a/src/WixToolset.Data/Rows/ControlRow.cs +++ /dev/null | |||
@@ -1,143 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System.Diagnostics.CodeAnalysis; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Specialization of a row for the Control table. | ||
9 | /// </summary> | ||
10 | public sealed class ControlRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a Control row that belongs to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="table">Table this Control row belongs to and should get its column definitions from.</param> | ||
17 | public ControlRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
18 | base(sourceLineNumbers, table) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Gets or sets the dialog of the Control row. | ||
24 | /// </summary> | ||
25 | /// <value>Primary key of the Control row.</value> | ||
26 | public string Dialog | ||
27 | { | ||
28 | get { return (string)this.Fields[0].Data; } | ||
29 | set { this.Fields[0].Data = value; } | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets or sets the identifier for this Control row. | ||
34 | /// </summary> | ||
35 | /// <value>Identifier for this Control row.</value> | ||
36 | public string Control | ||
37 | { | ||
38 | get { return (string)this.Fields[1].Data; } | ||
39 | set { this.Fields[1].Data = value; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets or sets the type of the control. | ||
44 | /// </summary> | ||
45 | /// <value>Name of the control.</value> | ||
46 | [SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods")] | ||
47 | public string Type | ||
48 | { | ||
49 | get { return (string)this.Fields[2].Data; } | ||
50 | set { this.Fields[2].Data = value; } | ||
51 | } | ||
52 | |||
53 | /// <summary> | ||
54 | /// Gets or sets the X location of the control. | ||
55 | /// </summary> | ||
56 | /// <value>X location of the control.</value> | ||
57 | public string X | ||
58 | { | ||
59 | get { return this.Fields[3].AsString(); } | ||
60 | set { this.Fields[3].Data = value; } | ||
61 | } | ||
62 | |||
63 | /// <summary> | ||
64 | /// Gets or sets the Y location of the control. | ||
65 | /// </summary> | ||
66 | /// <value>Y location of the control.</value> | ||
67 | public string Y | ||
68 | { | ||
69 | get { return this.Fields[4].AsString(); } | ||
70 | set { this.Fields[4].Data = value; } | ||
71 | } | ||
72 | |||
73 | /// <summary> | ||
74 | /// Gets or sets the width of the control. | ||
75 | /// </summary> | ||
76 | /// <value>Width of the control.</value> | ||
77 | public string Width | ||
78 | { | ||
79 | get { return this.Fields[5].AsString(); } | ||
80 | set { this.Fields[5].Data = value; } | ||
81 | } | ||
82 | |||
83 | /// <summary> | ||
84 | /// Gets or sets the height of the control. | ||
85 | /// </summary> | ||
86 | /// <value>Height of the control.</value> | ||
87 | public string Height | ||
88 | { | ||
89 | get { return this.Fields[6].AsString(); } | ||
90 | set { this.Fields[6].Data = value; } | ||
91 | } | ||
92 | |||
93 | /// <summary> | ||
94 | /// Gets or sets the attributes for the control. | ||
95 | /// </summary> | ||
96 | /// <value>Attributes for the control.</value> | ||
97 | public int Attributes | ||
98 | { | ||
99 | get { return (int)this.Fields[7].Data; } | ||
100 | set { this.Fields[7].Data = value; } | ||
101 | } | ||
102 | |||
103 | /// <summary> | ||
104 | /// Gets or sets the Property associated with the control. | ||
105 | /// </summary> | ||
106 | /// <value>Property associated with the control.</value> | ||
107 | public string Property | ||
108 | { | ||
109 | get { return (string)this.Fields[8].Data; } | ||
110 | set { this.Fields[8].Data = value; } | ||
111 | } | ||
112 | |||
113 | /// <summary> | ||
114 | /// Gets or sets the text of the control. | ||
115 | /// </summary> | ||
116 | /// <value>Text of the control.</value> | ||
117 | public string Text | ||
118 | { | ||
119 | get { return (string)this.Fields[9].Data; } | ||
120 | set { this.Fields[9].Data = value; } | ||
121 | } | ||
122 | |||
123 | /// <summary> | ||
124 | /// Gets or sets the next control. | ||
125 | /// </summary> | ||
126 | /// <value>Next control.</value> | ||
127 | public string Next | ||
128 | { | ||
129 | get { return (string)this.Fields[10].Data; } | ||
130 | set { this.Fields[10].Data = value; } | ||
131 | } | ||
132 | |||
133 | /// <summary> | ||
134 | /// Gets or sets the help for the control. | ||
135 | /// </summary> | ||
136 | /// <value>Help for the control.</value> | ||
137 | public string Help | ||
138 | { | ||
139 | get { return (string)this.Fields[11].Data; } | ||
140 | set { this.Fields[11].Data = value; } | ||
141 | } | ||
142 | } | ||
143 | } | ||
diff --git a/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs b/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs deleted file mode 100644 index 07e66585..00000000 --- a/src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | public enum ExitCodeBehaviorType | ||
6 | { | ||
7 | NotSet = -1, | ||
8 | Success, | ||
9 | Error, | ||
10 | ScheduleReboot, | ||
11 | ForceReboot, | ||
12 | } | ||
13 | } | ||
diff --git a/src/WixToolset.Data/Rows/FileAssemblyType.cs b/src/WixToolset.Data/Rows/FileAssemblyType.cs deleted file mode 100644 index 6e92a083..00000000 --- a/src/WixToolset.Data/Rows/FileAssemblyType.cs +++ /dev/null | |||
@@ -1,19 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Every file row has an assembly type. | ||
7 | /// </summary> | ||
8 | public enum FileAssemblyType | ||
9 | { | ||
10 | /// <summary>File is not an assembly.</summary> | ||
11 | NotAnAssembly, | ||
12 | |||
13 | /// <summary>File is a Common Language Runtime Assembly.</summary> | ||
14 | DotNetAssembly, | ||
15 | |||
16 | /// <summary>File is Win32 SxS assembly.</summary> | ||
17 | Win32Assembly, | ||
18 | } | ||
19 | } | ||
diff --git a/src/WixToolset.Data/Rows/FileRow.cs b/src/WixToolset.Data/Rows/FileRow.cs deleted file mode 100644 index de5d5652..00000000 --- a/src/WixToolset.Data/Rows/FileRow.cs +++ /dev/null | |||
@@ -1,640 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Diagnostics; | ||
7 | using System.Globalization; | ||
8 | using WixToolset.Data.Msi; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Specialization of a row for the file table. | ||
12 | /// </summary> | ||
13 | public sealed class FileRow : Row //, IComparable | ||
14 | { | ||
15 | //private string assemblyApplication; | ||
16 | //private string assemblyManifest; | ||
17 | //private FileAssemblyType assemblyType; | ||
18 | //private string directory; | ||
19 | //private int diskId; | ||
20 | //private bool fromModule; | ||
21 | //private bool isGeneratedShortFileName; | ||
22 | //private int patchGroup; | ||
23 | //private string processorArchitecture; | ||
24 | //private string source; | ||
25 | //private Row hashRow; | ||
26 | //private List<Row> assemblyNameRows; | ||
27 | //private string[] previousSource; | ||
28 | //private string symbols; | ||
29 | //private string[] previousSymbols; | ||
30 | //private PatchAttributeType patchAttributes; | ||
31 | //private string retainOffsets; | ||
32 | //private string retainLengths; | ||
33 | //private string ignoreOffsets; | ||
34 | //private string ignoreLengths; | ||
35 | //private string[] previousRetainOffsets; | ||
36 | //private string[] previousRetainLengths; | ||
37 | //private string[] previousIgnoreOffsets; | ||
38 | //private string[] previousIgnoreLengths; | ||
39 | //private string patch; | ||
40 | |||
41 | /// <summary> | ||
42 | /// Creates a File row that belongs to a table. | ||
43 | /// </summary> | ||
44 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
45 | /// <param name="table">Table this File row belongs to and should get its column definitions from.</param> | ||
46 | public FileRow(SourceLineNumber sourceLineNumbers, Table table) | ||
47 | : base(sourceLineNumbers, table) | ||
48 | { | ||
49 | //this.assemblyType = FileAssemblyType.NotAnAssembly; | ||
50 | //this.previousSource = new string[1]; | ||
51 | //this.previousSymbols = new string[1]; | ||
52 | //this.previousRetainOffsets = new string[1]; | ||
53 | //this.previousRetainLengths = new string[1]; | ||
54 | //this.previousIgnoreOffsets = new string[1]; | ||
55 | //this.previousIgnoreLengths = new string[1]; | ||
56 | } | ||
57 | |||
58 | /// <summary> | ||
59 | /// Creates a File row that does not belong to a table. | ||
60 | /// </summary> | ||
61 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
62 | /// <param name="tableDefinition">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
63 | public FileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) | ||
64 | : base(sourceLineNumbers, tableDefinition) | ||
65 | { | ||
66 | //this.assemblyType = FileAssemblyType.NotAnAssembly; | ||
67 | //this.previousSource = new string[1]; | ||
68 | //this.previousSymbols = new string[1]; | ||
69 | //this.previousRetainOffsets = new string[1]; | ||
70 | //this.previousRetainLengths = new string[1]; | ||
71 | //this.previousIgnoreOffsets = new string[1]; | ||
72 | //this.previousIgnoreLengths = new string[1]; | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets or sets the primary key of the file row. | ||
77 | /// </summary> | ||
78 | /// <value>Primary key of the file row.</value> | ||
79 | public string File | ||
80 | { | ||
81 | get { return (string)this.Fields[0].Data; } | ||
82 | set { this.Fields[0].Data = value; } | ||
83 | } | ||
84 | |||
85 | /// <summary> | ||
86 | /// Gets or sets the component this file row belongs to. | ||
87 | /// </summary> | ||
88 | /// <value>Component this file row belongs to.</value> | ||
89 | public string Component | ||
90 | { | ||
91 | get { return (string)this.Fields[1].Data; } | ||
92 | set { this.Fields[1].Data = value; } | ||
93 | } | ||
94 | |||
95 | /// <summary> | ||
96 | /// Gets or sets the name of the file. | ||
97 | /// </summary> | ||
98 | /// <value>Name of the file.</value> | ||
99 | public string FileName | ||
100 | { | ||
101 | get { return (string)this.Fields[2].Data; } | ||
102 | set { this.Fields[2].Data = value; } | ||
103 | } | ||
104 | |||
105 | /// <summary> | ||
106 | /// Gets or sets the real filesystem name of the file (without a pipe). This is typically the long name of the file. | ||
107 | /// However, if no long name is available, falls back to the short name. | ||
108 | /// </summary> | ||
109 | /// <value>Long Name of the file - or if no long name is available, falls back to the short name.</value> | ||
110 | public string LongFileName | ||
111 | { | ||
112 | get | ||
113 | { | ||
114 | string fileName = this.FileName; | ||
115 | int index = fileName.IndexOf('|'); | ||
116 | |||
117 | // If it doesn't contain a pipe, just return the whole string | ||
118 | if (-1 == index) | ||
119 | { | ||
120 | return fileName; | ||
121 | } | ||
122 | else // otherwise, extract the part of the string after the pipe | ||
123 | { | ||
124 | return fileName.Substring(index + 1); | ||
125 | } | ||
126 | } | ||
127 | } | ||
128 | |||
129 | /// <summary> | ||
130 | /// Gets or sets the size of the file. | ||
131 | /// </summary> | ||
132 | /// <value>Size of the file.</value> | ||
133 | public int FileSize | ||
134 | { | ||
135 | get { return (int)this.Fields[3].Data; } | ||
136 | set { this.Fields[3].Data = value; } | ||
137 | } | ||
138 | |||
139 | /// <summary> | ||
140 | /// Gets or sets the version of the file. | ||
141 | /// </summary> | ||
142 | /// <value>Version of the file.</value> | ||
143 | public string Version | ||
144 | { | ||
145 | get { return (string)this.Fields[4].Data; } | ||
146 | set { this.Fields[4].Data = value; } | ||
147 | } | ||
148 | |||
149 | /// <summary> | ||
150 | /// Gets or sets the LCID of the file. | ||
151 | /// </summary> | ||
152 | /// <value>LCID of the file.</value> | ||
153 | public string Language | ||
154 | { | ||
155 | get { return (string)this.Fields[5].Data; } | ||
156 | set { this.Fields[5].Data = value; } | ||
157 | } | ||
158 | |||
159 | /// <summary> | ||
160 | /// Gets or sets the attributes on a file. | ||
161 | /// </summary> | ||
162 | /// <value>Attributes on a file.</value> | ||
163 | public int Attributes | ||
164 | { | ||
165 | get { return Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture); } | ||
166 | set { this.Fields[6].Data = value; } | ||
167 | } | ||
168 | |||
169 | /// <summary> | ||
170 | /// Gets or sets whether this file should be compressed. | ||
171 | /// </summary> | ||
172 | /// <value>Whether this file should be compressed.</value> | ||
173 | public YesNoType Compressed | ||
174 | { | ||
175 | get | ||
176 | { | ||
177 | bool compressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesCompressed)); | ||
178 | bool noncompressedFlag = (0 < (this.Attributes & MsiInterop.MsidbFileAttributesNoncompressed)); | ||
179 | |||
180 | if (compressedFlag && noncompressedFlag) | ||
181 | { | ||
182 | throw new WixException(WixDataErrors.IllegalFileCompressionAttributes(this.SourceLineNumbers)); | ||
183 | } | ||
184 | else if (compressedFlag) | ||
185 | { | ||
186 | return YesNoType.Yes; | ||
187 | } | ||
188 | else if (noncompressedFlag) | ||
189 | { | ||
190 | return YesNoType.No; | ||
191 | } | ||
192 | else | ||
193 | { | ||
194 | return YesNoType.NotSet; | ||
195 | } | ||
196 | } | ||
197 | |||
198 | set | ||
199 | { | ||
200 | if (YesNoType.Yes == value) | ||
201 | { | ||
202 | // these are mutually exclusive | ||
203 | this.Attributes |= MsiInterop.MsidbFileAttributesCompressed; | ||
204 | this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; | ||
205 | } | ||
206 | else if (YesNoType.No == value) | ||
207 | { | ||
208 | // these are mutually exclusive | ||
209 | this.Attributes |= MsiInterop.MsidbFileAttributesNoncompressed; | ||
210 | this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; | ||
211 | } | ||
212 | else // not specified | ||
213 | { | ||
214 | Debug.Assert(YesNoType.NotSet == value); | ||
215 | |||
216 | // clear any compression bits | ||
217 | this.Attributes &= ~MsiInterop.MsidbFileAttributesCompressed; | ||
218 | this.Attributes &= ~MsiInterop.MsidbFileAttributesNoncompressed; | ||
219 | } | ||
220 | } | ||
221 | } | ||
222 | |||
223 | /// <summary> | ||
224 | /// Gets or sets the sequence of the file row. | ||
225 | /// </summary> | ||
226 | /// <value>Sequence of the file row.</value> | ||
227 | public int Sequence | ||
228 | { | ||
229 | get { return (int)this.Fields[7].Data; } | ||
230 | set { this.Fields[7].Data = value; } | ||
231 | } | ||
232 | |||
233 | /////// <summary> | ||
234 | /////// Gets or sets the type of assembly of file row. | ||
235 | /////// </summary> | ||
236 | /////// <value>Assembly type for file row.</value> | ||
237 | ////public FileAssemblyType AssemblyType | ||
238 | ////{ | ||
239 | //// get { return this.assemblyType; } | ||
240 | //// set { this.assemblyType = value; } | ||
241 | ////} | ||
242 | |||
243 | /////// <summary> | ||
244 | /////// Gets or sets the identifier for the assembly application. | ||
245 | /////// </summary> | ||
246 | /////// <value>Identifier for the assembly application.</value> | ||
247 | ////public string AssemblyApplication | ||
248 | ////{ | ||
249 | //// get { return this.assemblyApplication; } | ||
250 | //// set { this.assemblyApplication = value; } | ||
251 | ////} | ||
252 | |||
253 | /////// <summary> | ||
254 | /////// Gets or sets the identifier for the assembly manifest. | ||
255 | /////// </summary> | ||
256 | /////// <value>Identifier for the assembly manifest.</value> | ||
257 | ////public string AssemblyManifest | ||
258 | ////{ | ||
259 | //// get { return this.assemblyManifest; } | ||
260 | //// set { this.assemblyManifest = value; } | ||
261 | ////} | ||
262 | |||
263 | /////// <summary> | ||
264 | /////// Gets or sets the directory of the file. | ||
265 | /////// </summary> | ||
266 | /////// <value>Directory of the file.</value> | ||
267 | ////public string Directory | ||
268 | ////{ | ||
269 | //// get { return this.directory; } | ||
270 | //// set { this.directory = value; } | ||
271 | ////} | ||
272 | |||
273 | /////// <summary> | ||
274 | /////// Gets or sets the disk id for this file. | ||
275 | /////// </summary> | ||
276 | /////// <value>Disk id for the file.</value> | ||
277 | ////public int DiskId | ||
278 | ////{ | ||
279 | //// get { return this.diskId; } | ||
280 | //// set { this.diskId = value; } | ||
281 | ////} | ||
282 | |||
283 | /////// <summary> | ||
284 | /////// Gets or sets the source location to the file. | ||
285 | /////// </summary> | ||
286 | /////// <value>Source location to the file.</value> | ||
287 | ////public string Source | ||
288 | ////{ | ||
289 | //// get { return this.source; } | ||
290 | //// set { this.source = value; } | ||
291 | ////} | ||
292 | |||
293 | /////// <summary> | ||
294 | /////// Gets or sets the source location to the previous file. | ||
295 | /////// </summary> | ||
296 | /////// <value>Source location to the previous file.</value> | ||
297 | ////public string PreviousSource | ||
298 | ////{ | ||
299 | //// get { return this.previousSource[0]; } | ||
300 | //// set { this.previousSource[0] = value; } | ||
301 | ////} | ||
302 | |||
303 | /////// <summary> | ||
304 | /////// Gets the source location to the previous files. | ||
305 | /////// </summary> | ||
306 | /////// <value>Source location to the previous files.</value> | ||
307 | ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
308 | ////public string[] PreviousSourceArray | ||
309 | ////{ | ||
310 | //// get { return this.previousSource; } | ||
311 | ////} | ||
312 | |||
313 | /////// <summary> | ||
314 | /////// Gets or sets the architecture the file executes on. | ||
315 | /////// </summary> | ||
316 | /////// <value>Architecture the file executes on.</value> | ||
317 | ////public string ProcessorArchitecture | ||
318 | ////{ | ||
319 | //// get { return this.processorArchitecture; } | ||
320 | //// set { this.processorArchitecture = value; } | ||
321 | ////} | ||
322 | |||
323 | /////// <summary> | ||
324 | /////// Gets of sets the patch group of a patch-added file. | ||
325 | /////// </summary> | ||
326 | /////// <value>The patch group of a patch-added file.</value> | ||
327 | ////public int PatchGroup | ||
328 | ////{ | ||
329 | //// get { return this.patchGroup; } | ||
330 | //// set { this.patchGroup = value; } | ||
331 | ////} | ||
332 | |||
333 | /////// <summary> | ||
334 | /////// Gets or sets the patch header of the file. | ||
335 | /////// </summary> | ||
336 | /////// <value>Patch header of the file.</value> | ||
337 | ////public string Patch | ||
338 | ////{ | ||
339 | //// get { return this.patch; } | ||
340 | //// set { this.patch = value; } | ||
341 | ////} | ||
342 | |||
343 | /////// <summary> | ||
344 | /////// Gets or sets the locations to find the file's symbols. | ||
345 | /////// </summary> | ||
346 | /////// <value>Symbol paths for the file.</value> | ||
347 | ////public string Symbols | ||
348 | ////{ | ||
349 | //// get { return this.symbols; } | ||
350 | //// set { this.symbols = value; } | ||
351 | ////} | ||
352 | |||
353 | /////// <summary> | ||
354 | /////// Gets or sets the locations to find the file's previous symbols. | ||
355 | /////// </summary> | ||
356 | /////// <value>Symbol paths for the previous file.</value> | ||
357 | ////public string PreviousSymbols | ||
358 | ////{ | ||
359 | //// get { return this.previousSymbols[0]; } | ||
360 | //// set { this.previousSymbols[0] = value; } | ||
361 | ////} | ||
362 | |||
363 | /////// <summary> | ||
364 | /////// Gets the locations to find the files' previous symbols. | ||
365 | /////// </summary> | ||
366 | /////// <value>Symbol paths for the previous files.</value> | ||
367 | ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
368 | ////public string[] PreviousSymbolsArray | ||
369 | ////{ | ||
370 | //// get { return this.previousSymbols; } | ||
371 | ////} | ||
372 | |||
373 | /////// <summary> | ||
374 | /////// Gets or sets the generated short file name attribute. | ||
375 | /////// </summary> | ||
376 | /////// <value>The generated short file name attribute.</value> | ||
377 | ////public bool IsGeneratedShortFileName | ||
378 | ////{ | ||
379 | //// get { return this.isGeneratedShortFileName; } | ||
380 | |||
381 | //// set { this.isGeneratedShortFileName = value; } | ||
382 | ////} | ||
383 | |||
384 | /////// <summary> | ||
385 | /////// Gets or sets whether this row came from a merge module. | ||
386 | /////// </summary> | ||
387 | /////// <value>Whether this row came from a merge module.</value> | ||
388 | ////public bool FromModule | ||
389 | ////{ | ||
390 | //// get { return this.fromModule; } | ||
391 | //// set { this.fromModule = value; } | ||
392 | ////} | ||
393 | |||
394 | /////// <summary> | ||
395 | /////// Gets or sets the MsiFileHash row created for this FileRow. | ||
396 | /////// </summary> | ||
397 | /////// <value>Row for MsiFileHash table.</value> | ||
398 | ////public Row HashRow | ||
399 | ////{ | ||
400 | //// get { return this.hashRow; } | ||
401 | //// set { this.hashRow = value; } | ||
402 | ////} | ||
403 | |||
404 | /////// <summary> | ||
405 | /////// Gets or sets the set of MsiAssemblyName rows created for this FileRow. | ||
406 | /////// </summary> | ||
407 | /////// <value>RowCollection of MsiAssemblyName table.</value> | ||
408 | ////[SuppressMessage("Microsoft.Usage", "CA2227:CollectionPropertiesShouldBeReadOnly")] | ||
409 | ////public List<Row> AssemblyNameRows | ||
410 | ////{ | ||
411 | //// get { return this.assemblyNameRows; } | ||
412 | //// set { this.assemblyNameRows = value; } | ||
413 | ////} | ||
414 | |||
415 | /////// <summary> | ||
416 | /////// Gets or sets the patching attributes to the file. | ||
417 | /////// </summary> | ||
418 | /////// <value>Patching attributes of the file.</value> | ||
419 | ////public PatchAttributeType PatchAttributes | ||
420 | ////{ | ||
421 | //// get { return this.patchAttributes; } | ||
422 | //// set { this.patchAttributes = value; } | ||
423 | ////} | ||
424 | |||
425 | /////// <summary> | ||
426 | /////// Gets or sets the delta patch retain-length list for the file. | ||
427 | /////// </summary> | ||
428 | /////// <value>RetainLength list for the file.</value> | ||
429 | ////public string RetainLengths | ||
430 | ////{ | ||
431 | //// get { return this.retainLengths; } | ||
432 | //// set { this.retainLengths = value; } | ||
433 | ////} | ||
434 | |||
435 | /////// <summary> | ||
436 | /////// Gets or sets the delta patch ignore-offset list for the file. | ||
437 | /////// </summary> | ||
438 | /////// <value>IgnoreOffset list for the file.</value> | ||
439 | ////public string IgnoreOffsets | ||
440 | ////{ | ||
441 | //// get { return this.ignoreOffsets; } | ||
442 | //// set { this.ignoreOffsets = value; } | ||
443 | ////} | ||
444 | |||
445 | /////// <summary> | ||
446 | /////// Gets or sets the delta patch ignore-length list for the file. | ||
447 | /////// </summary> | ||
448 | /////// <value>IgnoreLength list for the file.</value> | ||
449 | ////public string IgnoreLengths | ||
450 | ////{ | ||
451 | //// get { return this.ignoreLengths; } | ||
452 | //// set { this.ignoreLengths = value; } | ||
453 | ////} | ||
454 | |||
455 | /////// <summary> | ||
456 | /////// Gets or sets the delta patch retain-offset list for the file. | ||
457 | /////// </summary> | ||
458 | /////// <value>RetainOffset list for the file.</value> | ||
459 | ////public string RetainOffsets | ||
460 | ////{ | ||
461 | //// get { return this.retainOffsets; } | ||
462 | //// set { this.retainOffsets = value; } | ||
463 | ////} | ||
464 | |||
465 | /////// <summary> | ||
466 | /////// Gets or sets the delta patch retain-length list for the previous file. | ||
467 | /////// </summary> | ||
468 | /////// <value>RetainLength list for the previous file.</value> | ||
469 | ////public string PreviousRetainLengths | ||
470 | ////{ | ||
471 | //// get { return this.previousRetainLengths[0]; } | ||
472 | //// set { this.previousRetainLengths[0] = value; } | ||
473 | ////} | ||
474 | |||
475 | /////// <summary> | ||
476 | /////// Gets the delta patch retain-length list for the previous files. | ||
477 | /////// </summary> | ||
478 | /////// <value>RetainLength list for the previous files.</value> | ||
479 | ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
480 | ////public string[] PreviousRetainLengthsArray | ||
481 | ////{ | ||
482 | //// get { return this.previousRetainLengths; } | ||
483 | ////} | ||
484 | |||
485 | /////// <summary> | ||
486 | /////// Gets or sets the delta patch ignore-offset list for the previous file. | ||
487 | /////// </summary> | ||
488 | /////// <value>IgnoreOffset list for the previous file.</value> | ||
489 | ////public string PreviousIgnoreOffsets | ||
490 | ////{ | ||
491 | //// get { return this.previousIgnoreOffsets[0]; } | ||
492 | //// set { this.previousIgnoreOffsets[0] = value; } | ||
493 | ////} | ||
494 | |||
495 | /////// <summary> | ||
496 | /////// Gets the delta patch ignore-offset list for the previous files. | ||
497 | /////// </summary> | ||
498 | /////// <value>IgnoreOffset list for the previous files.</value> | ||
499 | ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
500 | ////public string[] PreviousIgnoreOffsetsArray | ||
501 | ////{ | ||
502 | //// get { return this.previousIgnoreOffsets; } | ||
503 | ////} | ||
504 | |||
505 | /////// <summary> | ||
506 | /////// Gets or sets the delta patch ignore-length list for the previous file. | ||
507 | /////// </summary> | ||
508 | /////// <value>IgnoreLength list for the previous file.</value> | ||
509 | ////public string PreviousIgnoreLengths | ||
510 | ////{ | ||
511 | //// get { return this.previousIgnoreLengths[0]; } | ||
512 | //// set { this.previousIgnoreLengths[0] = value; } | ||
513 | ////} | ||
514 | |||
515 | /////// <summary> | ||
516 | /////// Gets the delta patch ignore-length list for the previous files. | ||
517 | /////// </summary> | ||
518 | /////// <value>IgnoreLength list for the previous files.</value> | ||
519 | ////[System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
520 | ////public string[] PreviousIgnoreLengthsArray | ||
521 | ////{ | ||
522 | //// get { return this.previousIgnoreLengths; } | ||
523 | ////} | ||
524 | |||
525 | /////// <summary> | ||
526 | /////// Gets or sets the delta patch retain-offset list for the previous file. | ||
527 | /////// </summary> | ||
528 | /////// <value>RetainOffset list for the previous file.</value> | ||
529 | ////public string PreviousRetainOffsets | ||
530 | ////{ | ||
531 | //// get { return this.previousRetainOffsets[0]; } | ||
532 | //// set { this.previousRetainOffsets[0] = value; } | ||
533 | ////} | ||
534 | |||
535 | /////// <summary> | ||
536 | /////// Gets the delta patch retain-offset list for the previous files. | ||
537 | /////// </summary> | ||
538 | /////// <value>RetainOffset list for the previous files.</value> | ||
539 | ////[SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays")] | ||
540 | ////public string[] PreviousRetainOffsetsArray | ||
541 | ////{ | ||
542 | //// get { return this.previousRetainOffsets; } | ||
543 | ////} | ||
544 | |||
545 | /////// <summary> | ||
546 | /////// Compares the current FileRow with another object of the same type. | ||
547 | /////// </summary> | ||
548 | /////// <param name="obj">An object to compare with this instance.</param> | ||
549 | /////// <returns>An integer that indicates the relative order of the comparands.</returns> | ||
550 | ////[SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String)")] | ||
551 | ////[SuppressMessage("Microsoft.Globalization", "CA1309:UseOrdinalStringComparison")] | ||
552 | ////public int CompareTo(object obj) | ||
553 | ////{ | ||
554 | //// if (this == obj) | ||
555 | //// { | ||
556 | //// return 0; | ||
557 | //// } | ||
558 | |||
559 | //// FileRow fileRow = obj as FileRow; | ||
560 | //// if (null == fileRow) | ||
561 | //// { | ||
562 | //// throw new ArgumentException(WixDataStrings.EXP_OtherObjectIsNotFileRow); | ||
563 | //// } | ||
564 | |||
565 | //// int compared = this.DiskId - fileRow.DiskId; | ||
566 | //// if (0 == compared) | ||
567 | //// { | ||
568 | //// compared = this.patchGroup - fileRow.patchGroup; | ||
569 | |||
570 | //// if (0 == compared) | ||
571 | //// { | ||
572 | //// compared = String.Compare(this.File, fileRow.File, StringComparison.InvariantCulture); | ||
573 | //// } | ||
574 | //// } | ||
575 | |||
576 | //// return compared; | ||
577 | ////} | ||
578 | |||
579 | /////// <summary> | ||
580 | /////// Copies data from another FileRow object. | ||
581 | /////// </summary> | ||
582 | /////// <param name="src">An row to get data from.</param> | ||
583 | ////public void CopyFrom(FileRow src) | ||
584 | ////{ | ||
585 | //// for (int i = 0; i < src.Fields.Length; i++) | ||
586 | //// { | ||
587 | //// this[i] = src[i]; | ||
588 | //// } | ||
589 | //// this.assemblyManifest = src.assemblyManifest; | ||
590 | //// this.assemblyType = src.assemblyType; | ||
591 | //// this.directory = src.directory; | ||
592 | //// this.diskId = src.diskId; | ||
593 | //// this.fromModule = src.fromModule; | ||
594 | //// this.isGeneratedShortFileName = src.isGeneratedShortFileName; | ||
595 | //// this.patchGroup = src.patchGroup; | ||
596 | //// this.processorArchitecture = src.processorArchitecture; | ||
597 | //// this.source = src.source; | ||
598 | //// this.PreviousSource = src.PreviousSource; | ||
599 | //// this.Operation = src.Operation; | ||
600 | //// this.symbols = src.symbols; | ||
601 | //// this.PreviousSymbols = src.PreviousSymbols; | ||
602 | //// this.patchAttributes = src.patchAttributes; | ||
603 | //// this.retainOffsets = src.retainOffsets; | ||
604 | //// this.retainLengths = src.retainLengths; | ||
605 | //// this.ignoreOffsets = src.ignoreOffsets; | ||
606 | //// this.ignoreLengths = src.ignoreLengths; | ||
607 | //// this.PreviousRetainOffsets = src.PreviousRetainOffsets; | ||
608 | //// this.PreviousRetainLengths = src.PreviousRetainLengths; | ||
609 | //// this.PreviousIgnoreOffsets = src.PreviousIgnoreOffsets; | ||
610 | //// this.PreviousIgnoreLengths = src.PreviousIgnoreLengths; | ||
611 | ////} | ||
612 | |||
613 | /////// <summary> | ||
614 | /////// Appends previous data from another FileRow object. | ||
615 | /////// </summary> | ||
616 | /////// <param name="src">An row to get data from.</param> | ||
617 | ////public void AppendPreviousDataFrom(FileRow src) | ||
618 | ////{ | ||
619 | //// AppendStringToArray(ref this.previousSource, src.previousSource[0]); | ||
620 | //// AppendStringToArray(ref this.previousSymbols, src.previousSymbols[0]); | ||
621 | //// AppendStringToArray(ref this.previousRetainOffsets, src.previousRetainOffsets[0]); | ||
622 | //// AppendStringToArray(ref this.previousRetainLengths, src.previousRetainLengths[0]); | ||
623 | //// AppendStringToArray(ref this.previousIgnoreOffsets, src.previousIgnoreOffsets[0]); | ||
624 | //// AppendStringToArray(ref this.previousIgnoreLengths, src.previousIgnoreLengths[0]); | ||
625 | ////} | ||
626 | |||
627 | /////// <summary> | ||
628 | /////// Helper method for AppendPreviousDataFrom. | ||
629 | /////// </summary> | ||
630 | /////// <param name="source">Destination array.</param> | ||
631 | /////// <param name="destination">Source string.</param> | ||
632 | ////private static void AppendStringToArray(ref string[] destination, string source) | ||
633 | ////{ | ||
634 | //// string[] result = new string[destination.Length + 1]; | ||
635 | //// destination.CopyTo(result, 0); | ||
636 | //// result[destination.Length] = source; | ||
637 | //// destination = result; | ||
638 | ////} | ||
639 | } | ||
640 | } | ||
diff --git a/src/WixToolset.Data/Rows/MediaRow.cs b/src/WixToolset.Data/Rows/MediaRow.cs deleted file mode 100644 index f387a8d2..00000000 --- a/src/WixToolset.Data/Rows/MediaRow.cs +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the Media table. | ||
7 | /// </summary> | ||
8 | public sealed class MediaRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a Media row that belongs to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
15 | public MediaRow(SourceLineNumber sourceLineNumbers, Table table) | ||
16 | : base(sourceLineNumbers, table) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Gets or sets the disk id for this media row. | ||
22 | /// </summary> | ||
23 | /// <value>Disk id.</value> | ||
24 | public int DiskId | ||
25 | { | ||
26 | get { return (int)this.Fields[0].Data; } | ||
27 | set { this.Fields[0].Data = value; } | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the last sequence number for this media row. | ||
32 | /// </summary> | ||
33 | /// <value>Last sequence number.</value> | ||
34 | public int LastSequence | ||
35 | { | ||
36 | get { return (int)this.Fields[1].Data; } | ||
37 | set { this.Fields[1].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the disk prompt for this media row. | ||
42 | /// </summary> | ||
43 | /// <value>Disk prompt.</value> | ||
44 | public string DiskPrompt | ||
45 | { | ||
46 | get { return (string)this.Fields[2].Data; } | ||
47 | set { this.Fields[2].Data = value; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets or sets the cabinet name for this media row. | ||
52 | /// </summary> | ||
53 | /// <value>Cabinet name.</value> | ||
54 | public string Cabinet | ||
55 | { | ||
56 | get { return (string)this.Fields[3].Data; } | ||
57 | set { this.Fields[3].Data = value; } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets or sets the volume label for this media row. | ||
62 | /// </summary> | ||
63 | /// <value>Volume label.</value> | ||
64 | public string VolumeLabel | ||
65 | { | ||
66 | get { return (string)this.Fields[4].Data; } | ||
67 | set { this.Fields[4].Data = value; } | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Gets or sets the source for this media row. | ||
72 | /// </summary> | ||
73 | /// <value>Source.</value> | ||
74 | public string Source | ||
75 | { | ||
76 | get { return (string)this.Fields[5].Data; } | ||
77 | set { this.Fields[5].Data = value; } | ||
78 | } | ||
79 | } | ||
80 | } | ||
diff --git a/src/WixToolset.Data/Rows/PatchAttributeType.cs b/src/WixToolset.Data/Rows/PatchAttributeType.cs deleted file mode 100644 index b585e845..00000000 --- a/src/WixToolset.Data/Rows/PatchAttributeType.cs +++ /dev/null | |||
@@ -1,27 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// PatchAttribute values | ||
9 | /// </summary> | ||
10 | [Flags] | ||
11 | public enum PatchAttributeType | ||
12 | { | ||
13 | None = 0, | ||
14 | |||
15 | /// <summary>Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.</summary> | ||
16 | Ignore = 1, | ||
17 | |||
18 | /// <summary>Set if the entire file should be installed rather than creating a binary patch.</summary> | ||
19 | IncludeWholeFile = 2, | ||
20 | |||
21 | /// <summary>Set to indicate that the patch is non-vital.</summary> | ||
22 | AllowIgnoreOnError = 4, | ||
23 | |||
24 | /// <summary>Allowed bits.</summary> | ||
25 | Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError | ||
26 | } | ||
27 | } | ||
diff --git a/src/WixToolset.Data/Rows/PropertyRow.cs b/src/WixToolset.Data/Rows/PropertyRow.cs deleted file mode 100644 index 558df760..00000000 --- a/src/WixToolset.Data/Rows/PropertyRow.cs +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Specialization of a row for the upgrade table. | ||
9 | /// </summary> | ||
10 | public sealed class PropertyRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates an Upgrade row that belongs to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="table">Table this Upgrade row belongs to and should get its column definitions from.</param> | ||
17 | public PropertyRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
18 | base(sourceLineNumbers, table) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Gets and sets the upgrade code for the row. | ||
24 | /// </summary> | ||
25 | /// <value>Property identifier for the row.</value> | ||
26 | public string Property | ||
27 | { | ||
28 | get { return (string)this.Fields[0].Data; } | ||
29 | set { this.Fields[0].Data = value; } | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets and sets the value for the row. | ||
34 | /// </summary> | ||
35 | /// <value>Property value for the row.</value> | ||
36 | public string Value | ||
37 | { | ||
38 | get { return (string)this.Fields[1].Data; } | ||
39 | set { this.Fields[1].Data = value; } | ||
40 | } | ||
41 | } | ||
42 | } | ||
diff --git a/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs b/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs deleted file mode 100644 index bc931f15..00000000 --- a/src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs +++ /dev/null | |||
@@ -1,42 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Collections; | ||
7 | using System.Collections.ObjectModel; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Indexed container class for summary information rows. | ||
11 | /// </summary> | ||
12 | public sealed class SummaryInfoRowCollection : KeyedCollection<int, Row> | ||
13 | { | ||
14 | /// <summary> | ||
15 | /// Creates the keyed collection from existing rows in a table. | ||
16 | /// </summary> | ||
17 | /// <param name="table">The summary information table to index.</param> | ||
18 | public SummaryInfoRowCollection(Table table) | ||
19 | { | ||
20 | if (0 != String.CompareOrdinal("_SummaryInformation", table.Name)) | ||
21 | { | ||
22 | string message = string.Format(WixDataStrings.EXP_UnsupportedTable, table.Name); | ||
23 | throw new ArgumentException(message, "table"); | ||
24 | } | ||
25 | |||
26 | foreach (Row row in table.Rows) | ||
27 | { | ||
28 | this.Add(row); | ||
29 | } | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets the summary property ID for the <paramref name="row"/>. | ||
34 | /// </summary> | ||
35 | /// <param name="row">The row to index.</param> | ||
36 | /// <returns>The summary property ID for the <paramref name="row"/>. | ||
37 | protected override int GetKeyForItem(Row row) | ||
38 | { | ||
39 | return (int)row[0]; | ||
40 | } | ||
41 | } | ||
42 | } | ||
diff --git a/src/WixToolset.Data/Rows/SymbolPathType.cs b/src/WixToolset.Data/Rows/SymbolPathType.cs deleted file mode 100644 index 964e1caa..00000000 --- a/src/WixToolset.Data/Rows/SymbolPathType.cs +++ /dev/null | |||
@@ -1,17 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// The types that the WixDeltaPatchSymbolPaths table can hold. | ||
7 | /// </summary> | ||
8 | /// <remarks>The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type.</remarks> | ||
9 | public enum SymbolPathType | ||
10 | { | ||
11 | File, | ||
12 | Component, | ||
13 | Directory, | ||
14 | Media, | ||
15 | Product | ||
16 | }; | ||
17 | } | ||
diff --git a/src/WixToolset.Data/Rows/UpgradeRow.cs b/src/WixToolset.Data/Rows/UpgradeRow.cs deleted file mode 100644 index 807a9f93..00000000 --- a/src/WixToolset.Data/Rows/UpgradeRow.cs +++ /dev/null | |||
@@ -1,90 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the upgrade table. | ||
7 | /// </summary> | ||
8 | public sealed class UpgradeRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates an Upgrade row that belongs to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="table">Table this Upgrade row belongs to and should get its column definitions from.</param> | ||
15 | public UpgradeRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
16 | base(sourceLineNumbers, table) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Gets and sets the upgrade code for the row. | ||
22 | /// </summary> | ||
23 | /// <value>Upgrade code for the row.</value> | ||
24 | public string UpgradeCode | ||
25 | { | ||
26 | get { return (string)this.Fields[0].Data; } | ||
27 | set { this.Fields[0].Data = value; } | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets and sets the version minimum for the row. | ||
32 | /// </summary> | ||
33 | /// <value>Version minimum for the row.</value> | ||
34 | public string VersionMin | ||
35 | { | ||
36 | get { return (string)this.Fields[1].Data; } | ||
37 | set { this.Fields[1].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets and sets the version maximum for the row. | ||
42 | /// </summary> | ||
43 | /// <value>Version maximum for the row.</value> | ||
44 | public string VersionMax | ||
45 | { | ||
46 | get { return (string)this.Fields[2].Data; } | ||
47 | set { this.Fields[2].Data = value; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets and sets the language for the row. | ||
52 | /// </summary> | ||
53 | /// <value>Language for the row.</value> | ||
54 | public string Language | ||
55 | { | ||
56 | get { return (string)this.Fields[3].Data; } | ||
57 | set { this.Fields[3].Data = value; } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets and sets the attributes for the row. | ||
62 | /// </summary> | ||
63 | /// <value>Attributes for the row.</value> | ||
64 | public int Attributes | ||
65 | { | ||
66 | get { return (int)this.Fields[4].Data; } | ||
67 | set { this.Fields[4].Data = value; } | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Gets and sets the remove code for the row. | ||
72 | /// </summary> | ||
73 | /// <value>Remove code for the row.</value> | ||
74 | public string Remove | ||
75 | { | ||
76 | get { return (string)this.Fields[5].Data; } | ||
77 | set { this.Fields[5].Data = value; } | ||
78 | } | ||
79 | |||
80 | /// <summary> | ||
81 | /// Gets and sets the action property for the row. | ||
82 | /// </summary> | ||
83 | /// <value>Action property for the row.</value> | ||
84 | public string ActionProperty | ||
85 | { | ||
86 | get { return (string)this.Fields[6].Data; } | ||
87 | set { this.Fields[6].Data = value; } | ||
88 | } | ||
89 | } | ||
90 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixActionRow.cs b/src/WixToolset.Data/Rows/WixActionRow.cs deleted file mode 100644 index 3009e59d..00000000 --- a/src/WixToolset.Data/Rows/WixActionRow.cs +++ /dev/null | |||
@@ -1,374 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Diagnostics; | ||
8 | using System.Globalization; | ||
9 | using System.Xml; | ||
10 | using System.Xml.Schema; | ||
11 | |||
12 | /// <summary> | ||
13 | /// The Sequence tables that actions may belong to. | ||
14 | /// </summary> | ||
15 | public enum SequenceTable | ||
16 | { | ||
17 | /// <summary>AdminUISequence</summary> | ||
18 | AdminUISequence, | ||
19 | |||
20 | /// <summary>AdminExecuteSequence</summary> | ||
21 | AdminExecuteSequence, | ||
22 | |||
23 | /// <summary>AdvtExecuteSequence</summary> | ||
24 | AdvtExecuteSequence, | ||
25 | |||
26 | /// <summary>InstallUISequence</summary> | ||
27 | InstallUISequence, | ||
28 | |||
29 | /// <summary>InstallExecuteSequence</summary> | ||
30 | InstallExecuteSequence | ||
31 | } | ||
32 | |||
33 | /// <summary> | ||
34 | /// Specialization of a row for the sequence tables. | ||
35 | /// </summary> | ||
36 | public sealed class WixActionRow : Row, IComparable | ||
37 | { | ||
38 | private WixActionRowCollection previousActionRows; | ||
39 | private WixActionRowCollection nextActionRows; | ||
40 | |||
41 | /// <summary> | ||
42 | /// Instantiates an ActionRow that belongs to a table. | ||
43 | /// </summary> | ||
44 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
45 | /// <param name="table">Table this Action row belongs to and should get its column definitions from.</param> | ||
46 | public WixActionRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
47 | base(sourceLineNumbers, table) | ||
48 | { | ||
49 | } | ||
50 | |||
51 | /// <summary> | ||
52 | /// Instantiates a standard ActionRow. | ||
53 | /// </summary> | ||
54 | /// <param name="sequenceTable">The sequence table of the standard action.</param> | ||
55 | /// <param name="action">The name of the standard action.</param> | ||
56 | /// <param name="condition">The condition of the standard action.</param> | ||
57 | /// <param name="sequence">The suggested sequence number of the standard action.</param> | ||
58 | private WixActionRow(SequenceTable sequenceTable, string action, string condition, int sequence) : | ||
59 | base(null, WindowsInstallerStandard.GetTableDefinitions()["WixAction"]) | ||
60 | { | ||
61 | this.SequenceTable = sequenceTable; | ||
62 | this.Action = action; | ||
63 | this.Condition = condition; | ||
64 | this.Sequence = sequence; | ||
65 | this.Overridable = true; // all standard actions are overridable by default | ||
66 | } | ||
67 | |||
68 | /// <summary> | ||
69 | /// Instantiates an ActionRow by copying data from another ActionRow. | ||
70 | /// </summary> | ||
71 | /// <param name="source">The row the data is copied from.</param> | ||
72 | /// <remarks>The previous and next action collections are not copied.</remarks> | ||
73 | private WixActionRow(WixActionRow source) | ||
74 | : base(source) | ||
75 | { | ||
76 | } | ||
77 | |||
78 | /// <summary> | ||
79 | /// Gets or sets the name of the action. | ||
80 | /// </summary> | ||
81 | /// <value>The name of the action.</value> | ||
82 | public string Action | ||
83 | { | ||
84 | get { return (string)this.Fields[1].Data; } | ||
85 | set { this.Fields[1].Data = value; } | ||
86 | } | ||
87 | |||
88 | /// <summary> | ||
89 | /// Gets the name of the action this action should be scheduled after. | ||
90 | /// </summary> | ||
91 | /// <value>The name of the action this action should be scheduled after.</value> | ||
92 | public string After | ||
93 | { | ||
94 | get { return (string)this.Fields[5].Data; } | ||
95 | set { this.Fields[5].Data = value; } | ||
96 | } | ||
97 | |||
98 | /// <summary> | ||
99 | /// Gets the name of the action this action should be scheduled before. | ||
100 | /// </summary> | ||
101 | /// <value>The name of the action this action should be scheduled before.</value> | ||
102 | public string Before | ||
103 | { | ||
104 | get { return (string)this.Fields[4].Data; } | ||
105 | set { this.Fields[4].Data = value; } | ||
106 | } | ||
107 | |||
108 | /// <summary> | ||
109 | /// Gets or sets the condition of the action. | ||
110 | /// </summary> | ||
111 | /// <value>The condition of the action.</value> | ||
112 | public string Condition | ||
113 | { | ||
114 | get { return (string)this.Fields[2].Data; } | ||
115 | set { this.Fields[2].Data = value; } | ||
116 | } | ||
117 | |||
118 | /// <summary> | ||
119 | /// Gets or sets whether this action is overridable. | ||
120 | /// </summary> | ||
121 | /// <value>Whether this action is overridable.</value> | ||
122 | public bool Overridable | ||
123 | { | ||
124 | get { return (1 == Convert.ToInt32(this.Fields[6].Data, CultureInfo.InvariantCulture)); } | ||
125 | set { this.Fields[6].Data = (value ? 1 : 0); } | ||
126 | } | ||
127 | |||
128 | /// <summary> | ||
129 | /// Gets or sets the sequence number of this action. | ||
130 | /// </summary> | ||
131 | /// <value>The sequence number of this action.</value> | ||
132 | public int Sequence | ||
133 | { | ||
134 | get { return Convert.ToInt32(this.Fields[3].Data, CultureInfo.InvariantCulture); } | ||
135 | set { this.Fields[3].Data = value; } | ||
136 | } | ||
137 | |||
138 | /// <summary> | ||
139 | /// Gets of sets the sequence table of this action. | ||
140 | /// </summary> | ||
141 | /// <value>The sequence table of this action.</value> | ||
142 | public SequenceTable SequenceTable | ||
143 | { | ||
144 | get { return (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[0].Data); } | ||
145 | set { this.Fields[0].Data = value.ToString(); } | ||
146 | } | ||
147 | |||
148 | /// <summary> | ||
149 | /// Gets the actions that should be scheduled after this action. | ||
150 | /// </summary> | ||
151 | /// <value>The actions that should be scheduled after this action.</value> | ||
152 | public WixActionRowCollection NextActionRows | ||
153 | { | ||
154 | get | ||
155 | { | ||
156 | if (null == this.nextActionRows) | ||
157 | { | ||
158 | this.nextActionRows = new WixActionRowCollection(); | ||
159 | } | ||
160 | |||
161 | return this.nextActionRows; | ||
162 | } | ||
163 | } | ||
164 | |||
165 | /// <summary> | ||
166 | /// Gets the actions that should be scheduled before this action. | ||
167 | /// </summary> | ||
168 | /// <value>The actions that should be scheduled before this action.</value> | ||
169 | public WixActionRowCollection PreviousActionRows | ||
170 | { | ||
171 | get | ||
172 | { | ||
173 | if (null == this.previousActionRows) | ||
174 | { | ||
175 | this.previousActionRows = new WixActionRowCollection(); | ||
176 | } | ||
177 | |||
178 | return this.previousActionRows; | ||
179 | } | ||
180 | } | ||
181 | |||
182 | /// <summary> | ||
183 | /// Creates a clone of the action row. | ||
184 | /// </summary> | ||
185 | /// <returns>A shallow copy of the source object.</returns> | ||
186 | /// <remarks>The previous and next action collections are not copied.</remarks> | ||
187 | public WixActionRow Clone() | ||
188 | { | ||
189 | return new WixActionRow(this); | ||
190 | } | ||
191 | |||
192 | /// <summary> | ||
193 | /// Compares the current instance with another object of the same type. | ||
194 | /// </summary> | ||
195 | /// <param name="obj">Other reference to compare this one to.</param> | ||
196 | /// <returns>Returns less than 0 for less than, 0 for equals, and greater than 0 for greater.</returns> | ||
197 | public int CompareTo(object obj) | ||
198 | { | ||
199 | WixActionRow otherActionRow = (WixActionRow)obj; | ||
200 | |||
201 | return this.Sequence.CompareTo(otherActionRow.Sequence); | ||
202 | } | ||
203 | |||
204 | /// <summary> | ||
205 | /// Parses ActionRows from the Xml reader. | ||
206 | /// </summary> | ||
207 | /// <param name="reader">Xml reader that contains serialized ActionRows.</param> | ||
208 | /// <returns>The parsed ActionRows.</returns> | ||
209 | internal static WixActionRow[] Parse(XmlReader reader) | ||
210 | { | ||
211 | Debug.Assert("action" == reader.LocalName); | ||
212 | |||
213 | string id = null; | ||
214 | string condition = null; | ||
215 | bool empty = reader.IsEmptyElement; | ||
216 | int sequence = int.MinValue; | ||
217 | int sequenceCount = 0; | ||
218 | SequenceTable[] sequenceTables = new SequenceTable[Enum.GetValues(typeof(SequenceTable)).Length]; | ||
219 | |||
220 | while (reader.MoveToNextAttribute()) | ||
221 | { | ||
222 | switch (reader.Name) | ||
223 | { | ||
224 | case "name": | ||
225 | id = reader.Value; | ||
226 | break; | ||
227 | case "AdminExecuteSequence": | ||
228 | if (reader.Value.Equals("yes")) | ||
229 | { | ||
230 | sequenceTables[sequenceCount] = SequenceTable.AdminExecuteSequence; | ||
231 | ++sequenceCount; | ||
232 | } | ||
233 | break; | ||
234 | case "AdminUISequence": | ||
235 | if (reader.Value.Equals("yes")) | ||
236 | { | ||
237 | sequenceTables[sequenceCount] = SequenceTable.AdminUISequence; | ||
238 | ++sequenceCount; | ||
239 | } | ||
240 | break; | ||
241 | case "AdvtExecuteSequence": | ||
242 | if (reader.Value.Equals("yes")) | ||
243 | { | ||
244 | sequenceTables[sequenceCount] = SequenceTable.AdvtExecuteSequence; | ||
245 | ++sequenceCount; | ||
246 | } | ||
247 | break; | ||
248 | case "condition": | ||
249 | condition = reader.Value; | ||
250 | break; | ||
251 | case "InstallExecuteSequence": | ||
252 | if (reader.Value.Equals("yes")) | ||
253 | { | ||
254 | sequenceTables[sequenceCount] = SequenceTable.InstallExecuteSequence; | ||
255 | ++sequenceCount; | ||
256 | } | ||
257 | break; | ||
258 | case "InstallUISequence": | ||
259 | if (reader.Value.Equals("yes")) | ||
260 | { | ||
261 | sequenceTables[sequenceCount] = SequenceTable.InstallUISequence; | ||
262 | ++sequenceCount; | ||
263 | } | ||
264 | break; | ||
265 | case "sequence": | ||
266 | sequence = Convert.ToInt32(reader.Value, CultureInfo.InvariantCulture); | ||
267 | break; | ||
268 | } | ||
269 | } | ||
270 | |||
271 | if (null == id) | ||
272 | { | ||
273 | throw new XmlException(); | ||
274 | } | ||
275 | |||
276 | if (int.MinValue == sequence) | ||
277 | { | ||
278 | throw new XmlException(); | ||
279 | } | ||
280 | else if (1 > sequence) | ||
281 | { | ||
282 | throw new XmlException(); | ||
283 | } | ||
284 | |||
285 | if (0 == sequenceCount) | ||
286 | { | ||
287 | throw new XmlException(); | ||
288 | } | ||
289 | |||
290 | if (!empty && reader.Read() && XmlNodeType.EndElement != reader.MoveToContent()) | ||
291 | { | ||
292 | throw new XmlException(); | ||
293 | } | ||
294 | |||
295 | // create the actions | ||
296 | WixActionRow[] actionRows = new WixActionRow[sequenceCount]; | ||
297 | for (int i = 0; i < sequenceCount; i++) | ||
298 | { | ||
299 | WixActionRow actionRow = new WixActionRow(sequenceTables[i], id, condition, sequence); | ||
300 | actionRows[i] = actionRow; | ||
301 | } | ||
302 | |||
303 | return actionRows; | ||
304 | } | ||
305 | |||
306 | /// <summary> | ||
307 | /// Determines whether this ActionRow contains the specified ActionRow as a child in its dependency tree. | ||
308 | /// </summary> | ||
309 | /// <param name="actionRow">The possible child ActionRow.</param> | ||
310 | /// <returns>true if the ActionRow is a child of this ActionRow; false otherwise.</returns> | ||
311 | public bool ContainsChildActionRow(WixActionRow actionRow) | ||
312 | { | ||
313 | if (null != this.previousActionRows) | ||
314 | { | ||
315 | if (this.previousActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) | ||
316 | { | ||
317 | return true; | ||
318 | } | ||
319 | } | ||
320 | |||
321 | if (null != this.nextActionRows) | ||
322 | { | ||
323 | if (this.nextActionRows.Contains(actionRow.SequenceTable, actionRow.Action)) | ||
324 | { | ||
325 | return true; | ||
326 | } | ||
327 | } | ||
328 | |||
329 | return false; | ||
330 | } | ||
331 | |||
332 | /// <summary> | ||
333 | /// Get all the actions scheduled before this one in a particular sequence table. | ||
334 | /// </summary> | ||
335 | /// <param name="sequenceTable">The sequence table.</param> | ||
336 | /// <param name="allPreviousActionRows">A RowCollection which will contain all the previous actions.</param> | ||
337 | public void GetAllPreviousActionRows(SequenceTable sequenceTable, IList<WixActionRow> allPreviousActionRows) | ||
338 | { | ||
339 | if (null != this.previousActionRows) | ||
340 | { | ||
341 | foreach (WixActionRow actionRow in this.previousActionRows) | ||
342 | { | ||
343 | if (sequenceTable == actionRow.SequenceTable) | ||
344 | { | ||
345 | actionRow.GetAllPreviousActionRows(sequenceTable, allPreviousActionRows); | ||
346 | allPreviousActionRows.Add(actionRow); | ||
347 | actionRow.GetAllNextActionRows(sequenceTable, allPreviousActionRows); | ||
348 | } | ||
349 | } | ||
350 | } | ||
351 | } | ||
352 | |||
353 | /// <summary> | ||
354 | /// Get all the actions scheduled after this one in a particular sequence table. | ||
355 | /// </summary> | ||
356 | /// <param name="sequenceTable">The sequence table.</param> | ||
357 | /// <param name="allNextActionRows">A RowCollection which will contain all the next actions.</param> | ||
358 | public void GetAllNextActionRows(SequenceTable sequenceTable, IList<WixActionRow> allNextActionRows) | ||
359 | { | ||
360 | if (null != this.nextActionRows) | ||
361 | { | ||
362 | foreach (WixActionRow actionRow in this.nextActionRows) | ||
363 | { | ||
364 | if (sequenceTable == actionRow.SequenceTable) | ||
365 | { | ||
366 | actionRow.GetAllPreviousActionRows(sequenceTable, allNextActionRows); | ||
367 | allNextActionRows.Add(actionRow); | ||
368 | actionRow.GetAllNextActionRows(sequenceTable, allNextActionRows); | ||
369 | } | ||
370 | } | ||
371 | } | ||
372 | } | ||
373 | } | ||
374 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixActionRowCollection.cs b/src/WixToolset.Data/Rows/WixActionRowCollection.cs deleted file mode 100644 index 513a104f..00000000 --- a/src/WixToolset.Data/Rows/WixActionRowCollection.cs +++ /dev/null | |||
@@ -1,222 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Collections; | ||
7 | using System.Diagnostics; | ||
8 | using System.Xml; | ||
9 | |||
10 | /// <summary> | ||
11 | /// A collection of action rows sorted by their sequence table and action name. | ||
12 | /// </summary> | ||
13 | public sealed class WixActionRowCollection : ICollection | ||
14 | { | ||
15 | private SortedList collection; | ||
16 | |||
17 | /// <summary> | ||
18 | /// Creates a new action table object. | ||
19 | /// </summary> | ||
20 | public WixActionRowCollection() | ||
21 | { | ||
22 | this.collection = new SortedList(); | ||
23 | } | ||
24 | |||
25 | /// <summary> | ||
26 | /// Gets the number of items in the collection. | ||
27 | /// </summary> | ||
28 | /// <value>Number of items in collection.</value> | ||
29 | public int Count | ||
30 | { | ||
31 | get { return this.collection.Count; } | ||
32 | } | ||
33 | |||
34 | /// <summary> | ||
35 | /// Gets if the collection has been synchronized. | ||
36 | /// </summary> | ||
37 | /// <value>True if the collection has been synchronized.</value> | ||
38 | public bool IsSynchronized | ||
39 | { | ||
40 | get { return this.collection.IsSynchronized; } | ||
41 | } | ||
42 | |||
43 | /// <summary> | ||
44 | /// Gets the object used to synchronize the collection. | ||
45 | /// </summary> | ||
46 | /// <value>Oject used the synchronize the collection.</value> | ||
47 | public object SyncRoot | ||
48 | { | ||
49 | get { return this; } | ||
50 | } | ||
51 | |||
52 | /// <summary> | ||
53 | /// Get an ActionRow by its sequence table and action name. | ||
54 | /// </summary> | ||
55 | /// <param name="sequenceTable">The sequence table of the ActionRow.</param> | ||
56 | /// <param name="action">The action name of the ActionRow.</param> | ||
57 | public WixActionRow this[SequenceTable sequenceTable, string action] | ||
58 | { | ||
59 | get { return (WixActionRow)this.collection[GetKey(sequenceTable, action)]; } | ||
60 | } | ||
61 | |||
62 | /// <summary> | ||
63 | /// Add an ActionRow to the collection. | ||
64 | /// </summary> | ||
65 | /// <param name="actionRow">The ActionRow to add.</param> | ||
66 | /// <param name="overwrite">true to overwrite an existing ActionRow; false otherwise.</param> | ||
67 | public void Add(WixActionRow actionRow, bool overwrite) | ||
68 | { | ||
69 | string key = GetKey(actionRow.SequenceTable, actionRow.Action); | ||
70 | |||
71 | if (overwrite) | ||
72 | { | ||
73 | this.collection[key] = actionRow; | ||
74 | } | ||
75 | else | ||
76 | { | ||
77 | this.collection.Add(key, actionRow); | ||
78 | } | ||
79 | } | ||
80 | |||
81 | /// <summary> | ||
82 | /// Add an ActionRow to the collection. | ||
83 | /// </summary> | ||
84 | /// <param name="actionRow">The ActionRow to add.</param> | ||
85 | public void Add(WixActionRow actionRow) | ||
86 | { | ||
87 | this.Add(actionRow, false); | ||
88 | } | ||
89 | |||
90 | /// <summary> | ||
91 | /// Determines if the collection contains an ActionRow with a specific sequence table and name. | ||
92 | /// </summary> | ||
93 | /// <param name="sequenceTable">The sequence table of the ActionRow.</param> | ||
94 | /// <param name="action">The action name of the ActionRow.</param> | ||
95 | /// <returns>true if the ActionRow was found; false otherwise.</returns> | ||
96 | public bool Contains(SequenceTable sequenceTable, string action) | ||
97 | { | ||
98 | return this.collection.Contains(GetKey(sequenceTable, action)); | ||
99 | } | ||
100 | |||
101 | /// <summary> | ||
102 | /// Copies the collection into an array. | ||
103 | /// </summary> | ||
104 | /// <param name="array">Array to copy the collection into.</param> | ||
105 | /// <param name="index">Index to start copying from.</param> | ||
106 | public void CopyTo(System.Array array, int index) | ||
107 | { | ||
108 | this.collection.Values.CopyTo(array, index); | ||
109 | } | ||
110 | |||
111 | /// <summary> | ||
112 | /// Gets the enumerator for the collection. | ||
113 | /// </summary> | ||
114 | /// <returns>The enumerator for the collection.</returns> | ||
115 | public IEnumerator GetEnumerator() | ||
116 | { | ||
117 | return this.collection.Values.GetEnumerator(); | ||
118 | } | ||
119 | |||
120 | /// <summary> | ||
121 | /// Remove an ActionRow from the collection. | ||
122 | /// </summary> | ||
123 | /// <param name="sequenceTable">The sequence table of the ActionRow.</param> | ||
124 | /// <param name="action">The action name of the ActionRow.</param> | ||
125 | public void Remove(SequenceTable sequenceTable, string action) | ||
126 | { | ||
127 | this.collection.Remove(GetKey(sequenceTable, action)); | ||
128 | } | ||
129 | |||
130 | /// <summary> | ||
131 | /// Load an action table from an XmlReader. | ||
132 | /// </summary> | ||
133 | /// <param name="reader">Reader to get data from.</param> | ||
134 | /// <returns>The ActionRowCollection represented by the xml.</returns> | ||
135 | internal static WixActionRowCollection Load(XmlReader reader) | ||
136 | { | ||
137 | reader.MoveToContent(); | ||
138 | |||
139 | return Parse(reader); | ||
140 | } | ||
141 | |||
142 | /// <summary> | ||
143 | /// Creates a new action table object and populates it from an Xml reader. | ||
144 | /// </summary> | ||
145 | /// <param name="reader">Reader to get data from.</param> | ||
146 | /// <returns>The parsed ActionTable.</returns> | ||
147 | private static WixActionRowCollection Parse(XmlReader reader) | ||
148 | { | ||
149 | if (!reader.LocalName.Equals("actions")) | ||
150 | { | ||
151 | throw new XmlException(); | ||
152 | } | ||
153 | |||
154 | WixActionRowCollection actionRows = new WixActionRowCollection(); | ||
155 | bool empty = reader.IsEmptyElement; | ||
156 | |||
157 | while (reader.MoveToNextAttribute()) | ||
158 | { | ||
159 | } | ||
160 | |||
161 | if (!empty) | ||
162 | { | ||
163 | bool done = false; | ||
164 | |||
165 | // loop through all the fields in a row | ||
166 | while (!done && reader.Read()) | ||
167 | { | ||
168 | switch (reader.NodeType) | ||
169 | { | ||
170 | case XmlNodeType.Element: | ||
171 | switch (reader.LocalName) | ||
172 | { | ||
173 | case "action": | ||
174 | WixActionRow[] parsedActionRows = WixActionRow.Parse(reader); | ||
175 | |||
176 | foreach (WixActionRow actionRow in parsedActionRows) | ||
177 | { | ||
178 | actionRows.Add(actionRow); | ||
179 | } | ||
180 | break; | ||
181 | default: | ||
182 | throw new XmlException(); | ||
183 | } | ||
184 | break; | ||
185 | case XmlNodeType.EndElement: | ||
186 | done = true; | ||
187 | break; | ||
188 | } | ||
189 | } | ||
190 | |||
191 | if (!done) | ||
192 | { | ||
193 | throw new XmlException(); | ||
194 | } | ||
195 | } | ||
196 | |||
197 | return actionRows; | ||
198 | } | ||
199 | |||
200 | /// <summary> | ||
201 | /// Get the key for storing an ActionRow. | ||
202 | /// </summary> | ||
203 | /// <param name="sequenceTable">The sequence table of the ActionRow.</param> | ||
204 | /// <param name="action">The action name of the ActionRow.</param> | ||
205 | /// <returns>The string key.</returns> | ||
206 | private static string GetKey(SequenceTable sequenceTable, string action) | ||
207 | { | ||
208 | return GetKey(sequenceTable.ToString(), action); | ||
209 | } | ||
210 | |||
211 | /// <summary> | ||
212 | /// Get the key for storing an ActionRow. | ||
213 | /// </summary> | ||
214 | /// <param name="sequenceTable">The sequence table of the ActionRow.</param> | ||
215 | /// <param name="action">The action name of the ActionRow.</param> | ||
216 | /// <returns>The string key.</returns> | ||
217 | private static string GetKey(string sequenceTable, string action) | ||
218 | { | ||
219 | return String.Concat(sequenceTable, '/', action); | ||
220 | } | ||
221 | } | ||
222 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs b/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs deleted file mode 100644 index c10a39ab..00000000 --- a/src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs +++ /dev/null | |||
@@ -1,79 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | |||
6 | /// <summary> | ||
7 | /// Specialization of a row for the WixApprovedExeForElevation table. | ||
8 | /// </summary> | ||
9 | public class WixApprovedExeForElevationRow : Row | ||
10 | { | ||
11 | /// <summary> | ||
12 | /// Creates an ApprovedExeForElevation row that does not belong to a table. | ||
13 | /// </summary> | ||
14 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
15 | /// <param name="tableDef">TableDefinition this ApprovedExeForElevation row belongs to and should get its column definitions from.</param> | ||
16 | public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
17 | base(sourceLineNumbers, tableDef) | ||
18 | { | ||
19 | } | ||
20 | |||
21 | /// <summary> | ||
22 | /// Creates an ApprovedExeForElevation row that belongs to a table. | ||
23 | /// </summary> | ||
24 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
25 | /// <param name="table">Table this ApprovedExeForElevation row belongs to and should get its column definitions from.</param> | ||
26 | public WixApprovedExeForElevationRow(SourceLineNumber sourceLineNumbers, Table table) | ||
27 | : base(sourceLineNumbers, table) | ||
28 | { | ||
29 | } | ||
30 | |||
31 | /// <summary> | ||
32 | /// Gets or sets the ApprovedExeForElevation identifier. | ||
33 | /// </summary> | ||
34 | /// <value>The ApprovedExeForElevation identifier.</value> | ||
35 | public string Id | ||
36 | { | ||
37 | get { return (string)this.Fields[0].Data; } | ||
38 | set { this.Fields[0].Data = value; } | ||
39 | } | ||
40 | |||
41 | /// <summary> | ||
42 | /// Gets or sets the Key path. | ||
43 | /// </summary> | ||
44 | /// <value>The Key path.</value> | ||
45 | public string Key | ||
46 | { | ||
47 | get { return (string)this.Fields[1].Data; } | ||
48 | set { this.Fields[1].Data = value; } | ||
49 | } | ||
50 | |||
51 | /// <summary> | ||
52 | /// Gets or sets the Value name. | ||
53 | /// </summary> | ||
54 | /// <value>The Value name.</value> | ||
55 | public string ValueName | ||
56 | { | ||
57 | get { return (string)this.Fields[2].Data; } | ||
58 | set { this.Fields[2].Data = value; } | ||
59 | } | ||
60 | |||
61 | /// <summary> | ||
62 | /// Gets or sets the attibutes. | ||
63 | /// </summary> | ||
64 | /// <value>The BundleApprovedExeForElevationAttributes.</value> | ||
65 | public BundleApprovedExeForElevationAttributes Attributes | ||
66 | { | ||
67 | get { return (BundleApprovedExeForElevationAttributes)this.Fields[3].Data; } | ||
68 | set { this.Fields[3].Data = (int)value; } | ||
69 | } | ||
70 | |||
71 | /// <summary> | ||
72 | /// Gets whether this row is 64-bit. | ||
73 | /// </summary> | ||
74 | public bool Win64 | ||
75 | { | ||
76 | get { return BundleApprovedExeForElevationAttributes.Win64 == (this.Attributes & BundleApprovedExeForElevationAttributes.Win64); } | ||
77 | } | ||
78 | } | ||
79 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs b/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs deleted file mode 100644 index 05c1e597..00000000 --- a/src/WixToolset.Data/Rows/WixBundleCatalogRow.cs +++ /dev/null | |||
@@ -1,50 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixCatalog table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleCatalogRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a Catalog row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Catalog row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a Catalog row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Catalog row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleCatalogRow(SourceLineNumber sourceLineNumbers, Table table) | ||
26 | : base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the catalog identifier. | ||
32 | /// </summary> | ||
33 | /// <value>The catalog identifier.</value> | ||
34 | public string Id | ||
35 | { | ||
36 | get { return (string)this.Fields[0].Data; } | ||
37 | set { this.Fields[0].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the payload identifier. | ||
42 | /// </summary> | ||
43 | /// <value>The payload identifier.</value> | ||
44 | public string Payload | ||
45 | { | ||
46 | get { return (string)this.Fields[1].Data; } | ||
47 | set { this.Fields[1].Data = value; } | ||
48 | } | ||
49 | } | ||
50 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleContainerRow.cs b/src/WixToolset.Data/Rows/WixBundleContainerRow.cs deleted file mode 100644 index 7b03dcc5..00000000 --- a/src/WixToolset.Data/Rows/WixBundleContainerRow.cs +++ /dev/null | |||
@@ -1,78 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the Container table. | ||
7 | /// </summary> | ||
8 | public class WixBundleContainerRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a ContainerRow row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a ContainerRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleContainerRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | public string Id | ||
31 | { | ||
32 | get { return (string)this.Fields[0].Data; } | ||
33 | set { this.Fields[0].Data = value; } | ||
34 | } | ||
35 | |||
36 | public string Name | ||
37 | { | ||
38 | get { return (string)this.Fields[1].Data; } | ||
39 | set { this.Fields[1].Data = value; } | ||
40 | } | ||
41 | |||
42 | public ContainerType Type | ||
43 | { | ||
44 | get { return (ContainerType)this.Fields[2].Data; } | ||
45 | set { this.Fields[2].Data = (int)value; } | ||
46 | } | ||
47 | |||
48 | public string DownloadUrl | ||
49 | { | ||
50 | get { return (string)this.Fields[3].Data; } | ||
51 | set { this.Fields[3].Data = value; } | ||
52 | } | ||
53 | |||
54 | public long Size | ||
55 | { | ||
56 | get { return (long)this.Fields[4].Data; } | ||
57 | set { this.Fields[4].Data = value; } | ||
58 | } | ||
59 | |||
60 | public string Hash | ||
61 | { | ||
62 | get { return (string)this.Fields[5].Data; } | ||
63 | set { this.Fields[5].Data = value; } | ||
64 | } | ||
65 | |||
66 | public int AttachedContainerIndex | ||
67 | { | ||
68 | get { return (null == this.Fields[6].Data) ? -1 : (int)this.Fields[6].Data; } | ||
69 | set { this.Fields[6].Data = value; } | ||
70 | } | ||
71 | |||
72 | public string WorkingPath | ||
73 | { | ||
74 | get { return (string)this.Fields[7].Data; } | ||
75 | set { this.Fields[7].Data = value; } | ||
76 | } | ||
77 | } | ||
78 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs deleted file mode 100644 index 1d4d7bbb..00000000 --- a/src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs +++ /dev/null | |||
@@ -1,12 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | [Flags] | ||
8 | public enum WixBundleExePackageAttributes | ||
9 | { | ||
10 | Repairable = 0x1, | ||
11 | } | ||
12 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs b/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs deleted file mode 100644 index 5bca6029..00000000 --- a/src/WixToolset.Data/Rows/WixBundleExePackageRow.cs +++ /dev/null | |||
@@ -1,101 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixBundleExePackage table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleExePackageRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixBundleExePackage row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixBundleExePackageRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleExePackageRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets or sets the raw Exe attributes of a patch. | ||
41 | /// </summary> | ||
42 | public WixBundleExePackageAttributes Attributes | ||
43 | { | ||
44 | get { return (WixBundleExePackageAttributes)this.Fields[1].Data; } | ||
45 | set { this.Fields[1].Data = value; } | ||
46 | } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Gets or sets the protcol for the executable package. | ||
50 | /// </summary> | ||
51 | public string DetectCondition | ||
52 | { | ||
53 | get { return (string)this.Fields[2].Data; } | ||
54 | set { this.Fields[2].Data = value; } | ||
55 | } | ||
56 | |||
57 | /// <summary> | ||
58 | /// Gets or sets the install command for the executable package. | ||
59 | /// </summary> | ||
60 | public string InstallCommand | ||
61 | { | ||
62 | get { return (string)this.Fields[3].Data; } | ||
63 | set { this.Fields[3].Data = value; } | ||
64 | } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Gets or sets the repair command for the executable package. | ||
68 | /// </summary> | ||
69 | public string RepairCommand | ||
70 | { | ||
71 | get { return (string)this.Fields[4].Data; } | ||
72 | set { this.Fields[4].Data = value; } | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets or sets the uninstall command for the executable package. | ||
77 | /// </summary> | ||
78 | public string UninstallCommand | ||
79 | { | ||
80 | get { return (string)this.Fields[5].Data; } | ||
81 | set { this.Fields[5].Data = value; } | ||
82 | } | ||
83 | |||
84 | /// <summary> | ||
85 | /// Gets or sets the protcol for the executable package. | ||
86 | /// </summary> | ||
87 | public string ExeProtocol | ||
88 | { | ||
89 | get { return (string)this.Fields[6].Data; } | ||
90 | set { this.Fields[6].Data = value; } | ||
91 | } | ||
92 | |||
93 | /// <summary> | ||
94 | /// Gets whether the executable package is repairable. | ||
95 | /// </summary> | ||
96 | public bool Repairable | ||
97 | { | ||
98 | get { return 0 != (this.Attributes & WixBundleExePackageAttributes.Repairable); } | ||
99 | } | ||
100 | } | ||
101 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs deleted file mode 100644 index 551eae20..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs +++ /dev/null | |||
@@ -1,93 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the MsiFeature table. | ||
7 | /// </summary> | ||
8 | public class WixBundleMsiFeatureRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a MsiFeatureRow row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a MsiFeatureRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleMsiFeatureRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | public string Name | ||
40 | { | ||
41 | get { return (string)this.Fields[1].Data; } | ||
42 | set { this.Fields[1].Data = value; } | ||
43 | } | ||
44 | |||
45 | public long Size | ||
46 | { | ||
47 | get { return (long)this.Fields[2].Data; } | ||
48 | set { this.Fields[2].Data = value; } | ||
49 | } | ||
50 | |||
51 | public string Parent | ||
52 | { | ||
53 | get { return (string)this.Fields[3].Data; } | ||
54 | set { this.Fields[3].Data = value; } | ||
55 | } | ||
56 | |||
57 | public string Title | ||
58 | { | ||
59 | get { return (string)this.Fields[4].Data; } | ||
60 | set { this.Fields[4].Data = value; } | ||
61 | } | ||
62 | |||
63 | public string Description | ||
64 | { | ||
65 | get { return (string)this.Fields[5].Data; } | ||
66 | set { this.Fields[5].Data = value; } | ||
67 | } | ||
68 | |||
69 | public int Display | ||
70 | { | ||
71 | get { return (int)this.Fields[6].Data; } | ||
72 | set { this.Fields[6].Data = value; } | ||
73 | } | ||
74 | |||
75 | public int Level | ||
76 | { | ||
77 | get { return (int)this.Fields[7].Data; } | ||
78 | set { this.Fields[7].Data = value; } | ||
79 | } | ||
80 | |||
81 | public string Directory | ||
82 | { | ||
83 | get { return (string)this.Fields[8].Data; } | ||
84 | set { this.Fields[8].Data = value; } | ||
85 | } | ||
86 | |||
87 | public int Attributes | ||
88 | { | ||
89 | get { return (int)this.Fields[9].Data; } | ||
90 | set { this.Fields[9].Data = value; } | ||
91 | } | ||
92 | } | ||
93 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs deleted file mode 100644 index fc038f81..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | [Flags] | ||
8 | public enum WixBundleMsiPackageAttributes | ||
9 | { | ||
10 | DisplayInternalUI = 0x1, | ||
11 | EnableFeatureSelection = 0x4, | ||
12 | ForcePerMachine = 0x2, | ||
13 | SuppressLooseFilePayloadGeneration = 0x8, | ||
14 | } | ||
15 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs deleted file mode 100644 index 22e66a7a..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs +++ /dev/null | |||
@@ -1,137 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Globalization; | ||
7 | |||
8 | /// <summary> | ||
9 | /// Specialization of a row for the WixBundleMsiPackage table. | ||
10 | /// </summary> | ||
11 | public sealed class WixBundleMsiPackageRow : Row | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Creates a WixBundleMsiPackage row that does not belong to a table. | ||
15 | /// </summary> | ||
16 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
17 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
18 | public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
19 | base(sourceLineNumbers, tableDef) | ||
20 | { | ||
21 | } | ||
22 | |||
23 | /// <summary> | ||
24 | /// Creates a WixBundleMsiPackageRow row that belongs to a table. | ||
25 | /// </summary> | ||
26 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
27 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
28 | public WixBundleMsiPackageRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
29 | base(sourceLineNumbers, table) | ||
30 | { | ||
31 | } | ||
32 | |||
33 | /// <summary> | ||
34 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
35 | /// </summary> | ||
36 | public string ChainPackageId | ||
37 | { | ||
38 | get { return (string)this.Fields[0].Data; } | ||
39 | set { this.Fields[0].Data = value; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets or sets the raw MSI attributes of a package. | ||
44 | /// </summary> | ||
45 | public WixBundleMsiPackageAttributes Attributes | ||
46 | { | ||
47 | get { return (WixBundleMsiPackageAttributes)this.Fields[1].Data; } | ||
48 | set { this.Fields[1].Data = value; } | ||
49 | } | ||
50 | |||
51 | /// <summary> | ||
52 | /// Gets or sets the MSI package's product code. | ||
53 | /// </summary> | ||
54 | public string ProductCode | ||
55 | { | ||
56 | get { return (string)this.Fields[2].Data; } | ||
57 | set { this.Fields[2].Data = value; } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets or sets the MSI package's upgrade code. | ||
62 | /// </summary> | ||
63 | public string UpgradeCode | ||
64 | { | ||
65 | get { return (string)this.Fields[3].Data; } | ||
66 | set { this.Fields[3].Data = value; } | ||
67 | } | ||
68 | |||
69 | /// <summary> | ||
70 | /// Gets or sets the product version of the MSI package. | ||
71 | /// </summary> | ||
72 | public string ProductVersion | ||
73 | { | ||
74 | get { return (string)this.Fields[4].Data; } | ||
75 | set { this.Fields[4].Data = value; } | ||
76 | } | ||
77 | |||
78 | /// <summary> | ||
79 | /// Gets or sets the language of the MSI package. | ||
80 | /// </summary> | ||
81 | public int ProductLanguage | ||
82 | { | ||
83 | get { return Convert.ToInt32(this.Fields[5].Data, CultureInfo.InvariantCulture); } | ||
84 | set { this.Fields[5].Data = value; } | ||
85 | } | ||
86 | |||
87 | /// <summary> | ||
88 | /// Gets or sets the product name of the MSI package. | ||
89 | /// </summary> | ||
90 | public string ProductName | ||
91 | { | ||
92 | get { return (string)this.Fields[6].Data; } | ||
93 | set { this.Fields[6].Data = value; } | ||
94 | } | ||
95 | |||
96 | /// <summary> | ||
97 | /// Gets or sets the MSI package's manufacturer. | ||
98 | /// </summary> | ||
99 | public string Manufacturer | ||
100 | { | ||
101 | get { return (string)this.Fields[7].Data; } | ||
102 | set { this.Fields[7].Data = value; } | ||
103 | } | ||
104 | |||
105 | /// <summary> | ||
106 | /// Gets the display internal UI of a package. | ||
107 | /// </summary> | ||
108 | public bool DisplayInternalUI | ||
109 | { | ||
110 | get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.DisplayInternalUI); } | ||
111 | } | ||
112 | |||
113 | /// <summary> | ||
114 | /// Gets the display internal UI of a package. | ||
115 | /// </summary> | ||
116 | public bool EnableFeatureSelection | ||
117 | { | ||
118 | get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.EnableFeatureSelection); } | ||
119 | } | ||
120 | |||
121 | /// <summary> | ||
122 | /// Gets the display internal UI of a package. | ||
123 | /// </summary> | ||
124 | public bool ForcePerMachine | ||
125 | { | ||
126 | get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.ForcePerMachine); } | ||
127 | } | ||
128 | |||
129 | /// <summary> | ||
130 | /// Gets the suppress loose file payload generation of a package. | ||
131 | /// </summary> | ||
132 | public bool SuppressLooseFilePayloadGeneration | ||
133 | { | ||
134 | get { return 0 != (this.Attributes & WixBundleMsiPackageAttributes.SuppressLooseFilePayloadGeneration); } | ||
135 | } | ||
136 | } | ||
137 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs b/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs deleted file mode 100644 index 524f7929..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixBundleMsiProperty table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleMsiPropertyRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates an WixBundleMsiProperty row that belongs to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="table">Table this WixBundleMsiProperty row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleMsiPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
16 | base(sourceLineNumbers, table) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
22 | /// </summary> | ||
23 | public string ChainPackageId | ||
24 | { | ||
25 | get { return (string)this.Fields[0].Data; } | ||
26 | set { this.Fields[0].Data = value; } | ||
27 | } | ||
28 | |||
29 | /// <summary> | ||
30 | /// Gets and sets the property identity. | ||
31 | /// </summary> | ||
32 | public string Name | ||
33 | { | ||
34 | get { return (string)this.Fields[1].Data; } | ||
35 | set { this.Fields[1].Data = value; } | ||
36 | } | ||
37 | |||
38 | /// <summary> | ||
39 | /// Gets and sets the value for the row. | ||
40 | /// </summary> | ||
41 | /// <value>MsiProperty value for the row.</value> | ||
42 | public string Value | ||
43 | { | ||
44 | get { return (string)this.Fields[2].Data; } | ||
45 | set { this.Fields[2].Data = value; } | ||
46 | } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Gets and sets the condition for the row. | ||
50 | /// </summary> | ||
51 | /// <value>MsiProperty condition for the row.</value> | ||
52 | public string Condition | ||
53 | { | ||
54 | get { return (string)this.Fields[3].Data; } | ||
55 | set { this.Fields[3].Data = value; } | ||
56 | } | ||
57 | } | ||
58 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs deleted file mode 100644 index 8f33e283..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs +++ /dev/null | |||
@@ -1,14 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | [Flags] | ||
8 | public enum WixBundleMspPackageAttributes | ||
9 | { | ||
10 | DisplayInternalUI = 0x1, | ||
11 | Slipstream = 0x2, | ||
12 | TargetUnspecified = 0x4, | ||
13 | } | ||
14 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs deleted file mode 100644 index eccf0aea..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs +++ /dev/null | |||
@@ -1,99 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the ChainMspPackage table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleMspPackageRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a ChainMspPackage row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixBundleMspPackage row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleMspPackageRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets or sets the raw MSP attributes of a patch. | ||
41 | /// </summary> | ||
42 | public WixBundleMspPackageAttributes Attributes | ||
43 | { | ||
44 | get { return (WixBundleMspPackageAttributes)this.Fields[1].Data; } | ||
45 | set { this.Fields[1].Data = value; } | ||
46 | } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Gets or sets the patch code. | ||
50 | /// </summary> | ||
51 | public string PatchCode | ||
52 | { | ||
53 | get { return (string)this.Fields[2].Data; } | ||
54 | set { this.Fields[2].Data = value; } | ||
55 | } | ||
56 | |||
57 | /// <summary> | ||
58 | /// Gets or sets the patch's manufacturer. | ||
59 | /// </summary> | ||
60 | public string Manufacturer | ||
61 | { | ||
62 | get { return (string)this.Fields[3].Data; } | ||
63 | set { this.Fields[3].Data = value; } | ||
64 | } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Gets or sets the patch's xml. | ||
68 | /// </summary> | ||
69 | public string PatchXml | ||
70 | { | ||
71 | get { return (string)this.Fields[4].Data; } | ||
72 | set { this.Fields[4].Data = value; } | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets the display internal UI of a patch. | ||
77 | /// </summary> | ||
78 | public bool DisplayInternalUI | ||
79 | { | ||
80 | get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.DisplayInternalUI); } | ||
81 | } | ||
82 | |||
83 | /// <summary> | ||
84 | /// Gets whether to slipstream the patch. | ||
85 | /// </summary> | ||
86 | public bool Slipstream | ||
87 | { | ||
88 | get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.Slipstream); } | ||
89 | } | ||
90 | |||
91 | /// <summary> | ||
92 | /// Gets whether the patch targets an unspecified number of packages. | ||
93 | /// </summary> | ||
94 | public bool TargetUnspecified | ||
95 | { | ||
96 | get { return 0 != (this.Attributes & WixBundleMspPackageAttributes.TargetUnspecified); } | ||
97 | } | ||
98 | } | ||
99 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs deleted file mode 100644 index 0df635c2..00000000 --- a/src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs +++ /dev/null | |||
@@ -1,57 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixBundleMsuPackage table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleMsuPackageRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixBundleMsuPackage row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixBundleMsuPackage row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleMsuPackageRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets or sets the detection condition the package. | ||
41 | /// </summary> | ||
42 | public string DetectCondition | ||
43 | { | ||
44 | get { return (string)this.Fields[1].Data; } | ||
45 | set { this.Fields[1].Data = value; } | ||
46 | } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Gets or sets the KB of the package. | ||
50 | /// </summary> | ||
51 | public string MsuKB | ||
52 | { | ||
53 | get { return (string)this.Fields[2].Data; } | ||
54 | set { this.Fields[2].Data = value; } | ||
55 | } | ||
56 | } | ||
57 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs b/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs deleted file mode 100644 index 5b88ea5b..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs +++ /dev/null | |||
@@ -1,13 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | [Flags] | ||
8 | public enum WixBundlePackageAttributes | ||
9 | { | ||
10 | Permanent = 0x1, | ||
11 | Visible = 0x2, | ||
12 | } | ||
13 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs deleted file mode 100644 index eba647d5..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs +++ /dev/null | |||
@@ -1,82 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Specialization of a row for the WixBundlePackageCommandLine table. | ||
9 | /// </summary> | ||
10 | public class WixBundlePackageCommandLineRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a WixBundlePackageCommandLineRow row that does not belong to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="tableDef">TableDefinition this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from.</param> | ||
17 | public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
18 | base(sourceLineNumbers, tableDef) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates an WixBundlePackageCommandLineRow row that belongs to a table. | ||
24 | /// </summary> | ||
25 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
26 | /// <param name="table">Table this WixBundlePackageCommandLineRow row belongs to and should get its column definitions from.</param> | ||
27 | public WixBundlePackageCommandLineRow(SourceLineNumber sourceLineNumbers, Table table) | ||
28 | : base(sourceLineNumbers, table) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets or sets the package identifier. | ||
34 | /// </summary> | ||
35 | /// <value>The package identifier.</value> | ||
36 | public string ChainPackageId | ||
37 | { | ||
38 | get { return (string)this.Fields[0].Data; } | ||
39 | set { this.Fields[0].Data = value; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets or sets the command-line argument for installation. | ||
44 | /// </summary> | ||
45 | /// <value>The command-line argument.</value> | ||
46 | public string InstallArgument | ||
47 | { | ||
48 | get { return (string)this.Fields[1].Data; } | ||
49 | set { this.Fields[1].Data = value; } | ||
50 | } | ||
51 | |||
52 | /// <summary> | ||
53 | /// Gets or sets the command-line argument for uninstallation. | ||
54 | /// </summary> | ||
55 | /// <value>The command-line argument.</value> | ||
56 | public string UninstallArgument | ||
57 | { | ||
58 | get { return (string)this.Fields[2].Data; } | ||
59 | set { this.Fields[2].Data = value; } | ||
60 | } | ||
61 | |||
62 | /// <summary> | ||
63 | /// Gets or sets the command-line argument for repair. | ||
64 | /// </summary> | ||
65 | /// <value>The command-line argument.</value> | ||
66 | public string RepairArgument | ||
67 | { | ||
68 | get { return (string)this.Fields[3].Data; } | ||
69 | set { this.Fields[3].Data = value; } | ||
70 | } | ||
71 | |||
72 | /// <summary> | ||
73 | /// Gets or sets the condition. | ||
74 | /// </summary> | ||
75 | /// <value>The condition.</value> | ||
76 | public string Condition | ||
77 | { | ||
78 | get { return (string)this.Fields[4].Data; } | ||
79 | set { this.Fields[4].Data = value; } | ||
80 | } | ||
81 | } | ||
82 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs deleted file mode 100644 index 410c191e..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs +++ /dev/null | |||
@@ -1,51 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the ExitCode table. | ||
7 | /// </summary> | ||
8 | public class WixBundlePackageExitCodeRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a ExitCodeRow row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a ExitCodeRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundlePackageExitCodeRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | public int? Code | ||
40 | { | ||
41 | get { return (null == this.Fields[1].Data) ? (int?)null : (int?)this.Fields[1].Data; } | ||
42 | set { this.Fields[1].Data = value; } | ||
43 | } | ||
44 | |||
45 | public ExitCodeBehaviorType Behavior | ||
46 | { | ||
47 | get { return (ExitCodeBehaviorType)this.Fields[2].Data; } | ||
48 | set { this.Fields[2].Data = (int)value; } | ||
49 | } | ||
50 | } | ||
51 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePackageRow.cs b/src/WixToolset.Data/Rows/WixBundlePackageRow.cs deleted file mode 100644 index e278e9d8..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageRow.cs +++ /dev/null | |||
@@ -1,226 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixBundlePackage table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundlePackageRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixBundlePackage row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixBundlePackage row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundlePackageRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key to the WixChainItem. | ||
32 | /// </summary> | ||
33 | public string WixChainItemId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets or sets the item type. | ||
41 | /// </summary> | ||
42 | public WixBundlePackageType Type | ||
43 | { | ||
44 | get { return (WixBundlePackageType)this.Fields[1].Data; } | ||
45 | set { this.Fields[1].Data = (int)value; } | ||
46 | } | ||
47 | |||
48 | /// <summary> | ||
49 | /// Gets or sets the indentifier of the package's payload. | ||
50 | /// </summary> | ||
51 | public string PackagePayload | ||
52 | { | ||
53 | get { return (string)this.Fields[2].Data; } | ||
54 | set { this.Fields[2].Data = value; } | ||
55 | } | ||
56 | |||
57 | /// <summary> | ||
58 | /// Gets or sets the raw attributes of a package. | ||
59 | /// </summary> | ||
60 | public WixBundlePackageAttributes Attributes | ||
61 | { | ||
62 | get { return (WixBundlePackageAttributes)this.Fields[3].Data; } | ||
63 | set { this.Fields[3].Data = value; } | ||
64 | } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Gets or sets the install condition of the package. | ||
68 | /// </summary> | ||
69 | public string InstallCondition | ||
70 | { | ||
71 | get { return (string)this.Fields[4].Data; } | ||
72 | set { this.Fields[4].Data = value; } | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets or sets the language of the package. | ||
77 | /// </summary> | ||
78 | public YesNoAlwaysType Cache | ||
79 | { | ||
80 | get { return (null == this.Fields[5].Data) ? YesNoAlwaysType.NotSet : (YesNoAlwaysType)this.Fields[5].Data; } | ||
81 | set { this.Fields[5].Data = (int)value; } | ||
82 | } | ||
83 | |||
84 | /// <summary> | ||
85 | /// Gets or sets the indentifier of the package's cache. | ||
86 | /// </summary> | ||
87 | public string CacheId | ||
88 | { | ||
89 | get { return (string)this.Fields[6].Data; } | ||
90 | set { this.Fields[6].Data = value; } | ||
91 | } | ||
92 | |||
93 | /// <summary> | ||
94 | /// Gets or sets whether the package is vital. | ||
95 | /// </summary> | ||
96 | public YesNoType Vital | ||
97 | { | ||
98 | get { return (null == this.Fields[7].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[7].Data; } | ||
99 | set { this.Fields[7].Data = (int)value; } | ||
100 | } | ||
101 | |||
102 | /// <summary> | ||
103 | /// Gets or sets whether the package is per-machine. | ||
104 | /// </summary> | ||
105 | public YesNoDefaultType PerMachine | ||
106 | { | ||
107 | get { return (null == this.Fields[8].Data) ? YesNoDefaultType.NotSet : (YesNoDefaultType)this.Fields[8].Data; } | ||
108 | set { this.Fields[8].Data = (int)value; } | ||
109 | } | ||
110 | |||
111 | /// <summary> | ||
112 | /// Gets or sets the variable that points to the log for the package. | ||
113 | /// </summary> | ||
114 | public string LogPathVariable | ||
115 | { | ||
116 | get { return (string)this.Fields[9].Data; } | ||
117 | set { this.Fields[9].Data = value; } | ||
118 | } | ||
119 | |||
120 | /// <summary> | ||
121 | /// Gets or sets the variable that points to the rollback log for the package. | ||
122 | /// </summary> | ||
123 | public string RollbackLogPathVariable | ||
124 | { | ||
125 | get { return (string)this.Fields[10].Data; } | ||
126 | set { this.Fields[10].Data = value; } | ||
127 | } | ||
128 | |||
129 | /// <summary> | ||
130 | /// Gets or sets the size of the package. | ||
131 | /// </summary> | ||
132 | public long Size | ||
133 | { | ||
134 | get { return (long)this.Fields[11].Data; } | ||
135 | set { this.Fields[11].Data = value; } | ||
136 | } | ||
137 | |||
138 | /// <summary> | ||
139 | /// Gets or sets the install size of the package. | ||
140 | /// </summary> | ||
141 | public long? InstallSize | ||
142 | { | ||
143 | get { return (long?)this.Fields[12].Data; } | ||
144 | set { this.Fields[12].Data = value; } | ||
145 | } | ||
146 | |||
147 | /// <summary> | ||
148 | /// Gets or sets the version of the package. | ||
149 | /// </summary> | ||
150 | public string Version | ||
151 | { | ||
152 | get { return (string)this.Fields[13].Data; } | ||
153 | set { this.Fields[13].Data = value; } | ||
154 | } | ||
155 | |||
156 | /// <summary> | ||
157 | /// Gets or sets the language of the package. | ||
158 | /// </summary> | ||
159 | public int Language | ||
160 | { | ||
161 | get { return (int)this.Fields[14].Data; } | ||
162 | set { this.Fields[14].Data = value; } | ||
163 | } | ||
164 | |||
165 | /// <summary> | ||
166 | /// Gets or sets the display name of the package. | ||
167 | /// </summary> | ||
168 | public string DisplayName | ||
169 | { | ||
170 | get { return (string)this.Fields[15].Data; } | ||
171 | set { this.Fields[15].Data = value; } | ||
172 | } | ||
173 | |||
174 | /// <summary> | ||
175 | /// Gets or sets the description of the package. | ||
176 | /// </summary> | ||
177 | public string Description | ||
178 | { | ||
179 | get { return (string)this.Fields[16].Data; } | ||
180 | set { this.Fields[16].Data = value; } | ||
181 | } | ||
182 | |||
183 | /// <summary> | ||
184 | /// Gets or sets the rollback boundary identifier for the package. | ||
185 | /// </summary> | ||
186 | public string RollbackBoundary | ||
187 | { | ||
188 | get { return (string)this.Fields[17].Data; } | ||
189 | set { this.Fields[17].Data = value; } | ||
190 | } | ||
191 | |||
192 | /// <summary> | ||
193 | /// Gets or sets the backward rollback boundary identifier for the package. | ||
194 | /// </summary> | ||
195 | public string RollbackBoundaryBackward | ||
196 | { | ||
197 | get { return (string)this.Fields[18].Data; } | ||
198 | set { this.Fields[18].Data = value; } | ||
199 | } | ||
200 | |||
201 | /// <summary> | ||
202 | /// Gets or sets whether the package is x64. | ||
203 | /// </summary> | ||
204 | public YesNoType x64 | ||
205 | { | ||
206 | get { return (null == this.Fields[19].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[19].Data; } | ||
207 | set { this.Fields[19].Data = (int)value; } | ||
208 | } | ||
209 | |||
210 | /// <summary> | ||
211 | /// Gets whether the package is permanent. | ||
212 | /// </summary> | ||
213 | public bool Permanent | ||
214 | { | ||
215 | get { return 0 != (this.Attributes & WixBundlePackageAttributes.Permanent); } | ||
216 | } | ||
217 | |||
218 | /// <summary> | ||
219 | /// Gets whether the package is visible. | ||
220 | /// </summary> | ||
221 | public bool Visible | ||
222 | { | ||
223 | get { return 0 != (this.Attributes & WixBundlePackageAttributes.Visible); } | ||
224 | } | ||
225 | } | ||
226 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePackageType.cs b/src/WixToolset.Data/Rows/WixBundlePackageType.cs deleted file mode 100644 index a4277a8a..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePackageType.cs +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Types of bundle packages. | ||
7 | /// </summary> | ||
8 | public enum WixBundlePackageType | ||
9 | { | ||
10 | Exe, | ||
11 | Msi, | ||
12 | Msp, | ||
13 | Msu, | ||
14 | } | ||
15 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs b/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs deleted file mode 100644 index e25f4a55..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Text; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Attributes for the PatchTargetCode table. | ||
11 | /// </summary> | ||
12 | [Flags] | ||
13 | public enum WixBundlePatchTargetCodeAttributes : int | ||
14 | { | ||
15 | None = 0, | ||
16 | |||
17 | /// <summary> | ||
18 | /// The transform targets a specific ProductCode. | ||
19 | /// </summary> | ||
20 | TargetsProductCode = 1, | ||
21 | |||
22 | /// <summary> | ||
23 | /// The transform targets a specific UpgradeCode. | ||
24 | /// </summary> | ||
25 | TargetsUpgradeCode = 2, | ||
26 | } | ||
27 | |||
28 | /// <summary> | ||
29 | /// Specialization of a row for the PatchTargetCode table. | ||
30 | /// </summary> | ||
31 | public class WixBundlePatchTargetCodeRow : Row | ||
32 | { | ||
33 | /// <summary> | ||
34 | /// Creates a PatchTargetCodeRow row that does not belong to a table. | ||
35 | /// </summary> | ||
36 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
37 | /// <param name="tableDef">TableDefinition this PatchTargetCode row belongs to and should get its column definitions from.</param> | ||
38 | public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
39 | base(sourceLineNumbers, tableDef) | ||
40 | { | ||
41 | } | ||
42 | |||
43 | /// <summary> | ||
44 | /// Creates a PatchTargetCodeRow row that belongs to a table. | ||
45 | /// </summary> | ||
46 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
47 | /// <param name="table">Table this PatchTargetCode row belongs to and should get its column definitions from.</param> | ||
48 | public WixBundlePatchTargetCodeRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
49 | base(sourceLineNumbers, table) | ||
50 | { | ||
51 | } | ||
52 | |||
53 | public string MspPackageId | ||
54 | { | ||
55 | get { return (string)this.Fields[0].Data; } | ||
56 | set { this.Fields[0].Data = value; } | ||
57 | } | ||
58 | |||
59 | public string TargetCode | ||
60 | { | ||
61 | get { return (string)this.Fields[1].Data; } | ||
62 | set { this.Fields[1].Data = value; } | ||
63 | } | ||
64 | |||
65 | public WixBundlePatchTargetCodeAttributes Attributes | ||
66 | { | ||
67 | get { return (WixBundlePatchTargetCodeAttributes)this.Fields[2].Data; } | ||
68 | set { this.Fields[2].Data = (int)value; } | ||
69 | } | ||
70 | |||
71 | public bool TargetsProductCode | ||
72 | { | ||
73 | get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsProductCode & this.Attributes); } | ||
74 | } | ||
75 | |||
76 | public bool TargetsUpgradeCode | ||
77 | { | ||
78 | get { return 0 != (WixBundlePatchTargetCodeAttributes.TargetsUpgradeCode & this.Attributes); } | ||
79 | } | ||
80 | } | ||
81 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs b/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs deleted file mode 100644 index 8aac8aa0..00000000 --- a/src/WixToolset.Data/Rows/WixBundlePayloadRow.cs +++ /dev/null | |||
@@ -1,185 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.IO; | ||
7 | |||
8 | /// <summary> | ||
9 | /// Specialization of a row for the PayloadInfo table. | ||
10 | /// </summary> | ||
11 | public class WixBundlePayloadRow : Row | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Creates a PayloadRow row that does not belong to a table. | ||
15 | /// </summary> | ||
16 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
17 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
18 | public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
19 | base(sourceLineNumbers, tableDef) | ||
20 | { | ||
21 | } | ||
22 | |||
23 | /// <summary> | ||
24 | /// Creates a PayloadRow row that belongs to a table. | ||
25 | /// </summary> | ||
26 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
27 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
28 | public WixBundlePayloadRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
29 | base(sourceLineNumbers, table) | ||
30 | { | ||
31 | } | ||
32 | |||
33 | public string Id | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | public string Name | ||
40 | { | ||
41 | get { return (string)this.Fields[1].Data; } | ||
42 | set { this.Fields[1].Data = value; } | ||
43 | } | ||
44 | |||
45 | public string SourceFile | ||
46 | { | ||
47 | get { return (string)this.Fields[2].Data; } | ||
48 | set { this.Fields[2].Data = value; } | ||
49 | } | ||
50 | |||
51 | public string DownloadUrl | ||
52 | { | ||
53 | get { return (string)this.Fields[3].Data; } | ||
54 | set { this.Fields[3].Data = value; } | ||
55 | } | ||
56 | |||
57 | public YesNoDefaultType Compressed | ||
58 | { | ||
59 | get { return (YesNoDefaultType)this.Fields[4].Data; } | ||
60 | set { this.Fields[4].Data = (int)value; } | ||
61 | } | ||
62 | |||
63 | public string UnresolvedSourceFile | ||
64 | { | ||
65 | get { return (string)this.Fields[5].Data; } | ||
66 | set { this.Fields[5].Data = value; } | ||
67 | } | ||
68 | |||
69 | public string DisplayName | ||
70 | { | ||
71 | get { return (string)this.Fields[6].Data; } | ||
72 | set { this.Fields[6].Data = value; } | ||
73 | } | ||
74 | |||
75 | public string Description | ||
76 | { | ||
77 | get { return (string)this.Fields[7].Data; } | ||
78 | set { this.Fields[7].Data = value; } | ||
79 | } | ||
80 | |||
81 | public bool EnableSignatureValidation | ||
82 | { | ||
83 | get { return (null != this.Fields[8].Data) && (1 == (int)this.Fields[8].Data); } | ||
84 | set { this.Fields[8].Data = value ? 1 : 0; } | ||
85 | } | ||
86 | |||
87 | public int FileSize | ||
88 | { | ||
89 | get { return (int)this.Fields[9].Data; } | ||
90 | set { this.Fields[9].Data = value; } | ||
91 | } | ||
92 | |||
93 | public string Version | ||
94 | { | ||
95 | get { return (string)this.Fields[10].Data; } | ||
96 | set { this.Fields[10].Data = value; } | ||
97 | } | ||
98 | |||
99 | public string Hash | ||
100 | { | ||
101 | get { return (string)this.Fields[11].Data; } | ||
102 | set { this.Fields[11].Data = value; } | ||
103 | } | ||
104 | |||
105 | public string PublicKey | ||
106 | { | ||
107 | get { return (string)this.Fields[12].Data; } | ||
108 | set { this.Fields[12].Data = value; } | ||
109 | } | ||
110 | |||
111 | public string Thumbprint | ||
112 | { | ||
113 | get { return (string)this.Fields[13].Data; } | ||
114 | set { this.Fields[13].Data = value; } | ||
115 | } | ||
116 | |||
117 | public string Catalog | ||
118 | { | ||
119 | get { return (string)this.Fields[14].Data; } | ||
120 | set { this.Fields[14].Data = value; } | ||
121 | } | ||
122 | |||
123 | public string Container | ||
124 | { | ||
125 | get { return (string)this.Fields[15].Data; } | ||
126 | set { this.Fields[15].Data = value; } | ||
127 | } | ||
128 | |||
129 | public string Package | ||
130 | { | ||
131 | get { return (string)this.Fields[16].Data; } | ||
132 | set { this.Fields[16].Data = value; } | ||
133 | } | ||
134 | |||
135 | public bool ContentFile | ||
136 | { | ||
137 | get { return (null != this.Fields[17].Data) && (1 == (int)this.Fields[17].Data); } | ||
138 | set { this.Fields[17].Data = value ? 1 : 0; } | ||
139 | } | ||
140 | |||
141 | public string EmbeddedId | ||
142 | { | ||
143 | get { return (string)this.Fields[18].Data; } | ||
144 | set { this.Fields[18].Data = value; } | ||
145 | } | ||
146 | |||
147 | public bool LayoutOnly | ||
148 | { | ||
149 | get { return (null != this.Fields[19].Data) && (1 == (int)this.Fields[19].Data); } | ||
150 | set { this.Fields[19].Data = value ? 1 : 0; } | ||
151 | } | ||
152 | |||
153 | public PackagingType Packaging | ||
154 | { | ||
155 | get | ||
156 | { | ||
157 | object data = this.Fields[20].Data; | ||
158 | return (null == data) ? PackagingType.Unknown : (PackagingType)data; | ||
159 | } | ||
160 | |||
161 | set | ||
162 | { | ||
163 | if (PackagingType.Unknown == value) | ||
164 | { | ||
165 | this.Fields[20].Data = null; | ||
166 | } | ||
167 | else | ||
168 | { | ||
169 | this.Fields[20].Data = (int)value; | ||
170 | } | ||
171 | } | ||
172 | } | ||
173 | |||
174 | public string ParentPackagePayload | ||
175 | { | ||
176 | get { return (string)this.Fields[21].Data; } | ||
177 | set { this.Fields[21].Data = value; } | ||
178 | } | ||
179 | |||
180 | public string FullFileName | ||
181 | { | ||
182 | get { return String.IsNullOrEmpty(this.SourceFile) ? String.Empty : Path.GetFullPath(this.SourceFile); } | ||
183 | } | ||
184 | } | ||
185 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs b/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs deleted file mode 100644 index ea9ff99e..00000000 --- a/src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs +++ /dev/null | |||
@@ -1,87 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the RelatedPackage table. | ||
7 | /// </summary> | ||
8 | public class WixBundleRelatedPackageRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a RelatedPackageRow row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a RelatedPackageRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleRelatedPackageRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | public string Id | ||
40 | { | ||
41 | get { return (string)this.Fields[1].Data; } | ||
42 | set { this.Fields[1].Data = value; } | ||
43 | } | ||
44 | |||
45 | public string MinVersion | ||
46 | { | ||
47 | get { return (string)this.Fields[2].Data; } | ||
48 | set { this.Fields[2].Data = value; } | ||
49 | } | ||
50 | |||
51 | public string MaxVersion | ||
52 | { | ||
53 | get { return (string)this.Fields[3].Data; } | ||
54 | set { this.Fields[3].Data = value; } | ||
55 | } | ||
56 | |||
57 | public string Languages | ||
58 | { | ||
59 | get { return (string)this.Fields[4].Data; } | ||
60 | set { this.Fields[4].Data = value; } | ||
61 | } | ||
62 | |||
63 | public bool MinInclusive | ||
64 | { | ||
65 | get { return 1 == (int)this.Fields[5].Data; } | ||
66 | set { this.Fields[5].Data = value ? 1 : 0; } | ||
67 | } | ||
68 | |||
69 | public bool MaxInclusive | ||
70 | { | ||
71 | get { return 1 == (int)this.Fields[6].Data; } | ||
72 | set { this.Fields[6].Data = value ? 1 : 0; } | ||
73 | } | ||
74 | |||
75 | public bool LangInclusive | ||
76 | { | ||
77 | get { return 1 == (int)this.Fields[7].Data; } | ||
78 | set { this.Fields[7].Data = value ? 1 : 0; } | ||
79 | } | ||
80 | |||
81 | public bool OnlyDetect | ||
82 | { | ||
83 | get { return 1 == (int)this.Fields[8].Data; } | ||
84 | set { this.Fields[8].Data = value ? 1 : 0; } | ||
85 | } | ||
86 | } | ||
87 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs b/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs deleted file mode 100644 index d0a994c0..00000000 --- a/src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs +++ /dev/null | |||
@@ -1,59 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixBundleRollbackBoundary table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleRollbackBoundaryRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixBundleRollbackBoundary row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a RollbackBoundaryRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleRollbackBoundaryRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets or sets whether the package is vital. | ||
41 | /// </summary> | ||
42 | /// <value>Vitality of the package.</value> | ||
43 | public YesNoType Vital | ||
44 | { | ||
45 | get { return (null == this.Fields[1].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[1].Data; } | ||
46 | set { this.Fields[1].Data = (int)value; } | ||
47 | } | ||
48 | |||
49 | /// <summary> | ||
50 | /// Gets or sets whether the rollback-boundary should be installed as an MSI transaction. | ||
51 | /// </summary> | ||
52 | /// <value>Vitality of the package.</value> | ||
53 | public YesNoType Transaction | ||
54 | { | ||
55 | get { return (null == this.Fields[2].Data) ? YesNoType.NotSet : (YesNoType)this.Fields[2].Data; } | ||
56 | set { this.Fields[2].Data = (int)value; } | ||
57 | } | ||
58 | } | ||
59 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleRow.cs b/src/WixToolset.Data/Rows/WixBundleRow.cs deleted file mode 100644 index 4c96d6cc..00000000 --- a/src/WixToolset.Data/Rows/WixBundleRow.cs +++ /dev/null | |||
@@ -1,228 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Bundle info for binding Bundles. | ||
9 | /// </summary> | ||
10 | public class WixBundleRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a WixBundleRow row that does not belong to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="tableDef">TableDefinition this WixBundleRow row belongs to and should get its column definitions from.</param> | ||
17 | public WixBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
18 | base(sourceLineNumbers, tableDef) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates a WixBundleRow row that belongs to a table. | ||
24 | /// </summary> | ||
25 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
26 | /// <param name="table">Table this WixBundleRow row belongs to and should get its column definitions from.</param> | ||
27 | public WixBundleRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
28 | base(sourceLineNumbers, table) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public string Version | ||
33 | { | ||
34 | get { return (string)this.Fields[0].Data; } | ||
35 | set { this.Fields[0].Data = value; } | ||
36 | } | ||
37 | |||
38 | public string Copyright | ||
39 | { | ||
40 | get { return (string)this.Fields[1].Data; } | ||
41 | set { this.Fields[1].Data = value; } | ||
42 | } | ||
43 | |||
44 | public string Name | ||
45 | { | ||
46 | get { return (string)this.Fields[2].Data; } | ||
47 | set { this.Fields[2].Data = value; } | ||
48 | } | ||
49 | |||
50 | public string AboutUrl | ||
51 | { | ||
52 | get { return (string)this.Fields[3].Data; } | ||
53 | set { this.Fields[3].Data = value; } | ||
54 | } | ||
55 | |||
56 | public int DisableModify | ||
57 | { | ||
58 | get { return (null == this.Fields[4].Data) ? 0 : (int)this.Fields[4].Data; } | ||
59 | set { this.Fields[4].Data = value; } | ||
60 | } | ||
61 | |||
62 | public bool DisableRemove | ||
63 | { | ||
64 | get { return (null != this.Fields[5].Data && 0 != (int)this.Fields[5].Data); } | ||
65 | set { this.Fields[5].Data = value ? 1 : 0; } | ||
66 | } | ||
67 | |||
68 | // There is no 6. It used to be DisableRepair. | ||
69 | |||
70 | public string HelpTelephone | ||
71 | { | ||
72 | get { return (string)this.Fields[7].Data; } | ||
73 | set { this.Fields[7].Data = value; } | ||
74 | } | ||
75 | |||
76 | public string HelpLink | ||
77 | { | ||
78 | get { return (string)this.Fields[8].Data; } | ||
79 | set { this.Fields[8].Data = value; } | ||
80 | } | ||
81 | |||
82 | public string Publisher | ||
83 | { | ||
84 | get { return (string)this.Fields[9].Data; } | ||
85 | set { this.Fields[9].Data = value; } | ||
86 | } | ||
87 | |||
88 | public string UpdateUrl | ||
89 | { | ||
90 | get { return (string)this.Fields[10].Data; } | ||
91 | set { this.Fields[10].Data = value; } | ||
92 | } | ||
93 | |||
94 | public YesNoDefaultType Compressed | ||
95 | { | ||
96 | get { return (null == this.Fields[11].Data) ? YesNoDefaultType.Default : (0 == (int)this.Fields[11].Data) ? YesNoDefaultType.No : YesNoDefaultType.Yes; } | ||
97 | set { this.Fields[11].Data = (int)value; } | ||
98 | } | ||
99 | |||
100 | public PackagingType DefaultPackagingType | ||
101 | { | ||
102 | get { return (YesNoDefaultType.No == this.Compressed) ? PackagingType.External : PackagingType.Embedded; } | ||
103 | } | ||
104 | |||
105 | public string LogPathPrefixExtension | ||
106 | { | ||
107 | get { return (string)this.Fields[12].Data ?? String.Empty; } | ||
108 | set { this.Fields[12].Data = value; } | ||
109 | } | ||
110 | |||
111 | public string LogPathVariable | ||
112 | { | ||
113 | get | ||
114 | { | ||
115 | string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); | ||
116 | return logVariableAndPrefixExtension[0]; | ||
117 | } | ||
118 | } | ||
119 | |||
120 | public string LogPrefix | ||
121 | { | ||
122 | get | ||
123 | { | ||
124 | string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); | ||
125 | if (2 > logVariableAndPrefixExtension.Length) | ||
126 | { | ||
127 | return String.Empty; | ||
128 | } | ||
129 | string logPrefixAndExtension = logVariableAndPrefixExtension[1]; | ||
130 | int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); | ||
131 | return logPrefixAndExtension.Substring(0, extensionIndex); | ||
132 | } | ||
133 | } | ||
134 | |||
135 | public string LogExtension | ||
136 | { | ||
137 | get | ||
138 | { | ||
139 | string[] logVariableAndPrefixExtension = this.LogPathPrefixExtension.Split(':'); | ||
140 | if (2 > logVariableAndPrefixExtension.Length) | ||
141 | { | ||
142 | return String.Empty; | ||
143 | } | ||
144 | string logPrefixAndExtension = logVariableAndPrefixExtension[1]; | ||
145 | int extensionIndex = logPrefixAndExtension.LastIndexOf('.'); | ||
146 | return logPrefixAndExtension.Substring(extensionIndex + 1); | ||
147 | } | ||
148 | } | ||
149 | |||
150 | public string IconPath | ||
151 | { | ||
152 | get { return (string)this.Fields[13].Data; } | ||
153 | set { this.Fields[13].Data = value; } | ||
154 | } | ||
155 | |||
156 | public string SplashScreenBitmapPath | ||
157 | { | ||
158 | get { return (string)this.Fields[14].Data; } | ||
159 | set { this.Fields[14].Data = value; } | ||
160 | } | ||
161 | |||
162 | public string Condition | ||
163 | { | ||
164 | get { return (string)this.Fields[15].Data; } | ||
165 | set { this.Fields[15].Data = value; } | ||
166 | } | ||
167 | |||
168 | public string Tag | ||
169 | { | ||
170 | get { return (string)this.Fields[16].Data; } | ||
171 | set { this.Fields[16].Data = value; } | ||
172 | } | ||
173 | |||
174 | public Platform Platform | ||
175 | { | ||
176 | get { return (Platform)Enum.Parse(typeof(Platform), (string)this.Fields[17].Data); } | ||
177 | set { this.Fields[17].Data = value.ToString(); } | ||
178 | } | ||
179 | |||
180 | public string ParentName | ||
181 | { | ||
182 | get { return (string)this.Fields[18].Data; } | ||
183 | set { this.Fields[18].Data = value; } | ||
184 | } | ||
185 | |||
186 | public string UpgradeCode | ||
187 | { | ||
188 | get { return (string)this.Fields[19].Data; } | ||
189 | set { this.Fields[19].Data = value; } | ||
190 | } | ||
191 | |||
192 | public Guid BundleId | ||
193 | { | ||
194 | get | ||
195 | { | ||
196 | if (null == this.Fields[20].Data) | ||
197 | { | ||
198 | this.Fields[20].Data = Guid.NewGuid().ToString("B"); | ||
199 | } | ||
200 | |||
201 | return new Guid((string)this.Fields[20].Data); | ||
202 | } | ||
203 | |||
204 | set { this.Fields[20].Data = value.ToString(); } | ||
205 | } | ||
206 | |||
207 | public string ProviderKey | ||
208 | { | ||
209 | get | ||
210 | { | ||
211 | if (null == this.Fields[21].Data) | ||
212 | { | ||
213 | this.Fields[21].Data = this.BundleId.ToString("B"); | ||
214 | } | ||
215 | |||
216 | return (string)this.Fields[21].Data; | ||
217 | } | ||
218 | |||
219 | set { this.Fields[21].Data = value; } | ||
220 | } | ||
221 | |||
222 | public bool PerMachine | ||
223 | { | ||
224 | get { return (null != this.Fields[22].Data && 0 != (int)this.Fields[22].Data); } | ||
225 | set { this.Fields[22].Data = value ? 1 : 0; } | ||
226 | } | ||
227 | } | ||
228 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs b/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs deleted file mode 100644 index d11b23ef..00000000 --- a/src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs +++ /dev/null | |||
@@ -1,48 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the SlipstreamMsp table. | ||
7 | /// </summary> | ||
8 | public class WixBundleSlipstreamMspRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a SlipstreamMspRow row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a SlipstreamMspRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleSlipstreamMspRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the foreign key identifier to the ChainPackage row. | ||
32 | /// </summary> | ||
33 | public string ChainPackageId | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets or sets the foreign key identifier to the ChainPackage row for the MSP package. | ||
41 | /// </summary> | ||
42 | public string MspPackageId | ||
43 | { | ||
44 | get { return (string)this.Fields[1].Data; } | ||
45 | set { this.Fields[1].Data = value; } | ||
46 | } | ||
47 | } | ||
48 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs b/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs deleted file mode 100644 index e0150685..00000000 --- a/src/WixToolset.Data/Rows/WixBundleUpdateRow.cs +++ /dev/null | |||
@@ -1,38 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Bundle update info for binding Bundles. | ||
9 | /// </summary> | ||
10 | public class WixBundleUpdateRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a WixBundleUpdateRow row that does not belong to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="tableDef">TableDefinition this WixBundleUpdateRow row belongs to and should get its column definitions from.</param> | ||
17 | public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
18 | base(sourceLineNumbers, tableDef) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates a WixBundleUpdateRow row that belongs to a table. | ||
24 | /// </summary> | ||
25 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
26 | /// <param name="table">Table this WixBundleUpdateRow row belongs to and should get its column definitions from.</param> | ||
27 | public WixBundleUpdateRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
28 | base(sourceLineNumbers, table) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public string Location | ||
33 | { | ||
34 | get { return (string)this.Fields[0].Data; } | ||
35 | set { this.Fields[0].Data = value; } | ||
36 | } | ||
37 | } | ||
38 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixBundleVariableRow.cs b/src/WixToolset.Data/Rows/WixBundleVariableRow.cs deleted file mode 100644 index e7ff1a4d..00000000 --- a/src/WixToolset.Data/Rows/WixBundleVariableRow.cs +++ /dev/null | |||
@@ -1,80 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the Variable table. | ||
7 | /// </summary> | ||
8 | public sealed class WixBundleVariableRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a Variable row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a Variable row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixBundleVariableRow(SourceLineNumber sourceLineNumbers, Table table) | ||
26 | : base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the variable identifier. | ||
32 | /// </summary> | ||
33 | /// <value>The variable identifier.</value> | ||
34 | public string Id | ||
35 | { | ||
36 | get { return (string)this.Fields[0].Data; } | ||
37 | set { this.Fields[0].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the variable's value. | ||
42 | /// </summary> | ||
43 | /// <value>The variable's value.</value> | ||
44 | public string Value | ||
45 | { | ||
46 | get { return (string)this.Fields[1].Data; } | ||
47 | set { this.Fields[1].Data = value; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets or sets the variable's type. | ||
52 | /// </summary> | ||
53 | /// <value>The variable's type.</value> | ||
54 | public string Type | ||
55 | { | ||
56 | get { return (string)this.Fields[2].Data; } | ||
57 | set { this.Fields[2].Data = value; } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets or sets whether this variable is hidden. | ||
62 | /// </summary> | ||
63 | /// <value>Whether this variable is hidden.</value> | ||
64 | public bool Hidden | ||
65 | { | ||
66 | get { return (null == this.Fields[3].Data || 0 == ((int)this.Fields[3].Data)) ? false : true; } | ||
67 | set { this.Fields[3].Data = value ? 1 : 0; } | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Gets or sets whether this variable is persisted. | ||
72 | /// </summary> | ||
73 | /// <value>Whether this variable is persisted.</value> | ||
74 | public bool Persisted | ||
75 | { | ||
76 | get { return (null == this.Fields[4].Data || 0 == ((int)this.Fields[4].Data)) ? false : true; } | ||
77 | set { this.Fields[4].Data = value ? 1 : 0; } | ||
78 | } | ||
79 | } | ||
80 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixChainAttributes.cs b/src/WixToolset.Data/Rows/WixChainAttributes.cs deleted file mode 100644 index 017505bc..00000000 --- a/src/WixToolset.Data/Rows/WixChainAttributes.cs +++ /dev/null | |||
@@ -1,15 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | [Flags] | ||
8 | public enum WixChainAttributes | ||
9 | { | ||
10 | None = 0x0, | ||
11 | DisableRollback = 0x1, | ||
12 | DisableSystemRestore = 0x2, | ||
13 | ParallelCache = 0x4, | ||
14 | } | ||
15 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixChainItemRow.cs b/src/WixToolset.Data/Rows/WixChainItemRow.cs deleted file mode 100644 index 12538d71..00000000 --- a/src/WixToolset.Data/Rows/WixChainItemRow.cs +++ /dev/null | |||
@@ -1,39 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixChainItem table. | ||
7 | /// </summary> | ||
8 | public sealed class WixChainItemRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixChainItem row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this ChainItem row belongs to and should get its column definitions from.</param> | ||
15 | public WixChainItemRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixChainItem row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this ChainItem row belongs to and should get its column definitions from.</param> | ||
25 | public WixChainItemRow(SourceLineNumber sourceLineNumbers, Table table) | ||
26 | : base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the WixChainItem identifier. | ||
32 | /// </summary> | ||
33 | public string Id | ||
34 | { | ||
35 | get { return (string)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | } | ||
39 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixChainRow.cs b/src/WixToolset.Data/Rows/WixChainRow.cs deleted file mode 100644 index 94600efa..00000000 --- a/src/WixToolset.Data/Rows/WixChainRow.cs +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixChain table. | ||
7 | /// </summary> | ||
8 | public sealed class WixChainRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixChain row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixChainRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixChainRow row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixChainRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the raw chain attributes. | ||
32 | /// </summary> | ||
33 | public WixChainAttributes Attributes | ||
34 | { | ||
35 | get { return (WixChainAttributes)this.Fields[0].Data; } | ||
36 | set { this.Fields[0].Data = value; } | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets the disable rollback state of a chain. | ||
41 | /// </summary> | ||
42 | public bool DisableRollback | ||
43 | { | ||
44 | get { return 0 != (this.Attributes & WixChainAttributes.DisableRollback); } | ||
45 | } | ||
46 | |||
47 | /// <summary> | ||
48 | /// Gets disable system restore state of a chain. | ||
49 | /// </summary> | ||
50 | public bool DisableSystemRestore | ||
51 | { | ||
52 | get { return 0 != (this.Attributes & WixChainAttributes.DisableSystemRestore); } | ||
53 | } | ||
54 | |||
55 | /// <summary> | ||
56 | /// Gets parallel cache of a chain. | ||
57 | /// </summary> | ||
58 | public bool ParallelCache | ||
59 | { | ||
60 | get { return 0 != (this.Attributes & WixChainAttributes.ParallelCache); } | ||
61 | } | ||
62 | } | ||
63 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs b/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs deleted file mode 100644 index b516c5e9..00000000 --- a/src/WixToolset.Data/Rows/WixComplexReferenceRow.cs +++ /dev/null | |||
@@ -1,208 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Diagnostics; | ||
7 | using System.Diagnostics.CodeAnalysis; | ||
8 | using System.Xml; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Specialization of a row for the WixComplexReference table. | ||
12 | /// </summary> | ||
13 | public sealed class WixComplexReferenceRow : Row, IComparable | ||
14 | { | ||
15 | /// <summary> | ||
16 | /// Creates a WixComplexReferenceRow row that belongs to a table. | ||
17 | /// </summary> | ||
18 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
19 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
20 | public WixComplexReferenceRow(SourceLineNumber sourceLineNumbers, Table table) | ||
21 | : base(sourceLineNumbers, table) | ||
22 | { | ||
23 | } | ||
24 | |||
25 | /// <summary> | ||
26 | /// Gets the parent type of the complex reference. | ||
27 | /// </summary> | ||
28 | /// <value>Parent type of the complex reference.</value> | ||
29 | public ComplexReferenceParentType ParentType | ||
30 | { | ||
31 | get { return (ComplexReferenceParentType)Enum.ToObject(typeof(ComplexReferenceParentType), (int)this.Fields[1].Data); } | ||
32 | set { this.Fields[1].Data = (int)value; } | ||
33 | } | ||
34 | |||
35 | /// <summary> | ||
36 | /// Gets or sets the parent identifier of the complex reference. | ||
37 | /// </summary> | ||
38 | /// <value>Parent identifier of the complex reference.</value> | ||
39 | public string ParentId | ||
40 | { | ||
41 | get { return (string)this.Fields[0].Data; } | ||
42 | set { this.Fields[0].Data = value; } | ||
43 | } | ||
44 | |||
45 | /// <summary> | ||
46 | /// Gets the parent language of the complex reference. | ||
47 | /// </summary> | ||
48 | /// <value>Parent language of the complex reference.</value> | ||
49 | public string ParentLanguage | ||
50 | { | ||
51 | get { return (string)this.Fields[2].Data; } | ||
52 | set { this.Fields[2].Data = value; } | ||
53 | } | ||
54 | |||
55 | /// <summary> | ||
56 | /// Gets the child type of the complex reference. | ||
57 | /// </summary> | ||
58 | /// <value>Child type of the complex reference.</value> | ||
59 | public ComplexReferenceChildType ChildType | ||
60 | { | ||
61 | get { return (ComplexReferenceChildType)Enum.ToObject(typeof(ComplexReferenceChildType), (int)this.Fields[4].Data); } | ||
62 | set { this.Fields[4].Data = (int)value; } | ||
63 | } | ||
64 | |||
65 | /// <summary> | ||
66 | /// Gets the child identifier of the complex reference. | ||
67 | /// </summary> | ||
68 | /// <value>Child identifier of the complex reference.</value> | ||
69 | public string ChildId | ||
70 | { | ||
71 | get { return (string)this.Fields[3].Data; } | ||
72 | set { this.Fields[3].Data = value; } | ||
73 | } | ||
74 | |||
75 | /// <summary> | ||
76 | /// Gets if this is the primary complex reference. | ||
77 | /// </summary> | ||
78 | /// <value>true if primary complex reference.</value> | ||
79 | public bool IsPrimary | ||
80 | { | ||
81 | get | ||
82 | { | ||
83 | return (0x1 == ((int)this.Fields[5].Data & 0x1)); | ||
84 | } | ||
85 | |||
86 | set | ||
87 | { | ||
88 | if (null == this.Fields[5].Data) | ||
89 | { | ||
90 | this.Fields[5].Data = 0; | ||
91 | } | ||
92 | |||
93 | if (value) | ||
94 | { | ||
95 | this.Fields[5].Data = (int)this.Fields[5].Data | 0x1; | ||
96 | } | ||
97 | else | ||
98 | { | ||
99 | this.Fields[5].Data = (int)this.Fields[5].Data & ~0x1; | ||
100 | } | ||
101 | } | ||
102 | } | ||
103 | |||
104 | /// <summary> | ||
105 | /// Determines if two complex references are equivalent. | ||
106 | /// </summary> | ||
107 | /// <param name="obj">Complex reference to compare.</param> | ||
108 | /// <returns>True if complex references are equivalent.</returns> | ||
109 | public override bool Equals(object obj) | ||
110 | { | ||
111 | return 0 == this.CompareTo(obj); | ||
112 | } | ||
113 | |||
114 | /// <summary> | ||
115 | /// Gets the hash code for the complex reference. | ||
116 | /// </summary> | ||
117 | /// <returns>Hash code for the complex reference.</returns> | ||
118 | public override int GetHashCode() | ||
119 | { | ||
120 | return this.ChildType.GetHashCode() ^ this.ChildId.GetHashCode() ^ this.ParentType.GetHashCode() ^ this.ParentLanguage.GetHashCode() ^ this.ParentId.GetHashCode() ^ this.IsPrimary.GetHashCode(); | ||
121 | } | ||
122 | |||
123 | /// <summary> | ||
124 | /// Compares two complex references. | ||
125 | /// </summary> | ||
126 | /// <param name="obj">Complex reference to compare to.</param> | ||
127 | /// <returns>Zero if the objects are equivalent, negative number if the provided object is less, positive if greater.</returns> | ||
128 | public int CompareTo(object obj) | ||
129 | { | ||
130 | int comparison = this.CompareToWithoutConsideringPrimary(obj); | ||
131 | if (0 == comparison) | ||
132 | { | ||
133 | comparison = ((WixComplexReferenceRow)obj).IsPrimary.CompareTo(this.IsPrimary); // Note: the order of these is purposely switched to ensure that "Yes" is lower than "No" and "NotSet" | ||
134 | } | ||
135 | return comparison; | ||
136 | } | ||
137 | |||
138 | /// <summary> | ||
139 | /// Compares two complex references without considering the primary bit. | ||
140 | /// </summary> | ||
141 | /// <param name="obj">Complex reference to compare to.</param> | ||
142 | /// <returns>Zero if the objects are equivalent, negative number if the provided object is less, positive if greater.</returns> | ||
143 | [SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "System.ArgumentException.#ctor(System.String,System.String)")] | ||
144 | public int CompareToWithoutConsideringPrimary(object obj) | ||
145 | { | ||
146 | WixComplexReferenceRow other = obj as WixComplexReferenceRow; | ||
147 | if (null == other) | ||
148 | { | ||
149 | throw new ArgumentException(WixDataStrings.EXP_ExpectedComplexReferenceType, "obj"); | ||
150 | } | ||
151 | |||
152 | int comparison = this.ChildType - other.ChildType; | ||
153 | if (0 == comparison) | ||
154 | { | ||
155 | comparison = String.Compare(this.ChildId, other.ChildId, StringComparison.Ordinal); | ||
156 | if (0 == comparison) | ||
157 | { | ||
158 | comparison = this.ParentType - other.ParentType; | ||
159 | if (0 == comparison) | ||
160 | { | ||
161 | string thisParentLanguage = null == this.ParentLanguage ? String.Empty : this.ParentLanguage; | ||
162 | string otherParentLanguage = null == other.ParentLanguage ? String.Empty : other.ParentLanguage; | ||
163 | comparison = String.Compare(thisParentLanguage, otherParentLanguage, StringComparison.Ordinal); | ||
164 | if (0 == comparison) | ||
165 | { | ||
166 | comparison = String.Compare(this.ParentId, other.ParentId, StringComparison.Ordinal); | ||
167 | } | ||
168 | } | ||
169 | } | ||
170 | } | ||
171 | |||
172 | return comparison; | ||
173 | } | ||
174 | |||
175 | /// <summary> | ||
176 | /// Creates a shallow copy of the ComplexReference. | ||
177 | /// </summary> | ||
178 | /// <returns>A shallow copy of the ComplexReference.</returns> | ||
179 | public WixComplexReferenceRow Clone() | ||
180 | { | ||
181 | WixComplexReferenceRow wixComplexReferenceRow = new WixComplexReferenceRow(this.SourceLineNumbers, this.Table); | ||
182 | wixComplexReferenceRow.ParentType = this.ParentType; | ||
183 | wixComplexReferenceRow.ParentId = this.ParentId; | ||
184 | wixComplexReferenceRow.ParentLanguage = this.ParentLanguage; | ||
185 | wixComplexReferenceRow.ChildType = this.ChildType; | ||
186 | wixComplexReferenceRow.ChildId = this.ChildId; | ||
187 | wixComplexReferenceRow.IsPrimary = this.IsPrimary; | ||
188 | |||
189 | return wixComplexReferenceRow; | ||
190 | } | ||
191 | |||
192 | /// <summary> | ||
193 | /// Changes all of the parent references to point to the passed in parent reference. | ||
194 | /// </summary> | ||
195 | /// <param name="parent">New parent complex reference.</param> | ||
196 | public void Reparent(WixComplexReferenceRow parent) | ||
197 | { | ||
198 | this.ParentId = parent.ParentId; | ||
199 | this.ParentLanguage = parent.ParentLanguage; | ||
200 | this.ParentType = parent.ParentType; | ||
201 | |||
202 | if (!this.IsPrimary) | ||
203 | { | ||
204 | this.IsPrimary = parent.IsPrimary; | ||
205 | } | ||
206 | } | ||
207 | } | ||
208 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs b/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs deleted file mode 100644 index 000779d9..00000000 --- a/src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs +++ /dev/null | |||
@@ -1,142 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixDeltaPatchFile table. | ||
7 | /// </summary> | ||
8 | public sealed class WixDeltaPatchFileRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixDeltaPatchFile row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixDeltaPatchFile row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this File row belongs to and should get its column definitions from.</param> | ||
25 | public WixDeltaPatchFileRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the primary key of the file row. | ||
32 | /// </summary> | ||
33 | /// <value>Primary key of the file row.</value> | ||
34 | public string File | ||
35 | { | ||
36 | get { return (string)this.Fields[0].Data; } | ||
37 | set { this.Fields[0].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the delta patch retain-length list for the file. | ||
42 | /// </summary> | ||
43 | /// <value>RetainLength list for the file.</value> | ||
44 | public string RetainLengths | ||
45 | { | ||
46 | get { return (string)this.Fields[1].Data; } | ||
47 | set { this.Fields[1].Data = value; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets or sets the previous delta patch retain-length list for the file. | ||
52 | /// </summary> | ||
53 | /// <value>Previous RetainLength list for the file.</value> | ||
54 | public string PreviousRetainLengths | ||
55 | { | ||
56 | get { return this.Fields[1].PreviousData; } | ||
57 | set { this.Fields[1].PreviousData = value; } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets or sets the delta patch ignore-offset list for the file. | ||
62 | /// </summary> | ||
63 | /// <value>IgnoreOffset list for the file.</value> | ||
64 | public string IgnoreOffsets | ||
65 | { | ||
66 | get { return (string)this.Fields[2].Data; } | ||
67 | set { this.Fields[2].Data = value; } | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Gets or sets the previous delta patch ignore-offset list for the file. | ||
72 | /// </summary> | ||
73 | /// <value>Previous IgnoreOffset list for the file.</value> | ||
74 | public string PreviousIgnoreOffsets | ||
75 | { | ||
76 | get { return this.Fields[2].PreviousData; } | ||
77 | set { this.Fields[2].PreviousData = value; } | ||
78 | } | ||
79 | |||
80 | /// <summary> | ||
81 | /// Gets or sets the delta patch ignore-length list for the file. | ||
82 | /// </summary> | ||
83 | /// <value>IgnoreLength list for the file.</value> | ||
84 | public string IgnoreLengths | ||
85 | { | ||
86 | get { return (string)this.Fields[3].Data; } | ||
87 | set { this.Fields[3].Data = value; } | ||
88 | } | ||
89 | |||
90 | /// <summary> | ||
91 | /// Gets or sets the previous delta patch ignore-length list for the file. | ||
92 | /// </summary> | ||
93 | /// <value>Previous IgnoreLength list for the file.</value> | ||
94 | public string PreviousIgnoreLengths | ||
95 | { | ||
96 | get { return this.Fields[3].PreviousData; } | ||
97 | set { this.Fields[3].PreviousData = value; } | ||
98 | } | ||
99 | |||
100 | /// <summary> | ||
101 | /// Gets or sets the delta patch retain-offset list for the file. | ||
102 | /// </summary> | ||
103 | /// <value>RetainOffset list for the file.</value> | ||
104 | public string RetainOffsets | ||
105 | { | ||
106 | get { return (string)this.Fields[4].Data; } | ||
107 | set { this.Fields[4].Data = value; } | ||
108 | } | ||
109 | |||
110 | /// <summary> | ||
111 | /// Gets or sets the previous delta patch retain-offset list for the file. | ||
112 | /// </summary> | ||
113 | /// <value>PreviousRetainOffset list for the file.</value> | ||
114 | public string PreviousRetainOffsets | ||
115 | { | ||
116 | get { return this.Fields[4].PreviousData; } | ||
117 | set { this.Fields[4].PreviousData = value; } | ||
118 | } | ||
119 | |||
120 | /// <summary> | ||
121 | /// Gets or sets the symbol paths for the file. | ||
122 | /// </summary> | ||
123 | /// <value>SymbolPath list for the file.</value> | ||
124 | /// <remarks>This is set during binding.</remarks> | ||
125 | public string Symbols | ||
126 | { | ||
127 | get { return (string)this.Fields[5].Data; } | ||
128 | set { this.Fields[5].Data = value; } | ||
129 | } | ||
130 | |||
131 | /// <summary> | ||
132 | /// Gets or sets the previous symbol paths for the file. | ||
133 | /// </summary> | ||
134 | /// <value>PreviousSymbolPath list for the file.</value> | ||
135 | /// <remarks>This is set during binding.</remarks> | ||
136 | public string PreviousSymbols | ||
137 | { | ||
138 | get { return (string)this.Fields[5].PreviousData; } | ||
139 | set { this.Fields[5].PreviousData = value; } | ||
140 | } | ||
141 | } | ||
142 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs b/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs deleted file mode 100644 index b6c0b840..00000000 --- a/src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs +++ /dev/null | |||
@@ -1,58 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixDeltaPatchSymbolPaths table. | ||
7 | /// </summary> | ||
8 | public sealed class WixDeltaPatchSymbolPathsRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixDeltaPatchSymbolPaths row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixDeltaPatchSymbolPaths row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixDeltaPatchSymbolPathsRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the identifier the symbol paths apply to. | ||
32 | /// </summary> | ||
33 | /// <value>RetainLength list for the file.</value> | ||
34 | public string Id | ||
35 | { | ||
36 | get { return (string)this.Fields[0].Data; } | ||
37 | set { this.Fields[0].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the type of the identifier. | ||
42 | /// </summary> | ||
43 | public SymbolPathType Type | ||
44 | { | ||
45 | get { return (SymbolPathType)this.Fields[1].AsInteger(); } | ||
46 | set { this.Fields[1].Data = value; } | ||
47 | } | ||
48 | |||
49 | /// <summary> | ||
50 | /// Gets or sets the delta patch symbol paths. | ||
51 | /// </summary> | ||
52 | public string SymbolPaths | ||
53 | { | ||
54 | get { return (string)this.Fields[2].Data; } | ||
55 | set { this.Fields[2].Data = value; } | ||
56 | } | ||
57 | } | ||
58 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixFileRow.cs b/src/WixToolset.Data/Rows/WixFileRow.cs deleted file mode 100644 index 52723f88..00000000 --- a/src/WixToolset.Data/Rows/WixFileRow.cs +++ /dev/null | |||
@@ -1,161 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixFile table. | ||
7 | /// </summary> | ||
8 | public sealed class WixFileRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixFile row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this row belongs to and should get its column definitions from.</param> | ||
15 | public WixFileRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixFile row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
25 | public WixFileRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the primary key of the file row. | ||
32 | /// </summary> | ||
33 | /// <value>Primary key of the file row.</value> | ||
34 | public string File | ||
35 | { | ||
36 | get { return (string)this.Fields[0].Data; } | ||
37 | set { this.Fields[0].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the assembly type of the file row. | ||
42 | /// </summary> | ||
43 | /// <value>Assembly type of the file row.</value> | ||
44 | public FileAssemblyType AssemblyType | ||
45 | { | ||
46 | get { return (null == this.Fields[1]) ? FileAssemblyType.NotAnAssembly : (FileAssemblyType)this.Fields[1].AsInteger(); } | ||
47 | set { this.Fields[1].Data = (int)value; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets or sets the identifier for the assembly manifest. | ||
52 | /// </summary> | ||
53 | /// <value>Identifier for the assembly manifest.</value> | ||
54 | public string AssemblyManifest | ||
55 | { | ||
56 | get { return (string)this.Fields[2].Data; } | ||
57 | set { this.Fields[2].Data = value; } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets or sets the application for the assembly. | ||
62 | /// </summary> | ||
63 | /// <value>Application for the assembly.</value> | ||
64 | public string AssemblyApplication | ||
65 | { | ||
66 | get { return (string)this.Fields[3].Data; } | ||
67 | set { this.Fields[3].Data = value; } | ||
68 | } | ||
69 | |||
70 | /// <summary> | ||
71 | /// Gets or sets the directory of the file. | ||
72 | /// </summary> | ||
73 | /// <value>Directory of the file.</value> | ||
74 | public string Directory | ||
75 | { | ||
76 | get { return (string)this.Fields[4].Data; } | ||
77 | set { this.Fields[4].Data = value; } | ||
78 | } | ||
79 | |||
80 | /// <summary> | ||
81 | /// Gets or sets the disk id for this file. | ||
82 | /// </summary> | ||
83 | /// <value>Disk id for the file.</value> | ||
84 | public int DiskId | ||
85 | { | ||
86 | get { return (int)this.Fields[5].Data; } | ||
87 | set { this.Fields[5].Data = value; } | ||
88 | } | ||
89 | |||
90 | /// <summary> | ||
91 | /// Gets or sets the source location to the file. | ||
92 | /// </summary> | ||
93 | /// <value>Source location to the file.</value> | ||
94 | public string Source | ||
95 | { | ||
96 | get { return (string)this.Fields[6].Data; } | ||
97 | set { this.Fields[6].Data = value; } | ||
98 | } | ||
99 | |||
100 | /// <summary> | ||
101 | /// Gets or sets the source location to the file. | ||
102 | /// </summary> | ||
103 | /// <value>Source location to the file.</value> | ||
104 | public string PreviousSource | ||
105 | { | ||
106 | get { return (string)this.Fields[6].PreviousData; } | ||
107 | set { this.Fields[6].PreviousData = value; } | ||
108 | } | ||
109 | |||
110 | /// <summary> | ||
111 | /// Gets or sets the architecture the file executes on. | ||
112 | /// </summary> | ||
113 | /// <value>Architecture the file executes on.</value> | ||
114 | public string ProcessorArchitecture | ||
115 | { | ||
116 | get { return (string)this.Fields[7].Data; } | ||
117 | set { this.Fields[7].Data = value; } | ||
118 | } | ||
119 | |||
120 | /// <summary> | ||
121 | /// Gets or sets the patch group of a patch-added file. | ||
122 | /// </summary> | ||
123 | /// <value>The patch group of a patch-added file.</value> | ||
124 | public int PatchGroup | ||
125 | { | ||
126 | get { return (null == this.Fields[8].Data) ? 0 : (int)this.Fields[8].Data; } | ||
127 | set { this.Fields[8].Data = value; } | ||
128 | } | ||
129 | |||
130 | /// <summary> | ||
131 | /// Gets or sets the attributes on a file. | ||
132 | /// </summary> | ||
133 | /// <value>Attributes on a file.</value> | ||
134 | public int Attributes | ||
135 | { | ||
136 | get { return (int)this.Fields[9].Data; } | ||
137 | set { this.Fields[9].Data = value; } | ||
138 | } | ||
139 | |||
140 | /// <summary> | ||
141 | /// Gets or sets the patching attributes to the file. | ||
142 | /// </summary> | ||
143 | /// <value>Patching attributes of the file.</value> | ||
144 | public PatchAttributeType PatchAttributes | ||
145 | { | ||
146 | get { return (PatchAttributeType)this.Fields[10].AsInteger(); } | ||
147 | set { this.Fields[10].Data = (int)value; } | ||
148 | } | ||
149 | |||
150 | /// <summary> | ||
151 | /// Gets or sets the path to the delta patch header. | ||
152 | /// </summary> | ||
153 | /// <value>Patch header path.</value> | ||
154 | /// <remarks>Set by the binder only when doing delta patching.</remarks> | ||
155 | public string DeltaPatchHeaderSource | ||
156 | { | ||
157 | get { return (string)this.Fields[11].Data; } | ||
158 | set { this.Fields[11].Data = value; } | ||
159 | } | ||
160 | } | ||
161 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixGroupRow.cs b/src/WixToolset.Data/Rows/WixGroupRow.cs deleted file mode 100644 index d36338d1..00000000 --- a/src/WixToolset.Data/Rows/WixGroupRow.cs +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Specialization of a row for the WixGroup table. | ||
9 | /// </summary> | ||
10 | public sealed class WixGroupRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a WixGroupRow row that belongs to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
17 | public WixGroupRow(SourceLineNumber sourceLineNumbers, Table table) | ||
18 | : base(sourceLineNumbers, table) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Gets or sets the parent identifier of the complex reference. | ||
24 | /// </summary> | ||
25 | /// <value>Parent identifier of the complex reference.</value> | ||
26 | public string ParentId | ||
27 | { | ||
28 | get { return (string)this.Fields[0].Data; } | ||
29 | set { this.Fields[0].Data = value; } | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets the parent type of the complex reference. | ||
34 | /// </summary> | ||
35 | /// <value>Parent type of the complex reference.</value> | ||
36 | public ComplexReferenceParentType ParentType | ||
37 | { | ||
38 | get { return (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[1].Data); } | ||
39 | set { this.Fields[1].Data = value.ToString(); } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets the child identifier of the complex reference. | ||
44 | /// </summary> | ||
45 | /// <value>Child identifier of the complex reference.</value> | ||
46 | public string ChildId | ||
47 | { | ||
48 | get { return (string)this.Fields[2].Data; } | ||
49 | set { this.Fields[2].Data = value; } | ||
50 | } | ||
51 | |||
52 | /// <summary> | ||
53 | /// Gets the child type of the complex reference. | ||
54 | /// </summary> | ||
55 | /// <value>Child type of the complex reference.</value> | ||
56 | public ComplexReferenceChildType ChildType | ||
57 | { | ||
58 | get { return (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[3].Data); } | ||
59 | set { this.Fields[3].Data = value.ToString(); } | ||
60 | } | ||
61 | } | ||
62 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixMediaRow.cs b/src/WixToolset.Data/Rows/WixMediaRow.cs deleted file mode 100644 index c1b3e155..00000000 --- a/src/WixToolset.Data/Rows/WixMediaRow.cs +++ /dev/null | |||
@@ -1,60 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the WixMedia table. | ||
7 | /// </summary> | ||
8 | public sealed class WixMediaRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a WixMedia row that does not belong to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="tableDef">TableDefinition this Media row belongs to and should get its column definitions from.</param> | ||
15 | public WixMediaRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
16 | base(sourceLineNumbers, tableDef) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Creates a WixMedia row that belongs to a table. | ||
22 | /// </summary> | ||
23 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
24 | /// <param name="table">Table this Media row belongs to and should get its column definitions from.</param> | ||
25 | public WixMediaRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
26 | base(sourceLineNumbers, table) | ||
27 | { | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the disk id for this media. | ||
32 | /// </summary> | ||
33 | /// <value>Disk id for the media.</value> | ||
34 | public int DiskId | ||
35 | { | ||
36 | get { return (int)this.Fields[0].Data; } | ||
37 | set { this.Fields[0].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the compression level for this media row. | ||
42 | /// </summary> | ||
43 | /// <value>Compression level.</value> | ||
44 | public CompressionLevel? CompressionLevel | ||
45 | { | ||
46 | get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } | ||
47 | set { this.Fields[1].Data = value; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Gets or sets the layout location for this media row. | ||
52 | /// </summary> | ||
53 | /// <value>Layout location to the root of the media.</value> | ||
54 | public string Layout | ||
55 | { | ||
56 | get { return (string)this.Fields[2].Data; } | ||
57 | set { this.Fields[2].Data = value; } | ||
58 | } | ||
59 | } | ||
60 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs b/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs deleted file mode 100644 index 27c5ccce..00000000 --- a/src/WixToolset.Data/Rows/WixMediaTemplateRow.cs +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | /// <summary> | ||
6 | /// Specialization of a row for the MediaTemplate table. | ||
7 | /// </summary> | ||
8 | public sealed class WixMediaTemplateRow : Row | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// Creates a MediaTemplate row that belongs to a table. | ||
12 | /// </summary> | ||
13 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
14 | /// <param name="table">Table this MediaTeplate row belongs to and should get its column definitions from.</param> | ||
15 | public WixMediaTemplateRow(SourceLineNumber sourceLineNumbers, Table table) | ||
16 | : base(sourceLineNumbers, table) | ||
17 | { | ||
18 | } | ||
19 | |||
20 | /// <summary> | ||
21 | /// Gets or sets the cabinet template name for this media template row. | ||
22 | /// </summary> | ||
23 | /// <value>Cabinet name.</value> | ||
24 | public string CabinetTemplate | ||
25 | { | ||
26 | get { return (string)this.Fields[0].Data; } | ||
27 | set { this.Fields[0].Data = value; } | ||
28 | } | ||
29 | |||
30 | /// <summary> | ||
31 | /// Gets or sets the compression level for this media template row. | ||
32 | /// </summary> | ||
33 | /// <value>Compression level.</value> | ||
34 | public CompressionLevel? CompressionLevel | ||
35 | { | ||
36 | get { return (CompressionLevel?)this.Fields[1].AsNullableInteger(); } | ||
37 | set { this.Fields[1].Data = value; } | ||
38 | } | ||
39 | |||
40 | /// <summary> | ||
41 | /// Gets or sets the disk prompt for this media template row. | ||
42 | /// </summary> | ||
43 | /// <value>Disk prompt.</value> | ||
44 | public string DiskPrompt | ||
45 | { | ||
46 | get { return (string)this.Fields[2].Data; } | ||
47 | set { this.Fields[2].Data = value; } | ||
48 | } | ||
49 | |||
50 | |||
51 | /// <summary> | ||
52 | /// Gets or sets the volume label for this media template row. | ||
53 | /// </summary> | ||
54 | /// <value>Volume label.</value> | ||
55 | public string VolumeLabel | ||
56 | { | ||
57 | get { return (string)this.Fields[3].Data; } | ||
58 | set { this.Fields[3].Data = value; } | ||
59 | } | ||
60 | |||
61 | /// <summary> | ||
62 | /// Gets or sets the maximum uncompressed media size for this media template row. | ||
63 | /// </summary> | ||
64 | /// <value>Disk id.</value> | ||
65 | public int MaximumUncompressedMediaSize | ||
66 | { | ||
67 | get { return (int)this.Fields[4].Data; } | ||
68 | set { this.Fields[4].Data = value; } | ||
69 | } | ||
70 | |||
71 | /// <summary> | ||
72 | /// Gets or sets the Maximum Cabinet Size For Large File Splitting for this media template row. | ||
73 | /// </summary> | ||
74 | /// <value>Disk id.</value> | ||
75 | public int MaximumCabinetSizeForLargeFileSplitting | ||
76 | { | ||
77 | get { return (int)this.Fields[5].Data; } | ||
78 | set { this.Fields[5].Data = value; } | ||
79 | } | ||
80 | } | ||
81 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixMergeRow.cs b/src/WixToolset.Data/Rows/WixMergeRow.cs deleted file mode 100644 index 54f2125c..00000000 --- a/src/WixToolset.Data/Rows/WixMergeRow.cs +++ /dev/null | |||
@@ -1,149 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Globalization; | ||
7 | using System.Text; | ||
8 | using System.Xml; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Specialization of a row for tracking merge statements. | ||
12 | /// </summary> | ||
13 | public sealed class WixMergeRow : Row | ||
14 | { | ||
15 | /// <summary> | ||
16 | /// Creates a Merge row that does not belong to a table. | ||
17 | /// </summary> | ||
18 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
19 | /// <param name="tableDef">TableDefinition this Merge row belongs to and should get its column definitions from.</param> | ||
20 | public WixMergeRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
21 | base(sourceLineNumbers, tableDef) | ||
22 | { | ||
23 | } | ||
24 | |||
25 | /// <summary>Creates a Merge row that belongs to a table.</summary> | ||
26 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
27 | /// <param name="table">Table this Merge row belongs to and should get its column definitions from.</param> | ||
28 | public WixMergeRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
29 | base(sourceLineNumbers, table) | ||
30 | { | ||
31 | } | ||
32 | |||
33 | /// <summary> | ||
34 | /// Gets and sets the id for a merge row. | ||
35 | /// </summary> | ||
36 | /// <value>Id for the row.</value> | ||
37 | public string Id | ||
38 | { | ||
39 | get { return (string)this.Fields[0].Data; } | ||
40 | set { this.Fields[0].Data = value; } | ||
41 | } | ||
42 | |||
43 | /// <summary> | ||
44 | /// Gets and sets the language for a merge row. | ||
45 | /// </summary> | ||
46 | /// <value>Language for the row.</value> | ||
47 | public string Language | ||
48 | { | ||
49 | get { return (string)this.Fields[1].Data; } | ||
50 | set { this.Fields[1].Data = value; } | ||
51 | } | ||
52 | |||
53 | /// <summary> | ||
54 | /// Gets and sets the directory for a merge row. | ||
55 | /// </summary> | ||
56 | /// <value>Direcotory for the row.</value> | ||
57 | public string Directory | ||
58 | { | ||
59 | get { return (string)this.Fields[2].Data; } | ||
60 | set { this.Fields[2].Data = value; } | ||
61 | } | ||
62 | |||
63 | /// <summary> | ||
64 | /// Gets and sets the path to the merge module for a merge row. | ||
65 | /// </summary> | ||
66 | /// <value>Source path for the row.</value> | ||
67 | public string SourceFile | ||
68 | { | ||
69 | get { return (string)this.Fields[3].Data; } | ||
70 | set { this.Fields[3].Data = value; } | ||
71 | } | ||
72 | |||
73 | /// <summary> | ||
74 | /// Gets and sets the disk id the merge module should be placed on for a merge row. | ||
75 | /// </summary> | ||
76 | /// <value>Disk identifier for row.</value> | ||
77 | public int DiskId | ||
78 | { | ||
79 | get { return (int)this.Fields[4].Data; } | ||
80 | set { this.Fields[4].Data = value; } | ||
81 | } | ||
82 | |||
83 | /// <summary> | ||
84 | /// Gets and sets the compression value for a merge row. | ||
85 | /// </summary> | ||
86 | /// <value>Compression for a merge row.</value> | ||
87 | public YesNoType FileCompression | ||
88 | { | ||
89 | get | ||
90 | { | ||
91 | if (null == this.Fields[5].Data) | ||
92 | { | ||
93 | return YesNoType.NotSet; | ||
94 | } | ||
95 | else if (1 == (int)this.Fields[5].Data) | ||
96 | { | ||
97 | return YesNoType.Yes; | ||
98 | } | ||
99 | else if (0 == (int)this.Fields[5].Data) | ||
100 | { | ||
101 | return YesNoType.No; | ||
102 | } | ||
103 | else | ||
104 | { | ||
105 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_MergeTableFileCompressionColumnContainsInvalidValue, this.Fields[5].Data)); | ||
106 | } | ||
107 | } | ||
108 | set | ||
109 | { | ||
110 | if (YesNoType.Yes == value) | ||
111 | { | ||
112 | this.Fields[5].Data = 1; | ||
113 | } | ||
114 | else if (YesNoType.No == value) | ||
115 | { | ||
116 | this.Fields[5].Data = 0; | ||
117 | } | ||
118 | else if (YesNoType.NotSet == value) | ||
119 | { | ||
120 | this.Fields[5].Data = null; | ||
121 | } | ||
122 | else | ||
123 | { | ||
124 | throw new InvalidOperationException(String.Format(CultureInfo.CurrentUICulture, WixDataStrings.EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue, value)); | ||
125 | } | ||
126 | } | ||
127 | } | ||
128 | |||
129 | /// <summary> | ||
130 | /// Gets and sets the configuration data for a merge row. | ||
131 | /// </summary> | ||
132 | /// <value>Comma delimited string of "name=value" pairs.</value> | ||
133 | public string ConfigurationData | ||
134 | { | ||
135 | get { return (string)this.Fields[6].Data; } | ||
136 | set { this.Fields[6].Data = value; } | ||
137 | } | ||
138 | |||
139 | /// <summary> | ||
140 | /// Gets and sets the primary feature for a merge row. | ||
141 | /// </summary> | ||
142 | /// <value>The primary feature for a merge row.</value> | ||
143 | public string Feature | ||
144 | { | ||
145 | get { return (string)this.Fields[7].Data; } | ||
146 | set { this.Fields[7].Data = value; } | ||
147 | } | ||
148 | } | ||
149 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs b/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs deleted file mode 100644 index 2e5f53ad..00000000 --- a/src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
1 | //------------------------------------------------------------------------------------------------- | ||
2 | // <copyright file="WixPayloadPropertiesRow.cs" company="Outercurve Foundation"> | ||
3 | // Copyright (c) 2004, Outercurve Foundation. | ||
4 | // This software is released under Microsoft Reciprocal License (MS-RL). | ||
5 | // The license and further copyright text can be found in the file | ||
6 | // LICENSE.TXT at the root directory of the distribution. | ||
7 | // </copyright> | ||
8 | //------------------------------------------------------------------------------------------------- | ||
9 | |||
10 | namespace WixToolset.Data.Rows | ||
11 | { | ||
12 | using System; | ||
13 | |||
14 | /// <summary> | ||
15 | /// Specialization of a row for the WixPayloadProperties table. | ||
16 | /// </summary> | ||
17 | public class WixPayloadPropertiesRow : Row | ||
18 | { | ||
19 | /// <summary> | ||
20 | /// Creates a WixPayloadProperties row that does not belong to a table. | ||
21 | /// </summary> | ||
22 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
23 | /// <param name="tableDef">TableDefinition this WixPayloadProperties row belongs to and should get its column definitions from.</param> | ||
24 | public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
25 | base(sourceLineNumbers, tableDef) | ||
26 | { | ||
27 | } | ||
28 | |||
29 | /// <summary> | ||
30 | /// Creates a WixPayloadProperties row that belongs to a table. | ||
31 | /// </summary> | ||
32 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
33 | /// <param name="table">Table this WixPayloadProperties row belongs to and should get its column definitions from.</param> | ||
34 | public WixPayloadPropertiesRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
35 | base(sourceLineNumbers, table) | ||
36 | { | ||
37 | } | ||
38 | |||
39 | public string Id | ||
40 | { | ||
41 | get { return (string)this.Fields[0].Data; } | ||
42 | set { this.Fields[0].Data = value; } | ||
43 | } | ||
44 | |||
45 | public string Package | ||
46 | { | ||
47 | get { return (string)this.Fields[1].Data; } | ||
48 | set { this.Fields[1].Data = value; } | ||
49 | } | ||
50 | |||
51 | public string Container | ||
52 | { | ||
53 | get { return (string)this.Fields[2].Data; } | ||
54 | set { this.Fields[2].Data = value; } | ||
55 | } | ||
56 | |||
57 | public string Name | ||
58 | { | ||
59 | get { return (string)this.Fields[3].Data; } | ||
60 | set { this.Fields[3].Data = value; } | ||
61 | } | ||
62 | |||
63 | public string Size | ||
64 | { | ||
65 | get { return (string)this.Fields[4].Data; } | ||
66 | set { this.Fields[4].Data = value; } | ||
67 | } | ||
68 | |||
69 | public string DownloadUrl | ||
70 | { | ||
71 | get { return (string)this.Fields[5].Data; } | ||
72 | set { this.Fields[5].Data = value; } | ||
73 | } | ||
74 | |||
75 | public string LayoutOnly | ||
76 | { | ||
77 | get { return (string)this.Fields[6].Data; } | ||
78 | set { this.Fields[6].Data = value; } | ||
79 | } | ||
80 | } | ||
81 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixPropertyRow.cs b/src/WixToolset.Data/Rows/WixPropertyRow.cs deleted file mode 100644 index 5285195c..00000000 --- a/src/WixToolset.Data/Rows/WixPropertyRow.cs +++ /dev/null | |||
@@ -1,118 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Globalization; | ||
7 | |||
8 | /// <summary> | ||
9 | /// Specialization of a row for the WixProperty table. | ||
10 | /// </summary> | ||
11 | public sealed class WixPropertyRow : Row | ||
12 | { | ||
13 | /// <summary>Creates a WixProperty row that belongs to a table.</summary> | ||
14 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
15 | /// <param name="table">Table this WixProperty row belongs to and should get its column definitions from.</param> | ||
16 | public WixPropertyRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
17 | base(sourceLineNumbers, table) | ||
18 | { | ||
19 | } | ||
20 | |||
21 | /// <summary> | ||
22 | /// Gets and sets the id for this property row. | ||
23 | /// </summary> | ||
24 | /// <value>Id for the property.</value> | ||
25 | public string Id | ||
26 | { | ||
27 | get { return (string)this.Fields[0].Data; } | ||
28 | set { this.Fields[0].Data = value; } | ||
29 | } | ||
30 | |||
31 | /// <summary> | ||
32 | /// Gets and sets if this is an admin property row. | ||
33 | /// </summary> | ||
34 | /// <value>Flag if this is an admin property.</value> | ||
35 | public bool Admin | ||
36 | { | ||
37 | get | ||
38 | { | ||
39 | return (0x1 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x1)); | ||
40 | } | ||
41 | |||
42 | set | ||
43 | { | ||
44 | if (null == this.Fields[1].Data) | ||
45 | { | ||
46 | this.Fields[1].Data = 0; | ||
47 | } | ||
48 | |||
49 | if (value) | ||
50 | { | ||
51 | this.Fields[1].Data = (int)this.Fields[1].Data | 0x1; | ||
52 | } | ||
53 | else | ||
54 | { | ||
55 | this.Fields[1].Data = (int)this.Fields[1].Data & ~0x1; | ||
56 | } | ||
57 | } | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Gets and sets if this is a hidden property row. | ||
62 | /// </summary> | ||
63 | /// <value>Flag if this is a hidden property.</value> | ||
64 | public bool Hidden | ||
65 | { | ||
66 | get | ||
67 | { | ||
68 | return (0x2 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x2)); | ||
69 | } | ||
70 | |||
71 | set | ||
72 | { | ||
73 | if (null == this.Fields[1].Data) | ||
74 | { | ||
75 | this.Fields[1].Data = 0; | ||
76 | } | ||
77 | |||
78 | if (value) | ||
79 | { | ||
80 | this.Fields[1].Data = (int)this.Fields[1].Data | 0x2; | ||
81 | } | ||
82 | else | ||
83 | { | ||
84 | this.Fields[1].Data = (int)this.Fields[1].Data & ~0x2; | ||
85 | } | ||
86 | } | ||
87 | } | ||
88 | |||
89 | /// <summary> | ||
90 | /// Gets and sets if this is a secure property row. | ||
91 | /// </summary> | ||
92 | /// <value>Flag if this is a secure property.</value> | ||
93 | public bool Secure | ||
94 | { | ||
95 | get | ||
96 | { | ||
97 | return (0x4 == (Convert.ToInt32(this.Fields[1].Data, CultureInfo.InvariantCulture) & 0x4)); | ||
98 | } | ||
99 | |||
100 | set | ||
101 | { | ||
102 | if (null == this.Fields[1].Data) | ||
103 | { | ||
104 | this.Fields[1].Data = 0; | ||
105 | } | ||
106 | |||
107 | if (value) | ||
108 | { | ||
109 | this.Fields[1].Data = (int)this.Fields[1].Data | 0x4; | ||
110 | } | ||
111 | else | ||
112 | { | ||
113 | this.Fields[1].Data = (int)this.Fields[1].Data & ~0x4; | ||
114 | } | ||
115 | } | ||
116 | } | ||
117 | } | ||
118 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs b/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs deleted file mode 100644 index 95fffde5..00000000 --- a/src/WixToolset.Data/Rows/WixRelatedBundleRow.cs +++ /dev/null | |||
@@ -1,52 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using Serialize = WixToolset.Data.Serialize; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Specialization of a row for the RelatedBundle table. | ||
9 | /// </summary> | ||
10 | public sealed class WixRelatedBundleRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a RelatedBundle row that does not belong to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="tableDef">TableDefinition this RelatedBundle row belongs to and should get its column definitions from.</param> | ||
17 | public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
18 | base(sourceLineNumbers, tableDef) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates a RelatedBundle row that belongs to a table. | ||
24 | /// </summary> | ||
25 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
26 | /// <param name="table">Table this RelatedBundle row belongs to and should get its column definitions from.</param> | ||
27 | public WixRelatedBundleRow(SourceLineNumber sourceLineNumbers, Table table) | ||
28 | : base(sourceLineNumbers, table) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets or sets the related bundle identifier. | ||
34 | /// </summary> | ||
35 | /// <value>The related bundle identifier.</value> | ||
36 | public string Id | ||
37 | { | ||
38 | get { return (string)this.Fields[0].Data; } | ||
39 | set { this.Fields[0].Data = value; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets or sets the related bundle action. | ||
44 | /// </summary> | ||
45 | /// <value>The related bundle action.</value> | ||
46 | public Serialize.RelatedBundle.ActionType Action | ||
47 | { | ||
48 | get { return (Serialize.RelatedBundle.ActionType)this.Fields[1].Data; } | ||
49 | set { this.Fields[1].Data = (int)value; } | ||
50 | } | ||
51 | } | ||
52 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs b/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs deleted file mode 100644 index 3a2cf8f1..00000000 --- a/src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs +++ /dev/null | |||
@@ -1,63 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Diagnostics; | ||
7 | using System.Xml; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Specialization of a row for the WixSimpleReference table. | ||
11 | /// </summary> | ||
12 | public sealed class WixSimpleReferenceRow : Row | ||
13 | { | ||
14 | /// <summary> | ||
15 | /// Creates a WixSimpleReferenceRow that belongs to a table. | ||
16 | /// </summary> | ||
17 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
18 | /// <param name="table">Table this row belongs to and should get its column definitions from.</param> | ||
19 | public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, Table table) | ||
20 | : base(sourceLineNumbers, table) | ||
21 | { | ||
22 | } | ||
23 | |||
24 | /// <summary> | ||
25 | /// Creates a WixSimpleReferenceRow that belongs to a table. | ||
26 | /// </summary> | ||
27 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
28 | /// <param name="tableDefinitions">Table definitions for this row.</param> | ||
29 | public WixSimpleReferenceRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinitions) | ||
30 | : base(sourceLineNumbers, tableDefinitions) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | /// <summary> | ||
35 | /// Gets or sets the primary keys of the simple reference. | ||
36 | /// </summary> | ||
37 | /// <value>The primary keys of the simple reference.</value> | ||
38 | public string PrimaryKeys | ||
39 | { | ||
40 | get { return (string)this.Fields[1].Data; } | ||
41 | set { this.Fields[1].Data = value; } | ||
42 | } | ||
43 | |||
44 | /// <summary> | ||
45 | /// Gets the symbolic name. | ||
46 | /// </summary> | ||
47 | /// <value>Symbolic name.</value> | ||
48 | public string SymbolicName | ||
49 | { | ||
50 | get { return String.Concat(this.TableName, ":", this.PrimaryKeys); } | ||
51 | } | ||
52 | |||
53 | /// <summary> | ||
54 | /// Gets or sets the table name of the simple reference. | ||
55 | /// </summary> | ||
56 | /// <value>The table name of the simple reference.</value> | ||
57 | public string TableName | ||
58 | { | ||
59 | get { return (string)this.Fields[0].Data; } | ||
60 | set { this.Fields[0].Data = value; } | ||
61 | } | ||
62 | } | ||
63 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs b/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs deleted file mode 100644 index 8d86f970..00000000 --- a/src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs +++ /dev/null | |||
@@ -1,62 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Update registration information for Binding. | ||
9 | /// </summary> | ||
10 | public class WixUpdateRegistrationRow : Row | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Creates a WixUpdateRegistrationRow row that does not belong to a table. | ||
14 | /// </summary> | ||
15 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
16 | /// <param name="tableDef">TableDefinition this WixUpdateRegistrationRow row belongs to and should get its column definitions from.</param> | ||
17 | public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
18 | base(sourceLineNumbers, tableDef) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates a WixUpdateRegistrationRow row that belongs to a table. | ||
24 | /// </summary> | ||
25 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
26 | /// <param name="table">Table this WixUpdateRegistrationRow row belongs to and should get its column definitions from.</param> | ||
27 | public WixUpdateRegistrationRow(SourceLineNumber sourceLineNumbers, Table table) : | ||
28 | base(sourceLineNumbers, table) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public string Manufacturer | ||
33 | { | ||
34 | get { return (string)this.Fields[0].Data; } | ||
35 | set { this.Fields[0].Data = value; } | ||
36 | } | ||
37 | |||
38 | public string Department | ||
39 | { | ||
40 | get { return (string)this.Fields[1].Data; } | ||
41 | set { this.Fields[1].Data = value; } | ||
42 | } | ||
43 | |||
44 | public string ProductFamily | ||
45 | { | ||
46 | get { return (string)this.Fields[2].Data; } | ||
47 | set { this.Fields[2].Data = value; } | ||
48 | } | ||
49 | |||
50 | public string Name | ||
51 | { | ||
52 | get { return (string)this.Fields[3].Data; } | ||
53 | set { this.Fields[3].Data = value; } | ||
54 | } | ||
55 | |||
56 | public string Classification | ||
57 | { | ||
58 | get { return (string)this.Fields[4].Data; } | ||
59 | set { this.Fields[4].Data = value; } | ||
60 | } | ||
61 | } | ||
62 | } | ||
diff --git a/src/WixToolset.Data/Rows/WixVariableRow.cs b/src/WixToolset.Data/Rows/WixVariableRow.cs deleted file mode 100644 index 241c9257..00000000 --- a/src/WixToolset.Data/Rows/WixVariableRow.cs +++ /dev/null | |||
@@ -1,81 +0,0 @@ | |||
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.Rows | ||
4 | { | ||
5 | using System; | ||
6 | using System.Globalization; | ||
7 | |||
8 | /// <summary> | ||
9 | /// Specialization of a row for the WixVariable table. | ||
10 | /// </summary> | ||
11 | public sealed class WixVariableRow : Row | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Creates a WixVariable row that does not belong to a table. | ||
15 | /// </summary> | ||
16 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
17 | /// <param name="tableDef">TableDefinition this WixVariable row belongs to and should get its column definitions from.</param> | ||
18 | public WixVariableRow(SourceLineNumber sourceLineNumbers, TableDefinition tableDef) : | ||
19 | base(sourceLineNumbers, tableDef) | ||
20 | { | ||
21 | } | ||
22 | |||
23 | /// <summary> | ||
24 | /// Creates a WixVariable row that belongs to a table. | ||
25 | /// </summary> | ||
26 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
27 | /// <param name="table">Table this WixVariable row belongs to and should get its column definitions from.</param> | ||
28 | public WixVariableRow(SourceLineNumber sourceLineNumbers, Table table) : base(sourceLineNumbers, table) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets or sets the variable identifier. | ||
34 | /// </summary> | ||
35 | /// <value>The variable identifier.</value> | ||
36 | public string Id | ||
37 | { | ||
38 | get { return (string)this.Fields[0].Data; } | ||
39 | set { this.Fields[0].Data = value; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Gets or sets the variable's value. | ||
44 | /// </summary> | ||
45 | /// <value>The variable's value.</value> | ||
46 | public string Value | ||
47 | { | ||
48 | get { return (string)this.Fields[1].Data; } | ||
49 | set { this.Fields[1].Data = value; } | ||
50 | } | ||
51 | |||
52 | /// <summary> | ||
53 | /// Gets or sets whether this variable is overridable. | ||
54 | /// </summary> | ||
55 | /// <value>Whether this variable is overridable.</value> | ||
56 | public bool Overridable | ||
57 | { | ||
58 | get | ||
59 | { | ||
60 | return (0x1 == (Convert.ToInt32(this.Fields[2].Data, CultureInfo.InvariantCulture) & 0x1)); | ||
61 | } | ||
62 | |||
63 | set | ||
64 | { | ||
65 | if (null == this.Fields[2].Data) | ||
66 | { | ||
67 | this.Fields[2].Data = 0; | ||
68 | } | ||
69 | |||
70 | if (value) | ||
71 | { | ||
72 | this.Fields[2].Data = (int)this.Fields[2].Data | 0x1; | ||
73 | } | ||
74 | else | ||
75 | { | ||
76 | this.Fields[2].Data = (int)this.Fields[2].Data & ~0x1; | ||
77 | } | ||
78 | } | ||
79 | } | ||
80 | } | ||
81 | } | ||
diff --git a/src/WixToolset.Data/Section.cs b/src/WixToolset.Data/Section.cs index 6757aa77..f9e19f3b 100644 --- a/src/WixToolset.Data/Section.cs +++ b/src/WixToolset.Data/Section.cs | |||
@@ -2,6 +2,7 @@ | |||
2 | 2 | ||
3 | namespace WixToolset.Data | 3 | namespace WixToolset.Data |
4 | { | 4 | { |
5 | #if false | ||
5 | using System; | 6 | using System; |
6 | using System.Collections.Generic; | 7 | using System.Collections.Generic; |
7 | using System.Diagnostics; | 8 | using System.Diagnostics; |
@@ -237,4 +238,5 @@ namespace WixToolset.Data | |||
237 | writer.WriteEndElement(); | 238 | writer.WriteEndElement(); |
238 | } | 239 | } |
239 | } | 240 | } |
241 | #endif | ||
240 | } | 242 | } |
diff --git a/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs new file mode 100644 index 00000000..b9d0b620 --- /dev/null +++ b/src/WixToolset.Data/SimpleTupleDefinitionCreator.cs | |||
@@ -0,0 +1,13 @@ | |||
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 | internal class SimpleTupleDefinitionCreator : ITupleDefinitionCreator | ||
6 | { | ||
7 | public bool TryGetTupleDefinitionByName(string name, out IntermediateTupleDefinition tupleDefinition) | ||
8 | { | ||
9 | tupleDefinition = TupleDefinitions.ByName(name); | ||
10 | return tupleDefinition != null; | ||
11 | } | ||
12 | } | ||
13 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/SubStorage.cs b/src/WixToolset.Data/SubStorage.cs deleted file mode 100644 index e136bfe9..00000000 --- a/src/WixToolset.Data/SubStorage.cs +++ /dev/null | |||
@@ -1,109 +0,0 @@ | |||
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 System.Xml; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Substorage inside an output. | ||
9 | /// </summary> | ||
10 | public sealed class SubStorage | ||
11 | { | ||
12 | /// <summary> | ||
13 | /// Instantiate a new substorage. | ||
14 | /// </summary> | ||
15 | /// <param name="name">The substorage name.</param> | ||
16 | /// <param name="data">The substorage data.</param> | ||
17 | public SubStorage(string name, Output data) | ||
18 | { | ||
19 | this.Name = name; | ||
20 | this.Data = data; | ||
21 | } | ||
22 | |||
23 | /// <summary> | ||
24 | /// Gets the substorage name. | ||
25 | /// </summary> | ||
26 | /// <value>The substorage name.</value> | ||
27 | public string Name { get; private set; } | ||
28 | |||
29 | /// <summary> | ||
30 | /// Gets the substorage data. | ||
31 | /// </summary> | ||
32 | /// <value>The substorage data.</value> | ||
33 | public Output Data { get; private set; } | ||
34 | |||
35 | /// <summary> | ||
36 | /// Creates a SubStorage from the XmlReader. | ||
37 | /// </summary> | ||
38 | /// <param name="reader">Reader to get data from.</param> | ||
39 | /// <returns>New SubStorage object.</returns> | ||
40 | internal static SubStorage Read(XmlReader reader) | ||
41 | { | ||
42 | if (!reader.LocalName.Equals("subStorage" == reader.LocalName)) | ||
43 | { | ||
44 | throw new XmlException(); | ||
45 | } | ||
46 | |||
47 | Output data = null; | ||
48 | bool empty = reader.IsEmptyElement; | ||
49 | string name = null; | ||
50 | |||
51 | while (reader.MoveToNextAttribute()) | ||
52 | { | ||
53 | switch (reader.LocalName) | ||
54 | { | ||
55 | case "name": | ||
56 | name = reader.Value; | ||
57 | break; | ||
58 | } | ||
59 | } | ||
60 | |||
61 | if (!empty) | ||
62 | { | ||
63 | bool done = false; | ||
64 | |||
65 | while (!done && reader.Read()) | ||
66 | { | ||
67 | switch (reader.NodeType) | ||
68 | { | ||
69 | case XmlNodeType.Element: | ||
70 | switch (reader.LocalName) | ||
71 | { | ||
72 | case "wixOutput": | ||
73 | data = Output.Read(reader, true); | ||
74 | break; | ||
75 | default: | ||
76 | throw new XmlException(); | ||
77 | } | ||
78 | break; | ||
79 | case XmlNodeType.EndElement: | ||
80 | done = true; | ||
81 | break; | ||
82 | } | ||
83 | } | ||
84 | |||
85 | if (!done) | ||
86 | { | ||
87 | throw new XmlException(); | ||
88 | } | ||
89 | } | ||
90 | |||
91 | return new SubStorage(name, data); | ||
92 | } | ||
93 | |||
94 | /// <summary> | ||
95 | /// Persists a SubStorage in an XML format. | ||
96 | /// </summary> | ||
97 | /// <param name="writer">XmlWriter where the SubStorage should persist itself as XML.</param> | ||
98 | internal void Write(XmlWriter writer) | ||
99 | { | ||
100 | writer.WriteStartElement("subStorage", Output.XmlNamespaceUri); | ||
101 | |||
102 | writer.WriteAttributeString("name", this.Name); | ||
103 | |||
104 | this.Data.Write(writer); | ||
105 | |||
106 | writer.WriteEndElement(); | ||
107 | } | ||
108 | } | ||
109 | } | ||
diff --git a/src/WixToolset.Data/Symbol.cs b/src/WixToolset.Data/Symbol.cs index a96f9382..df2b5aeb 100644 --- a/src/WixToolset.Data/Symbol.cs +++ b/src/WixToolset.Data/Symbol.cs | |||
@@ -18,17 +18,18 @@ namespace WixToolset.Data | |||
18 | /// Creates a symbol for a row. | 18 | /// Creates a symbol for a row. |
19 | /// </summary> | 19 | /// </summary> |
20 | /// <param name="row">Row for the symbol</param> | 20 | /// <param name="row">Row for the symbol</param> |
21 | public Symbol(Row row) | 21 | public Symbol(IntermediateSection section, IntermediateTuple tuple) |
22 | { | 22 | { |
23 | this.Row = row; | 23 | this.Row = tuple; |
24 | this.Name = String.Concat(this.Row.TableDefinition.Name, ":", this.Row.GetPrimaryKey()); | 24 | this.Section = section; |
25 | this.Name = String.Concat(this.Row.Definition.Name, ":", this.Row.Id.Id); | ||
25 | } | 26 | } |
26 | 27 | ||
27 | /// <summary> | 28 | /// <summary> |
28 | /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. | 29 | /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility. |
29 | /// </summary> | 30 | /// </summary> |
30 | /// <value>Accessbility of the symbol.</value> | 31 | /// <value>Accessbility of the symbol.</value> |
31 | public AccessModifier Access { get { return this.Row.Access; } } | 32 | public AccessModifier Access { get { return this.Row.Id.Access; } } |
32 | 33 | ||
33 | /// <summary> | 34 | /// <summary> |
34 | /// Gets the name of the symbol. | 35 | /// Gets the name of the symbol. |
@@ -40,13 +41,13 @@ namespace WixToolset.Data | |||
40 | /// Gets the row for this symbol. | 41 | /// Gets the row for this symbol. |
41 | /// </summary> | 42 | /// </summary> |
42 | /// <value>Row for this symbol.</value> | 43 | /// <value>Row for this symbol.</value> |
43 | public Row Row { get; private set; } | 44 | public IntermediateTuple Row { get; private set; } |
44 | 45 | ||
45 | /// <summary> | 46 | /// <summary> |
46 | /// Gets the section for the symbol. | 47 | /// Gets the section for the symbol. |
47 | /// </summary> | 48 | /// </summary> |
48 | /// <value>Section for the symbol.</value> | 49 | /// <value>Section for the symbol.</value> |
49 | public Section Section { get { return this.Row.Section; } } | 50 | public IntermediateSection Section { get; private set; } //{ get { return this.Row.Section; } } |
50 | 51 | ||
51 | /// <summary> | 52 | /// <summary> |
52 | /// Gets any duplicates of this symbol that are possible conflicts. | 53 | /// Gets any duplicates of this symbol that are possible conflicts. |
diff --git a/src/WixToolset.Data/Table.cs b/src/WixToolset.Data/Table.cs deleted file mode 100644 index 19a3a67d..00000000 --- a/src/WixToolset.Data/Table.cs +++ /dev/null | |||
@@ -1,446 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Diagnostics; | ||
8 | using System.Diagnostics.CodeAnalysis; | ||
9 | using System.Globalization; | ||
10 | using System.IO; | ||
11 | using System.Text; | ||
12 | using System.Xml; | ||
13 | using WixToolset.Data.Rows; | ||
14 | |||
15 | /// <summary> | ||
16 | /// Object that represents a table in a database. | ||
17 | /// </summary> | ||
18 | public sealed class Table | ||
19 | { | ||
20 | /// <summary> | ||
21 | /// Creates a table in a section. | ||
22 | /// </summary> | ||
23 | /// <param name="section">Section to add table to.</param> | ||
24 | /// <param name="tableDefinition">Definition of the table.</param> | ||
25 | public Table(Section section, TableDefinition tableDefinition) | ||
26 | { | ||
27 | this.Section = section; | ||
28 | this.Definition = tableDefinition; | ||
29 | this.Rows = new List<Row>(); | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// Gets the section for the table. | ||
34 | /// </summary> | ||
35 | /// <value>Section for the table.</value> | ||
36 | public Section Section { get; private set; } | ||
37 | |||
38 | /// <summary> | ||
39 | /// Gets the table definition. | ||
40 | /// </summary> | ||
41 | /// <value>Definition of the table.</value> | ||
42 | public TableDefinition Definition { get; private set; } | ||
43 | |||
44 | /// <summary> | ||
45 | /// Gets the name of the table. | ||
46 | /// </summary> | ||
47 | /// <value>Name of the table.</value> | ||
48 | public string Name | ||
49 | { | ||
50 | get { return this.Definition.Name; } | ||
51 | } | ||
52 | |||
53 | /// <summary> | ||
54 | /// Gets or sets the table transform operation. | ||
55 | /// </summary> | ||
56 | /// <value>The table transform operation.</value> | ||
57 | public TableOperation Operation { get; set; } | ||
58 | |||
59 | /// <summary> | ||
60 | /// Gets the rows contained in the table. | ||
61 | /// </summary> | ||
62 | /// <value>Rows contained in the table.</value> | ||
63 | public IList<Row> Rows { get; private set; } | ||
64 | |||
65 | /// <summary> | ||
66 | /// Creates a new row in the table. | ||
67 | /// </summary> | ||
68 | /// <param name="sourceLineNumbers">Original source lines for this row.</param> | ||
69 | /// <param name="add">Specifies whether to only create the row or add it to the table automatically.</param> | ||
70 | /// <returns>Row created in table.</returns> | ||
71 | public Row CreateRow(SourceLineNumber sourceLineNumbers, bool add = true) | ||
72 | { | ||
73 | Row row; | ||
74 | |||
75 | switch (this.Name) | ||
76 | { | ||
77 | case "BBControl": | ||
78 | row = new BBControlRow(sourceLineNumbers, this); | ||
79 | break; | ||
80 | case "WixBundlePackage": | ||
81 | row = new WixBundlePackageRow(sourceLineNumbers, this); | ||
82 | break; | ||
83 | case "WixBundleExePackage": | ||
84 | row = new WixBundleExePackageRow(sourceLineNumbers, this); | ||
85 | break; | ||
86 | case "WixBundleMsiPackage": | ||
87 | row = new WixBundleMsiPackageRow(sourceLineNumbers, this); | ||
88 | break; | ||
89 | case "WixBundleMspPackage": | ||
90 | row = new WixBundleMspPackageRow(sourceLineNumbers, this); | ||
91 | break; | ||
92 | case "WixBundleMsuPackage": | ||
93 | row = new WixBundleMsuPackageRow(sourceLineNumbers, this); | ||
94 | break; | ||
95 | case "Component": | ||
96 | row = new ComponentRow(sourceLineNumbers, this); | ||
97 | break; | ||
98 | case "WixBundleContainer": | ||
99 | row = new WixBundleContainerRow(sourceLineNumbers, this); | ||
100 | break; | ||
101 | case "Control": | ||
102 | row = new ControlRow(sourceLineNumbers, this); | ||
103 | break; | ||
104 | case "File": | ||
105 | row = new FileRow(sourceLineNumbers, this); | ||
106 | break; | ||
107 | case "WixBundleMsiFeature": | ||
108 | row = new WixBundleMsiFeatureRow(sourceLineNumbers, this); | ||
109 | break; | ||
110 | case "WixBundleMsiProperty": | ||
111 | row = new WixBundleMsiPropertyRow(sourceLineNumbers, this); | ||
112 | break; | ||
113 | case "Media": | ||
114 | row = new MediaRow(sourceLineNumbers, this); | ||
115 | break; | ||
116 | case "WixBundlePayload": | ||
117 | row = new WixBundlePayloadRow(sourceLineNumbers, this); | ||
118 | break; | ||
119 | case "Property": | ||
120 | row = new PropertyRow(sourceLineNumbers, this); | ||
121 | break; | ||
122 | case "WixRelatedBundle": | ||
123 | row = new WixRelatedBundleRow(sourceLineNumbers, this); | ||
124 | break; | ||
125 | case "WixBundleRelatedPackage": | ||
126 | row = new WixBundleRelatedPackageRow(sourceLineNumbers, this); | ||
127 | break; | ||
128 | case "WixBundleRollbackBoundary": | ||
129 | row = new WixBundleRollbackBoundaryRow(sourceLineNumbers, this); | ||
130 | break; | ||
131 | case "Upgrade": | ||
132 | row = new UpgradeRow(sourceLineNumbers, this); | ||
133 | break; | ||
134 | case "WixBundleVariable": | ||
135 | row = new WixBundleVariableRow(sourceLineNumbers, this); | ||
136 | break; | ||
137 | case "WixAction": | ||
138 | row = new WixActionRow(sourceLineNumbers, this); | ||
139 | break; | ||
140 | case "WixApprovedExeForElevation": | ||
141 | row = new WixApprovedExeForElevationRow(sourceLineNumbers, this); | ||
142 | break; | ||
143 | case "WixBundle": | ||
144 | row = new WixBundleRow(sourceLineNumbers, this); | ||
145 | break; | ||
146 | case "WixBundlePackageExitCode": | ||
147 | row = new WixBundlePackageExitCodeRow(sourceLineNumbers, this); | ||
148 | break; | ||
149 | case "WixBundlePatchTargetCode": | ||
150 | row = new WixBundlePatchTargetCodeRow(sourceLineNumbers, this); | ||
151 | break; | ||
152 | case "WixBundleSlipstreamMsp": | ||
153 | row = new WixBundleSlipstreamMspRow(sourceLineNumbers, this); | ||
154 | break; | ||
155 | case "WixBundleUpdate": | ||
156 | row = new WixBundleUpdateRow(sourceLineNumbers, this); | ||
157 | break; | ||
158 | case "WixBundleCatalog": | ||
159 | row = new WixBundleCatalogRow(sourceLineNumbers, this); | ||
160 | break; | ||
161 | case "WixChain": | ||
162 | row = new WixChainRow(sourceLineNumbers, this); | ||
163 | break; | ||
164 | case "WixChainItem": | ||
165 | row = new WixChainItemRow(sourceLineNumbers, this); | ||
166 | break; | ||
167 | case "WixBundlePackageCommandLine": | ||
168 | row = new WixBundlePackageCommandLineRow(sourceLineNumbers, this); | ||
169 | break; | ||
170 | case "WixComplexReference": | ||
171 | row = new WixComplexReferenceRow(sourceLineNumbers, this); | ||
172 | break; | ||
173 | case "WixDeltaPatchFile": | ||
174 | row = new WixDeltaPatchFileRow(sourceLineNumbers, this); | ||
175 | break; | ||
176 | case "WixDeltaPatchSymbolPaths": | ||
177 | row = new WixDeltaPatchSymbolPathsRow(sourceLineNumbers, this); | ||
178 | break; | ||
179 | case "WixFile": | ||
180 | row = new WixFileRow(sourceLineNumbers, this); | ||
181 | break; | ||
182 | case "WixGroup": | ||
183 | row = new WixGroupRow(sourceLineNumbers, this); | ||
184 | break; | ||
185 | case "WixMedia": | ||
186 | row = new WixMediaRow(sourceLineNumbers, this); | ||
187 | break; | ||
188 | case "WixMediaTemplate": | ||
189 | row = new WixMediaTemplateRow(sourceLineNumbers, this); | ||
190 | break; | ||
191 | case "WixMerge": | ||
192 | row = new WixMergeRow(sourceLineNumbers, this); | ||
193 | break; | ||
194 | case "WixPayloadProperties": | ||
195 | row = new WixPayloadPropertiesRow(sourceLineNumbers, this); | ||
196 | break; | ||
197 | case "WixProperty": | ||
198 | row = new WixPropertyRow(sourceLineNumbers, this); | ||
199 | break; | ||
200 | case "WixSimpleReference": | ||
201 | row = new WixSimpleReferenceRow(sourceLineNumbers, this); | ||
202 | break; | ||
203 | case "WixUpdateRegistration": | ||
204 | row = new WixUpdateRegistrationRow(sourceLineNumbers, this); | ||
205 | break; | ||
206 | case "WixVariable": | ||
207 | row = new WixVariableRow(sourceLineNumbers, this); | ||
208 | break; | ||
209 | |||
210 | default: | ||
211 | row = new Row(sourceLineNumbers, this); | ||
212 | break; | ||
213 | } | ||
214 | |||
215 | if (add) | ||
216 | { | ||
217 | this.Rows.Add(row); | ||
218 | } | ||
219 | |||
220 | return row; | ||
221 | } | ||
222 | |||
223 | /// <summary> | ||
224 | /// Parse a table from the xml. | ||
225 | /// </summary> | ||
226 | /// <param name="reader">XmlReader where the intermediate is persisted.</param> | ||
227 | /// <param name="section">Section to populate with persisted data.</param> | ||
228 | /// <param name="tableDefinitions">TableDefinitions to use in the intermediate.</param> | ||
229 | /// <returns>The parsed table.</returns> | ||
230 | internal static Table Read(XmlReader reader, Section section, TableDefinitionCollection tableDefinitions) | ||
231 | { | ||
232 | Debug.Assert("table" == reader.LocalName); | ||
233 | |||
234 | bool empty = reader.IsEmptyElement; | ||
235 | TableOperation operation = TableOperation.None; | ||
236 | string name = null; | ||
237 | |||
238 | while (reader.MoveToNextAttribute()) | ||
239 | { | ||
240 | switch (reader.LocalName) | ||
241 | { | ||
242 | case "name": | ||
243 | name = reader.Value; | ||
244 | break; | ||
245 | case "op": | ||
246 | switch (reader.Value) | ||
247 | { | ||
248 | case "add": | ||
249 | operation = TableOperation.Add; | ||
250 | break; | ||
251 | case "drop": | ||
252 | operation = TableOperation.Drop; | ||
253 | break; | ||
254 | default: | ||
255 | throw new XmlException(); | ||
256 | } | ||
257 | break; | ||
258 | } | ||
259 | } | ||
260 | |||
261 | if (null == name) | ||
262 | { | ||
263 | throw new XmlException(); | ||
264 | } | ||
265 | |||
266 | TableDefinition tableDefinition = tableDefinitions[name]; | ||
267 | Table table = new Table(section, tableDefinition); | ||
268 | table.Operation = operation; | ||
269 | |||
270 | if (!empty) | ||
271 | { | ||
272 | bool done = false; | ||
273 | |||
274 | // loop through all the rows in a table | ||
275 | while (!done && reader.Read()) | ||
276 | { | ||
277 | switch (reader.NodeType) | ||
278 | { | ||
279 | case XmlNodeType.Element: | ||
280 | switch (reader.LocalName) | ||
281 | { | ||
282 | case "row": | ||
283 | Row.Read(reader, table); | ||
284 | break; | ||
285 | default: | ||
286 | throw new XmlException(); | ||
287 | } | ||
288 | break; | ||
289 | case XmlNodeType.EndElement: | ||
290 | done = true; | ||
291 | break; | ||
292 | } | ||
293 | } | ||
294 | |||
295 | if (!done) | ||
296 | { | ||
297 | throw new XmlException(); | ||
298 | } | ||
299 | } | ||
300 | |||
301 | return table; | ||
302 | } | ||
303 | |||
304 | /// <summary> | ||
305 | /// Modularize the table. | ||
306 | /// </summary> | ||
307 | /// <param name="modularizationGuid">String containing the GUID of the Merge Module, if appropriate.</param> | ||
308 | /// <param name="suppressModularizationIdentifiers">Optional collection of identifiers that should not be modularized.</param> | ||
309 | public void Modularize(string modularizationGuid, ISet<string> suppressModularizationIdentifiers) | ||
310 | { | ||
311 | List<int> modularizedColumns = new List<int>(); | ||
312 | |||
313 | // find the modularized columns | ||
314 | for (int i = 0; i < this.Definition.Columns.Count; i++) | ||
315 | { | ||
316 | if (ColumnModularizeType.None != this.Definition.Columns[i].ModularizeType) | ||
317 | { | ||
318 | modularizedColumns.Add(i); | ||
319 | } | ||
320 | } | ||
321 | |||
322 | if (0 < modularizedColumns.Count) | ||
323 | { | ||
324 | foreach (Row row in this.Rows) | ||
325 | { | ||
326 | foreach (int modularizedColumn in modularizedColumns) | ||
327 | { | ||
328 | Field field = row.Fields[modularizedColumn]; | ||
329 | |||
330 | if (null != field.Data) | ||
331 | { | ||
332 | field.Data = row.GetModularizedValue(field, modularizationGuid, suppressModularizationIdentifiers); | ||
333 | } | ||
334 | } | ||
335 | } | ||
336 | } | ||
337 | } | ||
338 | |||
339 | /// <summary> | ||
340 | /// Persists a row in an XML format. | ||
341 | /// </summary> | ||
342 | /// <param name="writer">XmlWriter where the Row should persist itself as XML.</param> | ||
343 | [SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Justification = "Changing the way this string normalizes would result " + | ||
344 | "in a change to the way the intermediate files are generated, potentially causing extra churn in patches on an MSI built from an older version of WiX. " + | ||
345 | "Furthermore, there is no security hole here, as the strings won't need to make a round trip")] | ||
346 | internal void Write(XmlWriter writer) | ||
347 | { | ||
348 | if (null == writer) | ||
349 | { | ||
350 | throw new ArgumentNullException("writer"); | ||
351 | } | ||
352 | |||
353 | writer.WriteStartElement("table", Intermediate.XmlNamespaceUri); | ||
354 | writer.WriteAttributeString("name", this.Name); | ||
355 | |||
356 | if (TableOperation.None != this.Operation) | ||
357 | { | ||
358 | writer.WriteAttributeString("op", this.Operation.ToString().ToLowerInvariant()); | ||
359 | } | ||
360 | |||
361 | foreach (Row row in this.Rows) | ||
362 | { | ||
363 | row.Write(writer); | ||
364 | } | ||
365 | |||
366 | writer.WriteEndElement(); | ||
367 | } | ||
368 | |||
369 | /// <summary> | ||
370 | /// Writes the table in IDT format to the provided stream. | ||
371 | /// </summary> | ||
372 | /// <param name="writer">Stream to write the table to.</param> | ||
373 | /// <param name="keepAddedColumns">Whether to keep columns added in a transform.</param> | ||
374 | public void ToIdtDefinition(StreamWriter writer, bool keepAddedColumns) | ||
375 | { | ||
376 | if (this.Definition.Unreal) | ||
377 | { | ||
378 | return; | ||
379 | } | ||
380 | |||
381 | if (TableDefinition.MaxColumnsInRealTable < this.Definition.Columns.Count) | ||
382 | { | ||
383 | throw new WixException(WixDataErrors.TooManyColumnsInRealTable(this.Definition.Name, this.Definition.Columns.Count, TableDefinition.MaxColumnsInRealTable)); | ||
384 | } | ||
385 | |||
386 | // Tack on the table header, and flush before we start writing bytes directly to the stream. | ||
387 | writer.Write(this.Definition.ToIdtDefinition(keepAddedColumns)); | ||
388 | writer.Flush(); | ||
389 | |||
390 | using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(writer.BaseStream)) | ||
391 | using (BufferedStream buffStream = new BufferedStream(wrapper)) | ||
392 | { | ||
393 | // Create an encoding that replaces characters with question marks, and doesn't throw. We'll | ||
394 | // use this in case of errors | ||
395 | Encoding convertEncoding = Encoding.GetEncoding(writer.Encoding.CodePage); | ||
396 | |||
397 | foreach (Row row in this.Rows) | ||
398 | { | ||
399 | if (row.Redundant) | ||
400 | { | ||
401 | continue; | ||
402 | } | ||
403 | |||
404 | string rowString = row.ToIdtDefinition(keepAddedColumns); | ||
405 | byte[] rowBytes; | ||
406 | |||
407 | try | ||
408 | { | ||
409 | // GetBytes will throw an exception if any character doesn't match our current encoding | ||
410 | rowBytes = writer.Encoding.GetBytes(rowString); | ||
411 | } | ||
412 | catch (EncoderFallbackException) | ||
413 | { | ||
414 | Messaging.Instance.OnMessage(WixDataErrors.InvalidStringForCodepage(row.SourceLineNumbers, Convert.ToString(writer.Encoding.WindowsCodePage, CultureInfo.InvariantCulture))); | ||
415 | |||
416 | rowBytes = convertEncoding.GetBytes(rowString); | ||
417 | } | ||
418 | |||
419 | buffStream.Write(rowBytes, 0, rowBytes.Length); | ||
420 | } | ||
421 | } | ||
422 | } | ||
423 | |||
424 | /// <summary> | ||
425 | /// Validates the rows of this OutputTable and throws if it collides on | ||
426 | /// primary keys. | ||
427 | /// </summary> | ||
428 | public void ValidateRows() | ||
429 | { | ||
430 | Dictionary<string, SourceLineNumber> primaryKeys = new Dictionary<string, SourceLineNumber>(); | ||
431 | |||
432 | foreach (Row row in this.Rows) | ||
433 | { | ||
434 | string primaryKey = row.GetPrimaryKey(); | ||
435 | |||
436 | SourceLineNumber collisionSourceLineNumber; | ||
437 | if (primaryKeys.TryGetValue(primaryKey, out collisionSourceLineNumber)) | ||
438 | { | ||
439 | throw new WixException(WixDataErrors.DuplicatePrimaryKey(collisionSourceLineNumber, primaryKey, this.Definition.Name)); | ||
440 | } | ||
441 | |||
442 | primaryKeys.Add(primaryKey, row.SourceLineNumbers); | ||
443 | } | ||
444 | } | ||
445 | } | ||
446 | } | ||
diff --git a/src/WixToolset.Data/TableDefinition.cs b/src/WixToolset.Data/TableDefinition.cs deleted file mode 100644 index 40aaac84..00000000 --- a/src/WixToolset.Data/TableDefinition.cs +++ /dev/null | |||
@@ -1,334 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Collections.ObjectModel; | ||
8 | using System.Text; | ||
9 | using System.Xml; | ||
10 | |||
11 | /// <summary> | ||
12 | /// Definition of a table in a database. | ||
13 | /// </summary> | ||
14 | public sealed class TableDefinition : IComparable<TableDefinition> | ||
15 | { | ||
16 | /// <summary> | ||
17 | /// Tracks the maximum number of columns supported in a real table. | ||
18 | /// This is a Windows Installer limitation. | ||
19 | /// </summary> | ||
20 | public const int MaxColumnsInRealTable = 32; | ||
21 | |||
22 | /// <summary> | ||
23 | /// Creates a table definition. | ||
24 | /// </summary> | ||
25 | /// <param name="name">Name of table to create.</param> | ||
26 | /// <param name="createSymbols">Flag if rows in this table create symbols.</param> | ||
27 | /// <param name="unreal">Flag if table is unreal.</param> | ||
28 | /// <param name="bootstrapperApplicationData">Flag if table is part of UX Manifest.</param> | ||
29 | public TableDefinition(string name, IList<ColumnDefinition> columns, bool createSymbols, bool unreal, bool bootstrapperApplicationData = false) | ||
30 | { | ||
31 | this.Name = name; | ||
32 | this.CreateSymbols = createSymbols; | ||
33 | this.Unreal = unreal; | ||
34 | this.BootstrapperApplicationData = bootstrapperApplicationData; | ||
35 | |||
36 | this.Columns = new ReadOnlyCollection<ColumnDefinition>(columns); | ||
37 | } | ||
38 | |||
39 | /// <summary> | ||
40 | /// Gets if rows in this table create symbols. | ||
41 | /// </summary> | ||
42 | /// <value>Flag if rows in this table create symbols.</value> | ||
43 | public bool CreateSymbols { get; private set; } | ||
44 | |||
45 | /// <summary> | ||
46 | /// Gets the name of the table. | ||
47 | /// </summary> | ||
48 | /// <value>Name of the table.</value> | ||
49 | public string Name { get; private set; } | ||
50 | |||
51 | /// <summary> | ||
52 | /// Gets if the table is unreal. | ||
53 | /// </summary> | ||
54 | /// <value>Flag if table is unreal.</value> | ||
55 | public bool Unreal { get; private set; } | ||
56 | |||
57 | /// <summary> | ||
58 | /// Gets if the table is a part of the bootstrapper application data manifest. | ||
59 | /// </summary> | ||
60 | /// <value>Flag if table is a part of the bootstrapper application data manifest.</value> | ||
61 | public bool BootstrapperApplicationData { get; private set; } | ||
62 | |||
63 | /// <summary> | ||
64 | /// Gets the collection of column definitions for this table. | ||
65 | /// </summary> | ||
66 | /// <value>Collection of column definitions for this table.</value> | ||
67 | public IList<ColumnDefinition> Columns { get; private set; } | ||
68 | |||
69 | /// <summary> | ||
70 | /// Gets the column definition in the table by index. | ||
71 | /// </summary> | ||
72 | /// <param name="columnIndex">Index of column to locate.</param> | ||
73 | /// <value>Column definition in the table by index.</value> | ||
74 | public ColumnDefinition this[int columnIndex] | ||
75 | { | ||
76 | get { return this.Columns[columnIndex]; } | ||
77 | } | ||
78 | |||
79 | /// <summary> | ||
80 | /// Gets the table definition in IDT format. | ||
81 | /// </summary> | ||
82 | /// <param name="keepAddedColumns">Whether to keep columns added in a transform.</param> | ||
83 | /// <returns>Table definition in IDT format.</returns> | ||
84 | public string ToIdtDefinition(bool keepAddedColumns) | ||
85 | { | ||
86 | bool first = true; | ||
87 | StringBuilder columnString = new StringBuilder(); | ||
88 | StringBuilder dataString = new StringBuilder(); | ||
89 | StringBuilder tableString = new StringBuilder(); | ||
90 | |||
91 | tableString.Append(this.Name); | ||
92 | foreach (ColumnDefinition column in this.Columns) | ||
93 | { | ||
94 | // conditionally keep columns added in a transform; otherwise, | ||
95 | // break because columns can only be added at the end | ||
96 | if (column.Added && !keepAddedColumns) | ||
97 | { | ||
98 | break; | ||
99 | } | ||
100 | |||
101 | if (!first) | ||
102 | { | ||
103 | columnString.Append('\t'); | ||
104 | dataString.Append('\t'); | ||
105 | } | ||
106 | |||
107 | columnString.Append(column.Name); | ||
108 | dataString.Append(column.IdtType); | ||
109 | |||
110 | if (column.PrimaryKey) | ||
111 | { | ||
112 | tableString.AppendFormat("\t{0}", column.Name); | ||
113 | } | ||
114 | |||
115 | first = false; | ||
116 | } | ||
117 | columnString.Append("\r\n"); | ||
118 | columnString.Append(dataString); | ||
119 | columnString.Append("\r\n"); | ||
120 | columnString.Append(tableString); | ||
121 | columnString.Append("\r\n"); | ||
122 | |||
123 | return columnString.ToString(); | ||
124 | } | ||
125 | |||
126 | /// <summary> | ||
127 | /// Adds the validation rows to the _Validation table. | ||
128 | /// </summary> | ||
129 | /// <param name="validationTable">The _Validation table.</param> | ||
130 | public void AddValidationRows(Table validationTable) | ||
131 | { | ||
132 | foreach (ColumnDefinition columnDef in this.Columns) | ||
133 | { | ||
134 | Row row = validationTable.CreateRow(null); | ||
135 | |||
136 | row[0] = this.Name; | ||
137 | |||
138 | row[1] = columnDef.Name; | ||
139 | |||
140 | if (columnDef.Nullable) | ||
141 | { | ||
142 | row[2] = "Y"; | ||
143 | } | ||
144 | else | ||
145 | { | ||
146 | row[2] = "N"; | ||
147 | } | ||
148 | |||
149 | if (columnDef.IsMinValueSet) | ||
150 | { | ||
151 | row[3] = columnDef.MinValue; | ||
152 | } | ||
153 | |||
154 | if (columnDef.IsMaxValueSet) | ||
155 | { | ||
156 | row[4] = columnDef.MaxValue; | ||
157 | } | ||
158 | |||
159 | row[5] = columnDef.KeyTable; | ||
160 | |||
161 | if (columnDef.IsKeyColumnSet) | ||
162 | { | ||
163 | row[6] = columnDef.KeyColumn; | ||
164 | } | ||
165 | |||
166 | if (ColumnCategory.Unknown != columnDef.Category) | ||
167 | { | ||
168 | row[7] = columnDef.Category.ToString(); | ||
169 | } | ||
170 | |||
171 | row[8] = columnDef.Possibilities; | ||
172 | |||
173 | row[9] = columnDef.Description; | ||
174 | } | ||
175 | } | ||
176 | |||
177 | /// <summary> | ||
178 | /// Compares this table definition to another table definition. | ||
179 | /// </summary> | ||
180 | /// <remarks> | ||
181 | /// Only Windows Installer traits are compared, allowing for updates to WiX-specific table definitions. | ||
182 | /// </remarks> | ||
183 | /// <param name="updated">The updated <see cref="TableDefinition"/> to compare with this target definition.</param> | ||
184 | /// <returns>0 if the tables' core properties are the same; otherwise, non-0.</returns> | ||
185 | public int CompareTo(TableDefinition updated) | ||
186 | { | ||
187 | // by definition, this object is greater than null | ||
188 | if (null == updated) | ||
189 | { | ||
190 | return 1; | ||
191 | } | ||
192 | |||
193 | // compare the table names | ||
194 | int ret = String.Compare(this.Name, updated.Name, StringComparison.Ordinal); | ||
195 | |||
196 | // compare the column count | ||
197 | if (0 == ret) | ||
198 | { | ||
199 | // transforms can only add columns | ||
200 | ret = Math.Min(0, updated.Columns.Count - this.Columns.Count); | ||
201 | |||
202 | // compare name, type, and length of each column | ||
203 | for (int i = 0; 0 == ret && this.Columns.Count > i; i++) | ||
204 | { | ||
205 | ColumnDefinition thisColumnDef = this.Columns[i]; | ||
206 | ColumnDefinition updatedColumnDef = updated.Columns[i]; | ||
207 | |||
208 | ret = thisColumnDef.CompareTo(updatedColumnDef); | ||
209 | } | ||
210 | } | ||
211 | |||
212 | return ret; | ||
213 | } | ||
214 | |||
215 | /// <summary> | ||
216 | /// Parses table definition from xml reader. | ||
217 | /// </summary> | ||
218 | /// <param name="reader">Reader to get data from.</param> | ||
219 | /// <returns>The TableDefintion represented by the Xml.</returns> | ||
220 | internal static TableDefinition Read(XmlReader reader) | ||
221 | { | ||
222 | bool empty = reader.IsEmptyElement; | ||
223 | bool createSymbols = false; | ||
224 | string name = null; | ||
225 | bool unreal = false; | ||
226 | bool bootstrapperApplicationData = false; | ||
227 | |||
228 | while (reader.MoveToNextAttribute()) | ||
229 | { | ||
230 | switch (reader.LocalName) | ||
231 | { | ||
232 | case "createSymbols": | ||
233 | createSymbols = reader.Value.Equals("yes"); | ||
234 | break; | ||
235 | case "name": | ||
236 | name = reader.Value; | ||
237 | break; | ||
238 | case "unreal": | ||
239 | unreal = reader.Value.Equals("yes"); | ||
240 | break; | ||
241 | case "bootstrapperApplicationData": | ||
242 | bootstrapperApplicationData = reader.Value.Equals("yes"); | ||
243 | break; | ||
244 | } | ||
245 | } | ||
246 | |||
247 | if (null == name) | ||
248 | { | ||
249 | throw new XmlException(); | ||
250 | } | ||
251 | |||
252 | List<ColumnDefinition> columns = new List<ColumnDefinition>(); | ||
253 | bool hasPrimaryKeyColumn = false; | ||
254 | |||
255 | // parse the child elements | ||
256 | if (!empty) | ||
257 | { | ||
258 | bool done = false; | ||
259 | |||
260 | while (!done && reader.Read()) | ||
261 | { | ||
262 | switch (reader.NodeType) | ||
263 | { | ||
264 | case XmlNodeType.Element: | ||
265 | switch (reader.LocalName) | ||
266 | { | ||
267 | case "columnDefinition": | ||
268 | ColumnDefinition columnDefinition = ColumnDefinition.Read(reader); | ||
269 | columns.Add(columnDefinition); | ||
270 | |||
271 | if (columnDefinition.PrimaryKey) | ||
272 | { | ||
273 | hasPrimaryKeyColumn = true; | ||
274 | } | ||
275 | break; | ||
276 | default: | ||
277 | throw new XmlException(); | ||
278 | } | ||
279 | break; | ||
280 | case XmlNodeType.EndElement: | ||
281 | done = true; | ||
282 | break; | ||
283 | } | ||
284 | } | ||
285 | |||
286 | if (!unreal && !bootstrapperApplicationData && !hasPrimaryKeyColumn) | ||
287 | { | ||
288 | throw new WixException(WixDataErrors.RealTableMissingPrimaryKeyColumn(SourceLineNumber.CreateFromUri(reader.BaseURI), name)); | ||
289 | } | ||
290 | |||
291 | if (!done) | ||
292 | { | ||
293 | throw new XmlException(); | ||
294 | } | ||
295 | } | ||
296 | |||
297 | TableDefinition tableDefinition = new TableDefinition(name, columns, createSymbols, unreal, bootstrapperApplicationData); | ||
298 | return tableDefinition; | ||
299 | } | ||
300 | |||
301 | /// <summary> | ||
302 | /// Persists an output in an XML format. | ||
303 | /// </summary> | ||
304 | /// <param name="writer">XmlWriter where the Output should persist itself as XML.</param> | ||
305 | internal void Write(XmlWriter writer) | ||
306 | { | ||
307 | writer.WriteStartElement("tableDefinition", TableDefinitionCollection.XmlNamespaceUri); | ||
308 | |||
309 | writer.WriteAttributeString("name", this.Name); | ||
310 | |||
311 | if (this.CreateSymbols) | ||
312 | { | ||
313 | writer.WriteAttributeString("createSymbols", "yes"); | ||
314 | } | ||
315 | |||
316 | if (this.Unreal) | ||
317 | { | ||
318 | writer.WriteAttributeString("unreal", "yes"); | ||
319 | } | ||
320 | |||
321 | if (this.BootstrapperApplicationData) | ||
322 | { | ||
323 | writer.WriteAttributeString("bootstrapperApplicationData", "yes"); | ||
324 | } | ||
325 | |||
326 | foreach (ColumnDefinition columnDefinition in this.Columns) | ||
327 | { | ||
328 | columnDefinition.Write(writer); | ||
329 | } | ||
330 | |||
331 | writer.WriteEndElement(); | ||
332 | } | ||
333 | } | ||
334 | } | ||
diff --git a/src/WixToolset.Data/TableDefinitionCollection.cs b/src/WixToolset.Data/TableDefinitionCollection.cs deleted file mode 100644 index 553f0eaa..00000000 --- a/src/WixToolset.Data/TableDefinitionCollection.cs +++ /dev/null | |||
@@ -1,229 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections; | ||
7 | using System.Collections.Generic; | ||
8 | using System.Linq; | ||
9 | using System.Xml; | ||
10 | |||
11 | /// <summary> | ||
12 | /// Collection for table definitions indexed by table name. | ||
13 | /// </summary> | ||
14 | public sealed class TableDefinitionCollection : ICollection<TableDefinition> | ||
15 | { | ||
16 | public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wi/tables"; | ||
17 | |||
18 | private Dictionary<string, TableDefinition> collection; | ||
19 | |||
20 | /// <summary> | ||
21 | /// Instantiate a new TableDefinitionCollection class. | ||
22 | /// </summary> | ||
23 | public TableDefinitionCollection() | ||
24 | { | ||
25 | this.collection = new Dictionary<string,TableDefinition>(); | ||
26 | } | ||
27 | |||
28 | /// <summary> | ||
29 | /// Creates a shallow copy of the provided table definition collection. | ||
30 | /// </summary> | ||
31 | public TableDefinitionCollection(TableDefinitionCollection tableDefinitions) | ||
32 | { | ||
33 | this.collection = new Dictionary<string, TableDefinition>(tableDefinitions.collection); | ||
34 | } | ||
35 | |||
36 | /// <summary> | ||
37 | /// Gets the number of items in the collection. | ||
38 | /// </summary> | ||
39 | /// <value>Number of items in collection.</value> | ||
40 | public int Count | ||
41 | { | ||
42 | get { return this.collection.Count; } | ||
43 | } | ||
44 | |||
45 | /// <summary> | ||
46 | /// Table definition collections are never read-only. | ||
47 | /// </summary> | ||
48 | public bool IsReadOnly | ||
49 | { | ||
50 | get { return false; } | ||
51 | } | ||
52 | |||
53 | /// <summary> | ||
54 | /// Gets a table definition by name. | ||
55 | /// </summary> | ||
56 | /// <param name="tableName">Name of table to locate.</param> | ||
57 | public TableDefinition this[string tableName] | ||
58 | { | ||
59 | get | ||
60 | { | ||
61 | TableDefinition table; | ||
62 | if (!this.collection.TryGetValue(tableName, out table)) | ||
63 | { | ||
64 | throw new WixMissingTableDefinitionException(WixDataErrors.MissingTableDefinition(tableName)); | ||
65 | } | ||
66 | |||
67 | return table; | ||
68 | } | ||
69 | } | ||
70 | |||
71 | /// <summary> | ||
72 | /// Load a table definition collection from an XmlReader. | ||
73 | /// </summary> | ||
74 | /// <param name="reader">Reader to get data from.</param> | ||
75 | /// <param name="suppressSchema">Suppress xml schema validation while loading.</param> | ||
76 | /// <returns>The TableDefinitionCollection represented by the xml.</returns> | ||
77 | public static TableDefinitionCollection Load(XmlReader reader) | ||
78 | { | ||
79 | reader.MoveToContent(); | ||
80 | |||
81 | return Read(reader); | ||
82 | } | ||
83 | |||
84 | /// <summary> | ||
85 | /// Adds a table definition to the collection. | ||
86 | /// </summary> | ||
87 | /// <param name="tableDefinition">Table definition to add to the collection.</param> | ||
88 | /// <value>Indexes by table definition name.</value> | ||
89 | public void Add(TableDefinition tableDefinition) | ||
90 | { | ||
91 | this.collection.Add(tableDefinition.Name, tableDefinition); | ||
92 | } | ||
93 | |||
94 | /// <summary> | ||
95 | /// Removes all table definitions from the collection. | ||
96 | /// </summary> | ||
97 | public void Clear() | ||
98 | { | ||
99 | this.collection.Clear(); | ||
100 | } | ||
101 | |||
102 | /// <summary> | ||
103 | /// Checks if the collection contains a table name. | ||
104 | /// </summary> | ||
105 | /// <param name="tableName">The table to check in the collection.</param> | ||
106 | /// <returns>True if collection contains the table.</returns> | ||
107 | public bool Contains(string tableName) | ||
108 | { | ||
109 | return this.collection.ContainsKey(tableName); | ||
110 | } | ||
111 | |||
112 | /// <summary> | ||
113 | /// Checks if the collection contains a table. | ||
114 | /// </summary> | ||
115 | /// <param name="table">The table to check in the collection.</param> | ||
116 | /// <returns>True if collection contains the table.</returns> | ||
117 | public bool Contains(TableDefinition table) | ||
118 | { | ||
119 | return this.collection.ContainsKey(table.Name); | ||
120 | } | ||
121 | |||
122 | /// <summary> | ||
123 | /// Copies table definitions to an arry. | ||
124 | /// </summary> | ||
125 | /// <param name="array">Array to copy the table definitions to.</param> | ||
126 | /// <param name="index">Index in the array to start copying at.</param> | ||
127 | public void CopyTo(TableDefinition[] array, int index) | ||
128 | { | ||
129 | this.collection.Values.CopyTo(array, index); | ||
130 | } | ||
131 | |||
132 | /// <summary> | ||
133 | /// Removes a table definition from the collection. | ||
134 | /// </summary> | ||
135 | /// <param name="table">Table to remove from the collection.</param> | ||
136 | /// <returns>True if the table definition existed in the collection and was removed.</returns> | ||
137 | public bool Remove(TableDefinition table) | ||
138 | { | ||
139 | return this.collection.Remove(table.Name); | ||
140 | } | ||
141 | |||
142 | /// <summary> | ||
143 | /// Gets enumerator for the collection. | ||
144 | /// </summary> | ||
145 | /// <returns>Enumerator for the collection.</returns> | ||
146 | public IEnumerator<TableDefinition> GetEnumerator() | ||
147 | { | ||
148 | return this.collection.Values.GetEnumerator(); | ||
149 | } | ||
150 | |||
151 | /// <summary> | ||
152 | /// Gets the untyped enumerator for the collection. | ||
153 | /// </summary> | ||
154 | /// <returns>Untyped enumerator for the collection.</returns> | ||
155 | IEnumerator IEnumerable.GetEnumerator() | ||
156 | { | ||
157 | return this.collection.Values.GetEnumerator(); | ||
158 | } | ||
159 | |||
160 | /// <summary> | ||
161 | /// Loads a collection of table definitions from a XmlReader in memory. | ||
162 | /// </summary> | ||
163 | /// <param name="reader">Reader to get data from.</param> | ||
164 | /// <returns>The TableDefinitionCollection represented by the xml.</returns> | ||
165 | internal static TableDefinitionCollection Read(XmlReader reader) | ||
166 | { | ||
167 | if ("tableDefinitions" != reader.LocalName) | ||
168 | { | ||
169 | throw new XmlException(); | ||
170 | } | ||
171 | |||
172 | bool empty = reader.IsEmptyElement; | ||
173 | TableDefinitionCollection tableDefinitionCollection = new TableDefinitionCollection(); | ||
174 | |||
175 | while (reader.MoveToNextAttribute()) | ||
176 | { | ||
177 | } | ||
178 | |||
179 | // parse the child elements | ||
180 | if (!empty) | ||
181 | { | ||
182 | bool done = false; | ||
183 | |||
184 | while (!done && reader.Read()) | ||
185 | { | ||
186 | switch (reader.NodeType) | ||
187 | { | ||
188 | case XmlNodeType.Element: | ||
189 | switch (reader.LocalName) | ||
190 | { | ||
191 | case "tableDefinition": | ||
192 | tableDefinitionCollection.Add(TableDefinition.Read(reader)); | ||
193 | break; | ||
194 | default: | ||
195 | throw new XmlException(); | ||
196 | } | ||
197 | break; | ||
198 | case XmlNodeType.EndElement: | ||
199 | done = true; | ||
200 | break; | ||
201 | } | ||
202 | } | ||
203 | |||
204 | if (!done) | ||
205 | { | ||
206 | throw new XmlException(); | ||
207 | } | ||
208 | } | ||
209 | |||
210 | return tableDefinitionCollection; | ||
211 | } | ||
212 | |||
213 | /// <summary> | ||
214 | /// Persists a TableDefinitionCollection in an XML format. | ||
215 | /// </summary> | ||
216 | /// <param name="writer">XmlWriter where the TableDefinitionCollection should persist itself as XML.</param> | ||
217 | internal void Write(XmlWriter writer) | ||
218 | { | ||
219 | writer.WriteStartElement("tableDefinitions", XmlNamespaceUri); | ||
220 | |||
221 | foreach (TableDefinition tableDefinition in this.collection.Values.OrderBy(t => t.Name)) | ||
222 | { | ||
223 | tableDefinition.Write(writer); | ||
224 | } | ||
225 | |||
226 | writer.WriteEndElement(); | ||
227 | } | ||
228 | } | ||
229 | } | ||
diff --git a/src/WixToolset.Data/TableExtensions.cs b/src/WixToolset.Data/TableExtensions.cs deleted file mode 100644 index 1be64ffe..00000000 --- a/src/WixToolset.Data/TableExtensions.cs +++ /dev/null | |||
@@ -1,23 +0,0 @@ | |||
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 System.Collections.Generic; | ||
6 | using System.Linq; | ||
7 | |||
8 | /// <summary> | ||
9 | /// Methods that extend <see cref="Table"/>. | ||
10 | /// </summary> | ||
11 | public static class TableExtensions | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Gets the rows contained in the table as a particular row type. | ||
15 | /// </summary> | ||
16 | /// <param name="table">Table to get rows from.</param> | ||
17 | /// <remarks>If the <paramref name="table"/> is null, an empty enumerable will be returned.</remarks> | ||
18 | public static IEnumerable<T> RowsAs<T>(this Table table) where T : Row | ||
19 | { | ||
20 | return (null == table) ? Enumerable.Empty<T>() : table.Rows.Cast<T>(); | ||
21 | } | ||
22 | } | ||
23 | } | ||
diff --git a/src/WixToolset.Data/TableIndexedCollection.cs b/src/WixToolset.Data/TableIndexedCollection.cs deleted file mode 100644 index 9f85efff..00000000 --- a/src/WixToolset.Data/TableIndexedCollection.cs +++ /dev/null | |||
@@ -1,153 +0,0 @@ | |||
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 System; | ||
6 | using System.Collections.Generic; | ||
7 | using System.Linq; | ||
8 | |||
9 | /// <summary> | ||
10 | /// Collection for tables. | ||
11 | /// </summary> | ||
12 | public sealed class TableIndexedCollection : ICollection<Table> | ||
13 | { | ||
14 | private Dictionary<string, Table> collection; | ||
15 | |||
16 | /// <summary> | ||
17 | /// Instantiate a new empty collection. | ||
18 | /// </summary> | ||
19 | public TableIndexedCollection() | ||
20 | { | ||
21 | this.collection = new Dictionary<string,Table>(); | ||
22 | } | ||
23 | |||
24 | /// <summary> | ||
25 | /// Instantiate a new collection populated with a set of tables. | ||
26 | /// </summary> | ||
27 | /// <param name="tables">Set of tables.</param> | ||
28 | public TableIndexedCollection(IEnumerable<Table> tables) | ||
29 | { | ||
30 | this.collection = tables.ToDictionary(t => t.Name); | ||
31 | } | ||
32 | |||
33 | /// <summary> | ||
34 | /// Gets the number of items in the collection. | ||
35 | /// </summary> | ||
36 | /// <value>Number of items in collection.</value> | ||
37 | public int Count | ||
38 | { | ||
39 | get { return this.collection.Count; } | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Table indexed collection is never read only. | ||
44 | /// </summary> | ||
45 | public bool IsReadOnly | ||
46 | { | ||
47 | get { return false; } | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Adds a table to the collection. | ||
52 | /// </summary> | ||
53 | /// <param name="table">Table to add to the collection.</param> | ||
54 | /// <remarks>Indexes the table by name.</remarks> | ||
55 | public void Add(Table table) | ||
56 | { | ||
57 | this.collection.Add(table.Name, table); | ||
58 | } | ||
59 | |||
60 | /// <summary> | ||
61 | /// Clear the tables from the collection. | ||
62 | /// </summary> | ||
63 | public void Clear() | ||
64 | { | ||
65 | this.collection.Clear(); | ||
66 | } | ||
67 | |||
68 | /// <summary> | ||
69 | /// Determines if a table is in the collection. | ||
70 | /// </summary> | ||
71 | /// <param name="table">Table to check if it is in the collection.</param> | ||
72 | /// <returns>True if the table name is in the collection, otherwise false.</returns> | ||
73 | public bool Contains(Table table) | ||
74 | { | ||
75 | return this.collection.ContainsKey(table.Name); | ||
76 | } | ||
77 | |||
78 | /// <summary> | ||
79 | /// Copies the collection into an array. | ||
80 | /// </summary> | ||
81 | /// <param name="array">Array to copy the collection into.</param> | ||
82 | /// <param name="arrayIndex">Index to start copying from.</param> | ||
83 | public void CopyTo(Table[] array, int arrayIndex) | ||
84 | { | ||
85 | this.collection.Values.CopyTo(array, arrayIndex); | ||
86 | } | ||
87 | |||
88 | /// <summary> | ||
89 | /// Remove a table from the collection by name. | ||
90 | /// </summary> | ||
91 | /// <param name="tableName">Table name to remove from the collection.</param> | ||
92 | public void Remove(string tableName) | ||
93 | { | ||
94 | this.collection.Remove(tableName); | ||
95 | } | ||
96 | |||
97 | /// <summary> | ||
98 | /// Remove a table from the collection. | ||
99 | /// </summary> | ||
100 | /// <param name="table">Table with matching name to remove from the collection.</param> | ||
101 | public bool Remove(Table table) | ||
102 | { | ||
103 | return this.collection.Remove(table.Name); | ||
104 | } | ||
105 | |||
106 | /// <summary> | ||
107 | /// Gets an enumerator over the whole collection. | ||
108 | /// </summary> | ||
109 | /// <returns>Collection enumerator.</returns> | ||
110 | public IEnumerator<Table> GetEnumerator() | ||
111 | { | ||
112 | return this.collection.Values.GetEnumerator(); | ||
113 | } | ||
114 | |||
115 | /// <summary> | ||
116 | /// Gets an untyped enumerator over the whole collection. | ||
117 | /// </summary> | ||
118 | /// <returns>Untyped collection enumerator.</returns> | ||
119 | System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() | ||
120 | { | ||
121 | return this.collection.Values.GetEnumerator(); | ||
122 | } | ||
123 | |||
124 | /// <summary> | ||
125 | /// Gets a table by name. | ||
126 | /// </summary> | ||
127 | /// <param name="tableName">Name of table to locate.</param> | ||
128 | public Table this[string tableName] | ||
129 | { | ||
130 | get | ||
131 | { | ||
132 | Table table; | ||
133 | return this.collection.TryGetValue(tableName, out table) ? table : null; | ||
134 | } | ||
135 | |||
136 | set | ||
137 | { | ||
138 | this.collection[tableName] = value; | ||
139 | } | ||
140 | } | ||
141 | |||
142 | /// <summary> | ||
143 | /// Tries to find a table by name. | ||
144 | /// </summary> | ||
145 | /// <param name="tableName">Table name to locate.</param> | ||
146 | /// <param name="table">Found table.</param> | ||
147 | /// <returns>True if table with table name was found, otherwise false.</returns> | ||
148 | public bool TryGetTable(string tableName, out Table table) | ||
149 | { | ||
150 | return this.collection.TryGetValue(tableName, out table); | ||
151 | } | ||
152 | } | ||
153 | } | ||
diff --git a/src/WixToolset.Data/TableOperation.cs b/src/WixToolset.Data/TableOperation.cs deleted file mode 100644 index 8df44e73..00000000 --- a/src/WixToolset.Data/TableOperation.cs +++ /dev/null | |||
@@ -1,25 +0,0 @@ | |||
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 | /// <summary> | ||
6 | /// The table transform operations. | ||
7 | /// </summary> | ||
8 | public enum TableOperation | ||
9 | { | ||
10 | /// <summary> | ||
11 | /// No operation. | ||
12 | /// </summary> | ||
13 | None, | ||
14 | |||
15 | /// <summary> | ||
16 | /// Added table. | ||
17 | /// </summary> | ||
18 | Add, | ||
19 | |||
20 | /// <summary> | ||
21 | /// Dropped table. | ||
22 | /// </summary> | ||
23 | Drop, | ||
24 | } | ||
25 | } | ||
diff --git a/src/WixToolset.Data/Tuples/ActionTextTuple.cs b/src/WixToolset.Data/Tuples/ActionTextTuple.cs new file mode 100644 index 00000000..771a8b02 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ActionTextTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ActionText = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ActionText, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Description), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ActionTextTupleFields.Template), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(ActionTextTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum ActionTextTupleFields | ||
24 | { | ||
25 | Action, | ||
26 | Description, | ||
27 | Template, | ||
28 | } | ||
29 | |||
30 | public class ActionTextTuple : IntermediateTuple | ||
31 | { | ||
32 | public ActionTextTuple() : base(TupleDefinitions.ActionText, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public ActionTextTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ActionText, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[ActionTextTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Action | ||
43 | { | ||
44 | get => (string)this.Fields[(int)ActionTextTupleFields.Action]?.Value; | ||
45 | set => this.Set((int)ActionTextTupleFields.Action, value); | ||
46 | } | ||
47 | |||
48 | public string Description | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ActionTextTupleFields.Description]?.Value; | ||
51 | set => this.Set((int)ActionTextTupleFields.Description, value); | ||
52 | } | ||
53 | |||
54 | public string Template | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ActionTextTupleFields.Template]?.Value; | ||
57 | set => this.Set((int)ActionTextTupleFields.Template, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs new file mode 100644 index 00000000..25c717e0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition AdminExecuteSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.AdminExecuteSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(AdminExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(AdminExecuteSequenceTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum AdminExecuteSequenceTupleFields | ||
24 | { | ||
25 | Action, | ||
26 | Condition, | ||
27 | Sequence, | ||
28 | } | ||
29 | |||
30 | public class AdminExecuteSequenceTuple : IntermediateTuple | ||
31 | { | ||
32 | public AdminExecuteSequenceTuple() : base(TupleDefinitions.AdminExecuteSequence, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public AdminExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdminExecuteSequence, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[AdminExecuteSequenceTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Action | ||
43 | { | ||
44 | get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Action]?.Value; | ||
45 | set => this.Set((int)AdminExecuteSequenceTupleFields.Action, value); | ||
46 | } | ||
47 | |||
48 | public string Condition | ||
49 | { | ||
50 | get => (string)this.Fields[(int)AdminExecuteSequenceTupleFields.Condition]?.Value; | ||
51 | set => this.Set((int)AdminExecuteSequenceTupleFields.Condition, value); | ||
52 | } | ||
53 | |||
54 | public int Sequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)AdminExecuteSequenceTupleFields.Sequence]?.Value; | ||
57 | set => this.Set((int)AdminExecuteSequenceTupleFields.Sequence, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs new file mode 100644 index 00000000..d4681bb9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition AdminUISequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.AdminUISequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Condition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(AdminUISequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(AdminUISequenceTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum AdminUISequenceTupleFields | ||
24 | { | ||
25 | Action, | ||
26 | Condition, | ||
27 | Sequence, | ||
28 | } | ||
29 | |||
30 | public class AdminUISequenceTuple : IntermediateTuple | ||
31 | { | ||
32 | public AdminUISequenceTuple() : base(TupleDefinitions.AdminUISequence, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public AdminUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdminUISequence, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[AdminUISequenceTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Action | ||
43 | { | ||
44 | get => (string)this.Fields[(int)AdminUISequenceTupleFields.Action]?.Value; | ||
45 | set => this.Set((int)AdminUISequenceTupleFields.Action, value); | ||
46 | } | ||
47 | |||
48 | public string Condition | ||
49 | { | ||
50 | get => (string)this.Fields[(int)AdminUISequenceTupleFields.Condition]?.Value; | ||
51 | set => this.Set((int)AdminUISequenceTupleFields.Condition, value); | ||
52 | } | ||
53 | |||
54 | public int Sequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)AdminUISequenceTupleFields.Sequence]?.Value; | ||
57 | set => this.Set((int)AdminUISequenceTupleFields.Sequence, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs new file mode 100644 index 00000000..36a53af2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition AdvtExecuteSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.AdvtExecuteSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(AdvtExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(AdvtExecuteSequenceTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum AdvtExecuteSequenceTupleFields | ||
24 | { | ||
25 | Action, | ||
26 | Condition, | ||
27 | Sequence, | ||
28 | } | ||
29 | |||
30 | public class AdvtExecuteSequenceTuple : IntermediateTuple | ||
31 | { | ||
32 | public AdvtExecuteSequenceTuple() : base(TupleDefinitions.AdvtExecuteSequence, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public AdvtExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AdvtExecuteSequence, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[AdvtExecuteSequenceTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Action | ||
43 | { | ||
44 | get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Action]?.Value; | ||
45 | set => this.Set((int)AdvtExecuteSequenceTupleFields.Action, value); | ||
46 | } | ||
47 | |||
48 | public string Condition | ||
49 | { | ||
50 | get => (string)this.Fields[(int)AdvtExecuteSequenceTupleFields.Condition]?.Value; | ||
51 | set => this.Set((int)AdvtExecuteSequenceTupleFields.Condition, value); | ||
52 | } | ||
53 | |||
54 | public int Sequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)AdvtExecuteSequenceTupleFields.Sequence]?.Value; | ||
57 | set => this.Set((int)AdvtExecuteSequenceTupleFields.Sequence, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/AppIdTuple.cs b/src/WixToolset.Data/Tuples/AppIdTuple.cs new file mode 100644 index 00000000..7816e4c3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AppIdTuple.cs | |||
@@ -0,0 +1,92 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition AppId = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.AppId, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.AppId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.RemoteServerName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.LocalService), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.ServiceParameters), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.DllSurrogate), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.ActivateAtStorage), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(AppIdTupleFields.RunAsInteractiveUser), IntermediateFieldType.Number), | ||
20 | }, | ||
21 | typeof(AppIdTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | public enum AppIdTupleFields | ||
28 | { | ||
29 | AppId, | ||
30 | RemoteServerName, | ||
31 | LocalService, | ||
32 | ServiceParameters, | ||
33 | DllSurrogate, | ||
34 | ActivateAtStorage, | ||
35 | RunAsInteractiveUser, | ||
36 | } | ||
37 | |||
38 | public class AppIdTuple : IntermediateTuple | ||
39 | { | ||
40 | public AppIdTuple() : base(TupleDefinitions.AppId, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public AppIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AppId, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[AppIdTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string AppId | ||
51 | { | ||
52 | get => (string)this.Fields[(int)AppIdTupleFields.AppId]?.Value; | ||
53 | set => this.Set((int)AppIdTupleFields.AppId, value); | ||
54 | } | ||
55 | |||
56 | public string RemoteServerName | ||
57 | { | ||
58 | get => (string)this.Fields[(int)AppIdTupleFields.RemoteServerName]?.Value; | ||
59 | set => this.Set((int)AppIdTupleFields.RemoteServerName, value); | ||
60 | } | ||
61 | |||
62 | public string LocalService | ||
63 | { | ||
64 | get => (string)this.Fields[(int)AppIdTupleFields.LocalService]?.Value; | ||
65 | set => this.Set((int)AppIdTupleFields.LocalService, value); | ||
66 | } | ||
67 | |||
68 | public string ServiceParameters | ||
69 | { | ||
70 | get => (string)this.Fields[(int)AppIdTupleFields.ServiceParameters]?.Value; | ||
71 | set => this.Set((int)AppIdTupleFields.ServiceParameters, value); | ||
72 | } | ||
73 | |||
74 | public string DllSurrogate | ||
75 | { | ||
76 | get => (string)this.Fields[(int)AppIdTupleFields.DllSurrogate]?.Value; | ||
77 | set => this.Set((int)AppIdTupleFields.DllSurrogate, value); | ||
78 | } | ||
79 | |||
80 | public int ActivateAtStorage | ||
81 | { | ||
82 | get => (int)this.Fields[(int)AppIdTupleFields.ActivateAtStorage]?.Value; | ||
83 | set => this.Set((int)AppIdTupleFields.ActivateAtStorage, value); | ||
84 | } | ||
85 | |||
86 | public int RunAsInteractiveUser | ||
87 | { | ||
88 | get => (int)this.Fields[(int)AppIdTupleFields.RunAsInteractiveUser]?.Value; | ||
89 | set => this.Set((int)AppIdTupleFields.RunAsInteractiveUser, value); | ||
90 | } | ||
91 | } | ||
92 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/AppSearchTuple.cs b/src/WixToolset.Data/Tuples/AppSearchTuple.cs new file mode 100644 index 00000000..e32064b8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/AppSearchTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition AppSearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.AppSearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(AppSearchTupleFields.Signature_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(AppSearchTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum AppSearchTupleFields | ||
23 | { | ||
24 | Property, | ||
25 | Signature_, | ||
26 | } | ||
27 | |||
28 | public class AppSearchTuple : IntermediateTuple | ||
29 | { | ||
30 | public AppSearchTuple() : base(TupleDefinitions.AppSearch, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public AppSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.AppSearch, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[AppSearchTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Property | ||
41 | { | ||
42 | get => (string)this.Fields[(int)AppSearchTupleFields.Property]?.Value; | ||
43 | set => this.Set((int)AppSearchTupleFields.Property, value); | ||
44 | } | ||
45 | |||
46 | public string Signature_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)AppSearchTupleFields.Signature_]?.Value; | ||
49 | set => this.Set((int)AppSearchTupleFields.Signature_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/BBControlTuple.cs b/src/WixToolset.Data/Tuples/BBControlTuple.cs new file mode 100644 index 00000000..dae041d4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/BBControlTuple.cs | |||
@@ -0,0 +1,108 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition BBControl = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.BBControl, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Billboard_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.BBControl), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Type), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.X), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Y), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Width), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Height), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Attributes), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(BBControlTupleFields.Text), IntermediateFieldType.String), | ||
22 | }, | ||
23 | typeof(BBControlTuple)); | ||
24 | } | ||
25 | } | ||
26 | |||
27 | namespace WixToolset.Data.Tuples | ||
28 | { | ||
29 | public enum BBControlTupleFields | ||
30 | { | ||
31 | Billboard_, | ||
32 | BBControl, | ||
33 | Type, | ||
34 | X, | ||
35 | Y, | ||
36 | Width, | ||
37 | Height, | ||
38 | Attributes, | ||
39 | Text, | ||
40 | } | ||
41 | |||
42 | public class BBControlTuple : IntermediateTuple | ||
43 | { | ||
44 | public BBControlTuple() : base(TupleDefinitions.BBControl, null, null) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public BBControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.BBControl, sourceLineNumber, id) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public IntermediateField this[BBControlTupleFields index] => this.Fields[(int)index]; | ||
53 | |||
54 | public string Billboard_ | ||
55 | { | ||
56 | get => (string)this.Fields[(int)BBControlTupleFields.Billboard_]?.Value; | ||
57 | set => this.Set((int)BBControlTupleFields.Billboard_, value); | ||
58 | } | ||
59 | |||
60 | public string BBControl | ||
61 | { | ||
62 | get => (string)this.Fields[(int)BBControlTupleFields.BBControl]?.Value; | ||
63 | set => this.Set((int)BBControlTupleFields.BBControl, value); | ||
64 | } | ||
65 | |||
66 | public string Type | ||
67 | { | ||
68 | get => (string)this.Fields[(int)BBControlTupleFields.Type]?.Value; | ||
69 | set => this.Set((int)BBControlTupleFields.Type, value); | ||
70 | } | ||
71 | |||
72 | public int X | ||
73 | { | ||
74 | get => (int)this.Fields[(int)BBControlTupleFields.X]?.Value; | ||
75 | set => this.Set((int)BBControlTupleFields.X, value); | ||
76 | } | ||
77 | |||
78 | public int Y | ||
79 | { | ||
80 | get => (int)this.Fields[(int)BBControlTupleFields.Y]?.Value; | ||
81 | set => this.Set((int)BBControlTupleFields.Y, value); | ||
82 | } | ||
83 | |||
84 | public int Width | ||
85 | { | ||
86 | get => (int)this.Fields[(int)BBControlTupleFields.Width]?.Value; | ||
87 | set => this.Set((int)BBControlTupleFields.Width, value); | ||
88 | } | ||
89 | |||
90 | public int Height | ||
91 | { | ||
92 | get => (int)this.Fields[(int)BBControlTupleFields.Height]?.Value; | ||
93 | set => this.Set((int)BBControlTupleFields.Height, value); | ||
94 | } | ||
95 | |||
96 | public int Attributes | ||
97 | { | ||
98 | get => (int)this.Fields[(int)BBControlTupleFields.Attributes]?.Value; | ||
99 | set => this.Set((int)BBControlTupleFields.Attributes, value); | ||
100 | } | ||
101 | |||
102 | public string Text | ||
103 | { | ||
104 | get => (string)this.Fields[(int)BBControlTupleFields.Text]?.Value; | ||
105 | set => this.Set((int)BBControlTupleFields.Text, value); | ||
106 | } | ||
107 | } | ||
108 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/BillboardTuple.cs b/src/WixToolset.Data/Tuples/BillboardTuple.cs new file mode 100644 index 00000000..43e2ace7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/BillboardTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Billboard = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Billboard, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(BillboardTupleFields.Billboard), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(BillboardTupleFields.Feature_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(BillboardTupleFields.Action), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(BillboardTupleFields.Ordering), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(BillboardTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum BillboardTupleFields | ||
25 | { | ||
26 | Billboard, | ||
27 | Feature_, | ||
28 | Action, | ||
29 | Ordering, | ||
30 | } | ||
31 | |||
32 | public class BillboardTuple : IntermediateTuple | ||
33 | { | ||
34 | public BillboardTuple() : base(TupleDefinitions.Billboard, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public BillboardTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Billboard, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[BillboardTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Billboard | ||
45 | { | ||
46 | get => (string)this.Fields[(int)BillboardTupleFields.Billboard]?.Value; | ||
47 | set => this.Set((int)BillboardTupleFields.Billboard, value); | ||
48 | } | ||
49 | |||
50 | public string Feature_ | ||
51 | { | ||
52 | get => (string)this.Fields[(int)BillboardTupleFields.Feature_]?.Value; | ||
53 | set => this.Set((int)BillboardTupleFields.Feature_, value); | ||
54 | } | ||
55 | |||
56 | public string Action | ||
57 | { | ||
58 | get => (string)this.Fields[(int)BillboardTupleFields.Action]?.Value; | ||
59 | set => this.Set((int)BillboardTupleFields.Action, value); | ||
60 | } | ||
61 | |||
62 | public int Ordering | ||
63 | { | ||
64 | get => (int)this.Fields[(int)BillboardTupleFields.Ordering]?.Value; | ||
65 | set => this.Set((int)BillboardTupleFields.Ordering, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/BinaryTuple.cs b/src/WixToolset.Data/Tuples/BinaryTuple.cs new file mode 100644 index 00000000..8134167b --- /dev/null +++ b/src/WixToolset.Data/Tuples/BinaryTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Binary = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Binary, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(BinaryTupleFields.Name), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(BinaryTupleFields.Data), IntermediateFieldType.Path), | ||
15 | }, | ||
16 | typeof(BinaryTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum BinaryTupleFields | ||
23 | { | ||
24 | Name, | ||
25 | Data, | ||
26 | } | ||
27 | |||
28 | public class BinaryTuple : IntermediateTuple | ||
29 | { | ||
30 | public BinaryTuple() : base(TupleDefinitions.Binary, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public BinaryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Binary, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[BinaryTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Name | ||
41 | { | ||
42 | get => (string)this.Fields[(int)BinaryTupleFields.Name]?.Value; | ||
43 | set => this.Set((int)BinaryTupleFields.Name, value); | ||
44 | } | ||
45 | |||
46 | public string Data | ||
47 | { | ||
48 | get => (string)this.Fields[(int)BinaryTupleFields.Data]?.Value; | ||
49 | set => this.Set((int)BinaryTupleFields.Data, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/BindImageTuple.cs b/src/WixToolset.Data/Tuples/BindImageTuple.cs new file mode 100644 index 00000000..fefafa2d --- /dev/null +++ b/src/WixToolset.Data/Tuples/BindImageTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition BindImage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.BindImage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(BindImageTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(BindImageTupleFields.Path), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(BindImageTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum BindImageTupleFields | ||
23 | { | ||
24 | File_, | ||
25 | Path, | ||
26 | } | ||
27 | |||
28 | public class BindImageTuple : IntermediateTuple | ||
29 | { | ||
30 | public BindImageTuple() : base(TupleDefinitions.BindImage, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public BindImageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.BindImage, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[BindImageTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string File_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)BindImageTupleFields.File_]?.Value; | ||
43 | set => this.Set((int)BindImageTupleFields.File_, value); | ||
44 | } | ||
45 | |||
46 | public string Path | ||
47 | { | ||
48 | get => (string)this.Fields[(int)BindImageTupleFields.Path]?.Value; | ||
49 | set => this.Set((int)BindImageTupleFields.Path, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/CCPSearchTuple.cs b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs new file mode 100644 index 00000000..d1ca8458 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CCPSearchTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition CCPSearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.CCPSearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(CCPSearchTupleFields.Signature_), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(CCPSearchTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum CCPSearchTupleFields | ||
22 | { | ||
23 | Signature_, | ||
24 | } | ||
25 | |||
26 | public class CCPSearchTuple : IntermediateTuple | ||
27 | { | ||
28 | public CCPSearchTuple() : base(TupleDefinitions.CCPSearch, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public CCPSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CCPSearch, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[CCPSearchTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string Signature_ | ||
39 | { | ||
40 | get => (string)this.Fields[(int)CCPSearchTupleFields.Signature_]?.Value; | ||
41 | set => this.Set((int)CCPSearchTupleFields.Signature_, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/CheckBoxTuple.cs b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs new file mode 100644 index 00000000..d76609f2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CheckBoxTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition CheckBox = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.CheckBox, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(CheckBoxTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(CheckBoxTupleFields.Value), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(CheckBoxTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum CheckBoxTupleFields | ||
23 | { | ||
24 | Property, | ||
25 | Value, | ||
26 | } | ||
27 | |||
28 | public class CheckBoxTuple : IntermediateTuple | ||
29 | { | ||
30 | public CheckBoxTuple() : base(TupleDefinitions.CheckBox, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public CheckBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CheckBox, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[CheckBoxTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Property | ||
41 | { | ||
42 | get => (string)this.Fields[(int)CheckBoxTupleFields.Property]?.Value; | ||
43 | set => this.Set((int)CheckBoxTupleFields.Property, value); | ||
44 | } | ||
45 | |||
46 | public string Value | ||
47 | { | ||
48 | get => (string)this.Fields[(int)CheckBoxTupleFields.Value]?.Value; | ||
49 | set => this.Set((int)CheckBoxTupleFields.Value, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ClassTuple.cs b/src/WixToolset.Data/Tuples/ClassTuple.cs new file mode 100644 index 00000000..a9bb3b95 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ClassTuple.cs | |||
@@ -0,0 +1,140 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Class = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Class, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ClassTupleFields.CLSID), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Context), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Component_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ClassTupleFields.ProgId_Default), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Description), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ClassTupleFields.AppId_), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(ClassTupleFields.FileTypeMask), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Icon_), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(ClassTupleFields.IconIndex), IntermediateFieldType.Number), | ||
22 | new IntermediateFieldDefinition(nameof(ClassTupleFields.DefInprocHandler), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Argument), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Feature_), IntermediateFieldType.String), | ||
25 | new IntermediateFieldDefinition(nameof(ClassTupleFields.Attributes), IntermediateFieldType.Number), | ||
26 | }, | ||
27 | typeof(ClassTuple)); | ||
28 | } | ||
29 | } | ||
30 | |||
31 | namespace WixToolset.Data.Tuples | ||
32 | { | ||
33 | public enum ClassTupleFields | ||
34 | { | ||
35 | CLSID, | ||
36 | Context, | ||
37 | Component_, | ||
38 | ProgId_Default, | ||
39 | Description, | ||
40 | AppId_, | ||
41 | FileTypeMask, | ||
42 | Icon_, | ||
43 | IconIndex, | ||
44 | DefInprocHandler, | ||
45 | Argument, | ||
46 | Feature_, | ||
47 | Attributes, | ||
48 | } | ||
49 | |||
50 | public class ClassTuple : IntermediateTuple | ||
51 | { | ||
52 | public ClassTuple() : base(TupleDefinitions.Class, null, null) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | public ClassTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Class, sourceLineNumber, id) | ||
57 | { | ||
58 | } | ||
59 | |||
60 | public IntermediateField this[ClassTupleFields index] => this.Fields[(int)index]; | ||
61 | |||
62 | public string CLSID | ||
63 | { | ||
64 | get => (string)this.Fields[(int)ClassTupleFields.CLSID]?.Value; | ||
65 | set => this.Set((int)ClassTupleFields.CLSID, value); | ||
66 | } | ||
67 | |||
68 | public string Context | ||
69 | { | ||
70 | get => (string)this.Fields[(int)ClassTupleFields.Context]?.Value; | ||
71 | set => this.Set((int)ClassTupleFields.Context, value); | ||
72 | } | ||
73 | |||
74 | public string Component_ | ||
75 | { | ||
76 | get => (string)this.Fields[(int)ClassTupleFields.Component_]?.Value; | ||
77 | set => this.Set((int)ClassTupleFields.Component_, value); | ||
78 | } | ||
79 | |||
80 | public string ProgId_Default | ||
81 | { | ||
82 | get => (string)this.Fields[(int)ClassTupleFields.ProgId_Default]?.Value; | ||
83 | set => this.Set((int)ClassTupleFields.ProgId_Default, value); | ||
84 | } | ||
85 | |||
86 | public string Description | ||
87 | { | ||
88 | get => (string)this.Fields[(int)ClassTupleFields.Description]?.Value; | ||
89 | set => this.Set((int)ClassTupleFields.Description, value); | ||
90 | } | ||
91 | |||
92 | public string AppId_ | ||
93 | { | ||
94 | get => (string)this.Fields[(int)ClassTupleFields.AppId_]?.Value; | ||
95 | set => this.Set((int)ClassTupleFields.AppId_, value); | ||
96 | } | ||
97 | |||
98 | public string FileTypeMask | ||
99 | { | ||
100 | get => (string)this.Fields[(int)ClassTupleFields.FileTypeMask]?.Value; | ||
101 | set => this.Set((int)ClassTupleFields.FileTypeMask, value); | ||
102 | } | ||
103 | |||
104 | public string Icon_ | ||
105 | { | ||
106 | get => (string)this.Fields[(int)ClassTupleFields.Icon_]?.Value; | ||
107 | set => this.Set((int)ClassTupleFields.Icon_, value); | ||
108 | } | ||
109 | |||
110 | public int IconIndex | ||
111 | { | ||
112 | get => (int)this.Fields[(int)ClassTupleFields.IconIndex]?.Value; | ||
113 | set => this.Set((int)ClassTupleFields.IconIndex, value); | ||
114 | } | ||
115 | |||
116 | public string DefInprocHandler | ||
117 | { | ||
118 | get => (string)this.Fields[(int)ClassTupleFields.DefInprocHandler]?.Value; | ||
119 | set => this.Set((int)ClassTupleFields.DefInprocHandler, value); | ||
120 | } | ||
121 | |||
122 | public string Argument | ||
123 | { | ||
124 | get => (string)this.Fields[(int)ClassTupleFields.Argument]?.Value; | ||
125 | set => this.Set((int)ClassTupleFields.Argument, value); | ||
126 | } | ||
127 | |||
128 | public string Feature_ | ||
129 | { | ||
130 | get => (string)this.Fields[(int)ClassTupleFields.Feature_]?.Value; | ||
131 | set => this.Set((int)ClassTupleFields.Feature_, value); | ||
132 | } | ||
133 | |||
134 | public int Attributes | ||
135 | { | ||
136 | get => (int)this.Fields[(int)ClassTupleFields.Attributes]?.Value; | ||
137 | set => this.Set((int)ClassTupleFields.Attributes, value); | ||
138 | } | ||
139 | } | ||
140 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ComboBoxTuple.cs b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs new file mode 100644 index 00000000..67acc30c --- /dev/null +++ b/src/WixToolset.Data/Tuples/ComboBoxTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ComboBox = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ComboBox, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Order), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ComboBoxTupleFields.Text), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(ComboBoxTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum ComboBoxTupleFields | ||
25 | { | ||
26 | Property, | ||
27 | Order, | ||
28 | Value, | ||
29 | Text, | ||
30 | } | ||
31 | |||
32 | public class ComboBoxTuple : IntermediateTuple | ||
33 | { | ||
34 | public ComboBoxTuple() : base(TupleDefinitions.ComboBox, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public ComboBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ComboBox, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[ComboBoxTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Property | ||
45 | { | ||
46 | get => (string)this.Fields[(int)ComboBoxTupleFields.Property]?.Value; | ||
47 | set => this.Set((int)ComboBoxTupleFields.Property, value); | ||
48 | } | ||
49 | |||
50 | public int Order | ||
51 | { | ||
52 | get => (int)this.Fields[(int)ComboBoxTupleFields.Order]?.Value; | ||
53 | set => this.Set((int)ComboBoxTupleFields.Order, value); | ||
54 | } | ||
55 | |||
56 | public string Value | ||
57 | { | ||
58 | get => (string)this.Fields[(int)ComboBoxTupleFields.Value]?.Value; | ||
59 | set => this.Set((int)ComboBoxTupleFields.Value, value); | ||
60 | } | ||
61 | |||
62 | public string Text | ||
63 | { | ||
64 | get => (string)this.Fields[(int)ComboBoxTupleFields.Text]?.Value; | ||
65 | set => this.Set((int)ComboBoxTupleFields.Text, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/CompLocatorTuple.cs b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs new file mode 100644 index 00000000..e8560711 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CompLocatorTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition CompLocator = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.CompLocator, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.Signature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.ComponentId), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(CompLocatorTupleFields.Type), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(CompLocatorTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum CompLocatorTupleFields | ||
24 | { | ||
25 | Signature_, | ||
26 | ComponentId, | ||
27 | Type, | ||
28 | } | ||
29 | |||
30 | public class CompLocatorTuple : IntermediateTuple | ||
31 | { | ||
32 | public CompLocatorTuple() : base(TupleDefinitions.CompLocator, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public CompLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CompLocator, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[CompLocatorTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Signature_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)CompLocatorTupleFields.Signature_]?.Value; | ||
45 | set => this.Set((int)CompLocatorTupleFields.Signature_, value); | ||
46 | } | ||
47 | |||
48 | public string ComponentId | ||
49 | { | ||
50 | get => (string)this.Fields[(int)CompLocatorTupleFields.ComponentId]?.Value; | ||
51 | set => this.Set((int)CompLocatorTupleFields.ComponentId, value); | ||
52 | } | ||
53 | |||
54 | public int Type | ||
55 | { | ||
56 | get => (int)this.Fields[(int)CompLocatorTupleFields.Type]?.Value; | ||
57 | set => this.Set((int)CompLocatorTupleFields.Type, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ComplusTuple.cs b/src/WixToolset.Data/Tuples/ComplusTuple.cs new file mode 100644 index 00000000..0287c689 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ComplusTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Complus = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Complus, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ComplusTupleFields.Component_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ComplusTupleFields.ExpType), IntermediateFieldType.Number), | ||
15 | }, | ||
16 | typeof(ComplusTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum ComplusTupleFields | ||
23 | { | ||
24 | Component_, | ||
25 | ExpType, | ||
26 | } | ||
27 | |||
28 | public class ComplusTuple : IntermediateTuple | ||
29 | { | ||
30 | public ComplusTuple() : base(TupleDefinitions.Complus, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public ComplusTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Complus, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[ComplusTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Component_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)ComplusTupleFields.Component_]?.Value; | ||
43 | set => this.Set((int)ComplusTupleFields.Component_, value); | ||
44 | } | ||
45 | |||
46 | public int ExpType | ||
47 | { | ||
48 | get => (int)this.Fields[(int)ComplusTupleFields.ExpType]?.Value; | ||
49 | set => this.Set((int)ComplusTupleFields.ExpType, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ComponentTuple.cs b/src/WixToolset.Data/Tuples/ComponentTuple.cs new file mode 100644 index 00000000..8d679609 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ComponentTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Component = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Component, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ComponentTupleFields.Component), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ComponentTupleFields.ComponentId), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ComponentTupleFields.Directory_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ComponentTupleFields.Attributes), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ComponentTupleFields.Condition), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ComponentTupleFields.KeyPath), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(ComponentTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum ComponentTupleFields | ||
27 | { | ||
28 | Component, | ||
29 | ComponentId, | ||
30 | Directory_, | ||
31 | Attributes, | ||
32 | Condition, | ||
33 | KeyPath, | ||
34 | } | ||
35 | |||
36 | public class ComponentTuple : IntermediateTuple | ||
37 | { | ||
38 | public ComponentTuple() : base(TupleDefinitions.Component, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public ComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Component, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[ComponentTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string Component | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ComponentTupleFields.Component]?.Value; | ||
51 | set => this.Set((int)ComponentTupleFields.Component, value); | ||
52 | } | ||
53 | |||
54 | public string ComponentId | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ComponentTupleFields.ComponentId]?.Value; | ||
57 | set => this.Set((int)ComponentTupleFields.ComponentId, value); | ||
58 | } | ||
59 | |||
60 | public string Directory_ | ||
61 | { | ||
62 | get => (string)this.Fields[(int)ComponentTupleFields.Directory_]?.Value; | ||
63 | set => this.Set((int)ComponentTupleFields.Directory_, value); | ||
64 | } | ||
65 | |||
66 | public int Attributes | ||
67 | { | ||
68 | get => (int)this.Fields[(int)ComponentTupleFields.Attributes]?.Value; | ||
69 | set => this.Set((int)ComponentTupleFields.Attributes, value); | ||
70 | } | ||
71 | |||
72 | public string Condition | ||
73 | { | ||
74 | get => (string)this.Fields[(int)ComponentTupleFields.Condition]?.Value; | ||
75 | set => this.Set((int)ComponentTupleFields.Condition, value); | ||
76 | } | ||
77 | |||
78 | public string KeyPath | ||
79 | { | ||
80 | get => (string)this.Fields[(int)ComponentTupleFields.KeyPath]?.Value; | ||
81 | set => this.Set((int)ComponentTupleFields.KeyPath, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ConditionTuple.cs b/src/WixToolset.Data/Tuples/ConditionTuple.cs new file mode 100644 index 00000000..534f4cae --- /dev/null +++ b/src/WixToolset.Data/Tuples/ConditionTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Condition = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Condition, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ConditionTupleFields.Feature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ConditionTupleFields.Level), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ConditionTupleFields.Condition), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(ConditionTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum ConditionTupleFields | ||
24 | { | ||
25 | Feature_, | ||
26 | Level, | ||
27 | Condition, | ||
28 | } | ||
29 | |||
30 | public class ConditionTuple : IntermediateTuple | ||
31 | { | ||
32 | public ConditionTuple() : base(TupleDefinitions.Condition, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public ConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Condition, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[ConditionTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Feature_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)ConditionTupleFields.Feature_]?.Value; | ||
45 | set => this.Set((int)ConditionTupleFields.Feature_, value); | ||
46 | } | ||
47 | |||
48 | public int Level | ||
49 | { | ||
50 | get => (int)this.Fields[(int)ConditionTupleFields.Level]?.Value; | ||
51 | set => this.Set((int)ConditionTupleFields.Level, value); | ||
52 | } | ||
53 | |||
54 | public string Condition | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ConditionTupleFields.Condition]?.Value; | ||
57 | set => this.Set((int)ConditionTupleFields.Condition, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ControlConditionTuple.cs b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs new file mode 100644 index 00000000..0b18dac1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ControlConditionTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ControlCondition = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ControlCondition, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Dialog_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Control_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Action), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ControlConditionTupleFields.Condition), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(ControlConditionTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum ControlConditionTupleFields | ||
25 | { | ||
26 | Dialog_, | ||
27 | Control_, | ||
28 | Action, | ||
29 | Condition, | ||
30 | } | ||
31 | |||
32 | public class ControlConditionTuple : IntermediateTuple | ||
33 | { | ||
34 | public ControlConditionTuple() : base(TupleDefinitions.ControlCondition, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public ControlConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ControlCondition, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[ControlConditionTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Dialog_ | ||
45 | { | ||
46 | get => (string)this.Fields[(int)ControlConditionTupleFields.Dialog_]?.Value; | ||
47 | set => this.Set((int)ControlConditionTupleFields.Dialog_, value); | ||
48 | } | ||
49 | |||
50 | public string Control_ | ||
51 | { | ||
52 | get => (string)this.Fields[(int)ControlConditionTupleFields.Control_]?.Value; | ||
53 | set => this.Set((int)ControlConditionTupleFields.Control_, value); | ||
54 | } | ||
55 | |||
56 | public string Action | ||
57 | { | ||
58 | get => (string)this.Fields[(int)ControlConditionTupleFields.Action]?.Value; | ||
59 | set => this.Set((int)ControlConditionTupleFields.Action, value); | ||
60 | } | ||
61 | |||
62 | public string Condition | ||
63 | { | ||
64 | get => (string)this.Fields[(int)ControlConditionTupleFields.Condition]?.Value; | ||
65 | set => this.Set((int)ControlConditionTupleFields.Condition, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ControlEventTuple.cs b/src/WixToolset.Data/Tuples/ControlEventTuple.cs new file mode 100644 index 00000000..b44cd19e --- /dev/null +++ b/src/WixToolset.Data/Tuples/ControlEventTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ControlEvent = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ControlEvent, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Dialog_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Control_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Event), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Argument), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Condition), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ControlEventTupleFields.Ordering), IntermediateFieldType.Number), | ||
19 | }, | ||
20 | typeof(ControlEventTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum ControlEventTupleFields | ||
27 | { | ||
28 | Dialog_, | ||
29 | Control_, | ||
30 | Event, | ||
31 | Argument, | ||
32 | Condition, | ||
33 | Ordering, | ||
34 | } | ||
35 | |||
36 | public class ControlEventTuple : IntermediateTuple | ||
37 | { | ||
38 | public ControlEventTuple() : base(TupleDefinitions.ControlEvent, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public ControlEventTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ControlEvent, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[ControlEventTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string Dialog_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ControlEventTupleFields.Dialog_]?.Value; | ||
51 | set => this.Set((int)ControlEventTupleFields.Dialog_, value); | ||
52 | } | ||
53 | |||
54 | public string Control_ | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ControlEventTupleFields.Control_]?.Value; | ||
57 | set => this.Set((int)ControlEventTupleFields.Control_, value); | ||
58 | } | ||
59 | |||
60 | public string Event | ||
61 | { | ||
62 | get => (string)this.Fields[(int)ControlEventTupleFields.Event]?.Value; | ||
63 | set => this.Set((int)ControlEventTupleFields.Event, value); | ||
64 | } | ||
65 | |||
66 | public string Argument | ||
67 | { | ||
68 | get => (string)this.Fields[(int)ControlEventTupleFields.Argument]?.Value; | ||
69 | set => this.Set((int)ControlEventTupleFields.Argument, value); | ||
70 | } | ||
71 | |||
72 | public string Condition | ||
73 | { | ||
74 | get => (string)this.Fields[(int)ControlEventTupleFields.Condition]?.Value; | ||
75 | set => this.Set((int)ControlEventTupleFields.Condition, value); | ||
76 | } | ||
77 | |||
78 | public int Ordering | ||
79 | { | ||
80 | get => (int)this.Fields[(int)ControlEventTupleFields.Ordering]?.Value; | ||
81 | set => this.Set((int)ControlEventTupleFields.Ordering, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ControlTuple.cs b/src/WixToolset.Data/Tuples/ControlTuple.cs new file mode 100644 index 00000000..82de917c --- /dev/null +++ b/src/WixToolset.Data/Tuples/ControlTuple.cs | |||
@@ -0,0 +1,132 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Control = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Control, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Dialog_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Control), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Type), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ControlTupleFields.X), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Y), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Width), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Height), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Attributes), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Property), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Text), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Control_Next), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(ControlTupleFields.Help), IntermediateFieldType.String), | ||
25 | }, | ||
26 | typeof(ControlTuple)); | ||
27 | } | ||
28 | } | ||
29 | |||
30 | namespace WixToolset.Data.Tuples | ||
31 | { | ||
32 | public enum ControlTupleFields | ||
33 | { | ||
34 | Dialog_, | ||
35 | Control, | ||
36 | Type, | ||
37 | X, | ||
38 | Y, | ||
39 | Width, | ||
40 | Height, | ||
41 | Attributes, | ||
42 | Property, | ||
43 | Text, | ||
44 | Control_Next, | ||
45 | Help, | ||
46 | } | ||
47 | |||
48 | public class ControlTuple : IntermediateTuple | ||
49 | { | ||
50 | public ControlTuple() : base(TupleDefinitions.Control, null, null) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public ControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Control, sourceLineNumber, id) | ||
55 | { | ||
56 | } | ||
57 | |||
58 | public IntermediateField this[ControlTupleFields index] => this.Fields[(int)index]; | ||
59 | |||
60 | public string Dialog_ | ||
61 | { | ||
62 | get => (string)this.Fields[(int)ControlTupleFields.Dialog_]?.Value; | ||
63 | set => this.Set((int)ControlTupleFields.Dialog_, value); | ||
64 | } | ||
65 | |||
66 | public string Control | ||
67 | { | ||
68 | get => (string)this.Fields[(int)ControlTupleFields.Control]?.Value; | ||
69 | set => this.Set((int)ControlTupleFields.Control, value); | ||
70 | } | ||
71 | |||
72 | public string Type | ||
73 | { | ||
74 | get => (string)this.Fields[(int)ControlTupleFields.Type]?.Value; | ||
75 | set => this.Set((int)ControlTupleFields.Type, value); | ||
76 | } | ||
77 | |||
78 | public int X | ||
79 | { | ||
80 | get => (int)this.Fields[(int)ControlTupleFields.X]?.Value; | ||
81 | set => this.Set((int)ControlTupleFields.X, value); | ||
82 | } | ||
83 | |||
84 | public int Y | ||
85 | { | ||
86 | get => (int)this.Fields[(int)ControlTupleFields.Y]?.Value; | ||
87 | set => this.Set((int)ControlTupleFields.Y, value); | ||
88 | } | ||
89 | |||
90 | public int Width | ||
91 | { | ||
92 | get => (int)this.Fields[(int)ControlTupleFields.Width]?.Value; | ||
93 | set => this.Set((int)ControlTupleFields.Width, value); | ||
94 | } | ||
95 | |||
96 | public int Height | ||
97 | { | ||
98 | get => (int)this.Fields[(int)ControlTupleFields.Height]?.Value; | ||
99 | set => this.Set((int)ControlTupleFields.Height, value); | ||
100 | } | ||
101 | |||
102 | public int Attributes | ||
103 | { | ||
104 | get => (int)this.Fields[(int)ControlTupleFields.Attributes]?.Value; | ||
105 | set => this.Set((int)ControlTupleFields.Attributes, value); | ||
106 | } | ||
107 | |||
108 | public string Property | ||
109 | { | ||
110 | get => (string)this.Fields[(int)ControlTupleFields.Property]?.Value; | ||
111 | set => this.Set((int)ControlTupleFields.Property, value); | ||
112 | } | ||
113 | |||
114 | public string Text | ||
115 | { | ||
116 | get => (string)this.Fields[(int)ControlTupleFields.Text]?.Value; | ||
117 | set => this.Set((int)ControlTupleFields.Text, value); | ||
118 | } | ||
119 | |||
120 | public string Control_Next | ||
121 | { | ||
122 | get => (string)this.Fields[(int)ControlTupleFields.Control_Next]?.Value; | ||
123 | set => this.Set((int)ControlTupleFields.Control_Next, value); | ||
124 | } | ||
125 | |||
126 | public string Help | ||
127 | { | ||
128 | get => (string)this.Fields[(int)ControlTupleFields.Help]?.Value; | ||
129 | set => this.Set((int)ControlTupleFields.Help, value); | ||
130 | } | ||
131 | } | ||
132 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/CreateFolderTuple.cs b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs new file mode 100644 index 00000000..05b50a8b --- /dev/null +++ b/src/WixToolset.Data/Tuples/CreateFolderTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition CreateFolder = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.CreateFolder, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.Directory_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(CreateFolderTupleFields.Component_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(CreateFolderTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum CreateFolderTupleFields | ||
23 | { | ||
24 | Directory_, | ||
25 | Component_, | ||
26 | } | ||
27 | |||
28 | public class CreateFolderTuple : IntermediateTuple | ||
29 | { | ||
30 | public CreateFolderTuple() : base(TupleDefinitions.CreateFolder, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public CreateFolderTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CreateFolder, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[CreateFolderTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Directory_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)CreateFolderTupleFields.Directory_]?.Value; | ||
43 | set => this.Set((int)CreateFolderTupleFields.Directory_, value); | ||
44 | } | ||
45 | |||
46 | public string Component_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)CreateFolderTupleFields.Component_]?.Value; | ||
49 | set => this.Set((int)CreateFolderTupleFields.Component_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/CustomActionTuple.cs b/src/WixToolset.Data/Tuples/CustomActionTuple.cs new file mode 100644 index 00000000..a5d8fd46 --- /dev/null +++ b/src/WixToolset.Data/Tuples/CustomActionTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition CustomAction = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.CustomAction, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Type), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Source), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(CustomActionTupleFields.Target), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(CustomActionTupleFields.ExtendedType), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(CustomActionTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum CustomActionTupleFields | ||
26 | { | ||
27 | Action, | ||
28 | Type, | ||
29 | Source, | ||
30 | Target, | ||
31 | ExtendedType, | ||
32 | } | ||
33 | |||
34 | public class CustomActionTuple : IntermediateTuple | ||
35 | { | ||
36 | public CustomActionTuple() : base(TupleDefinitions.CustomAction, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public CustomActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.CustomAction, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[CustomActionTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)CustomActionTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)CustomActionTupleFields.Action, value); | ||
50 | } | ||
51 | |||
52 | public int Type | ||
53 | { | ||
54 | get => (int)this.Fields[(int)CustomActionTupleFields.Type]?.Value; | ||
55 | set => this.Set((int)CustomActionTupleFields.Type, value); | ||
56 | } | ||
57 | |||
58 | public string Source | ||
59 | { | ||
60 | get => (string)this.Fields[(int)CustomActionTupleFields.Source]?.Value; | ||
61 | set => this.Set((int)CustomActionTupleFields.Source, value); | ||
62 | } | ||
63 | |||
64 | public string Target | ||
65 | { | ||
66 | get => (string)this.Fields[(int)CustomActionTupleFields.Target]?.Value; | ||
67 | set => this.Set((int)CustomActionTupleFields.Target, value); | ||
68 | } | ||
69 | |||
70 | public int ExtendedType | ||
71 | { | ||
72 | get => (int)this.Fields[(int)CustomActionTupleFields.ExtendedType]?.Value; | ||
73 | set => this.Set((int)CustomActionTupleFields.ExtendedType, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/DialogTuple.cs b/src/WixToolset.Data/Tuples/DialogTuple.cs new file mode 100644 index 00000000..b8bb2361 --- /dev/null +++ b/src/WixToolset.Data/Tuples/DialogTuple.cs | |||
@@ -0,0 +1,116 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Dialog = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Dialog, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Dialog), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(DialogTupleFields.HCentering), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(DialogTupleFields.VCentering), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Width), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Height), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Attributes), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Title), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_First), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_Default), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(DialogTupleFields.Control_Cancel), IntermediateFieldType.String), | ||
23 | }, | ||
24 | typeof(DialogTuple)); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | namespace WixToolset.Data.Tuples | ||
29 | { | ||
30 | public enum DialogTupleFields | ||
31 | { | ||
32 | Dialog, | ||
33 | HCentering, | ||
34 | VCentering, | ||
35 | Width, | ||
36 | Height, | ||
37 | Attributes, | ||
38 | Title, | ||
39 | Control_First, | ||
40 | Control_Default, | ||
41 | Control_Cancel, | ||
42 | } | ||
43 | |||
44 | public class DialogTuple : IntermediateTuple | ||
45 | { | ||
46 | public DialogTuple() : base(TupleDefinitions.Dialog, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public DialogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Dialog, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[DialogTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string Dialog | ||
57 | { | ||
58 | get => (string)this.Fields[(int)DialogTupleFields.Dialog]?.Value; | ||
59 | set => this.Set((int)DialogTupleFields.Dialog, value); | ||
60 | } | ||
61 | |||
62 | public int HCentering | ||
63 | { | ||
64 | get => (int)this.Fields[(int)DialogTupleFields.HCentering]?.Value; | ||
65 | set => this.Set((int)DialogTupleFields.HCentering, value); | ||
66 | } | ||
67 | |||
68 | public int VCentering | ||
69 | { | ||
70 | get => (int)this.Fields[(int)DialogTupleFields.VCentering]?.Value; | ||
71 | set => this.Set((int)DialogTupleFields.VCentering, value); | ||
72 | } | ||
73 | |||
74 | public int Width | ||
75 | { | ||
76 | get => (int)this.Fields[(int)DialogTupleFields.Width]?.Value; | ||
77 | set => this.Set((int)DialogTupleFields.Width, value); | ||
78 | } | ||
79 | |||
80 | public int Height | ||
81 | { | ||
82 | get => (int)this.Fields[(int)DialogTupleFields.Height]?.Value; | ||
83 | set => this.Set((int)DialogTupleFields.Height, value); | ||
84 | } | ||
85 | |||
86 | public int Attributes | ||
87 | { | ||
88 | get => (int)this.Fields[(int)DialogTupleFields.Attributes]?.Value; | ||
89 | set => this.Set((int)DialogTupleFields.Attributes, value); | ||
90 | } | ||
91 | |||
92 | public string Title | ||
93 | { | ||
94 | get => (string)this.Fields[(int)DialogTupleFields.Title]?.Value; | ||
95 | set => this.Set((int)DialogTupleFields.Title, value); | ||
96 | } | ||
97 | |||
98 | public string Control_First | ||
99 | { | ||
100 | get => (string)this.Fields[(int)DialogTupleFields.Control_First]?.Value; | ||
101 | set => this.Set((int)DialogTupleFields.Control_First, value); | ||
102 | } | ||
103 | |||
104 | public string Control_Default | ||
105 | { | ||
106 | get => (string)this.Fields[(int)DialogTupleFields.Control_Default]?.Value; | ||
107 | set => this.Set((int)DialogTupleFields.Control_Default, value); | ||
108 | } | ||
109 | |||
110 | public string Control_Cancel | ||
111 | { | ||
112 | get => (string)this.Fields[(int)DialogTupleFields.Control_Cancel]?.Value; | ||
113 | set => this.Set((int)DialogTupleFields.Control_Cancel, value); | ||
114 | } | ||
115 | } | ||
116 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/DirectoryTuple.cs b/src/WixToolset.Data/Tuples/DirectoryTuple.cs new file mode 100644 index 00000000..b36345c7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/DirectoryTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Directory = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Directory, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(DirectoryTupleFields.Directory_Parent), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(DirectoryTupleFields.DefaultDir), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(DirectoryTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum DirectoryTupleFields | ||
24 | { | ||
25 | Directory, | ||
26 | Directory_Parent, | ||
27 | DefaultDir, | ||
28 | } | ||
29 | |||
30 | public class DirectoryTuple : IntermediateTuple | ||
31 | { | ||
32 | public DirectoryTuple() : base(TupleDefinitions.Directory, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public DirectoryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Directory, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[DirectoryTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Directory | ||
43 | { | ||
44 | get => (string)this.Fields[(int)DirectoryTupleFields.Directory]?.Value; | ||
45 | set => this.Set((int)DirectoryTupleFields.Directory, value); | ||
46 | } | ||
47 | |||
48 | public string Directory_Parent | ||
49 | { | ||
50 | get => (string)this.Fields[(int)DirectoryTupleFields.Directory_Parent]?.Value; | ||
51 | set => this.Set((int)DirectoryTupleFields.Directory_Parent, value); | ||
52 | } | ||
53 | |||
54 | public string DefaultDir | ||
55 | { | ||
56 | get => (string)this.Fields[(int)DirectoryTupleFields.DefaultDir]?.Value; | ||
57 | set => this.Set((int)DirectoryTupleFields.DefaultDir, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/DrLocatorTuple.cs b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs new file mode 100644 index 00000000..38910333 --- /dev/null +++ b/src/WixToolset.Data/Tuples/DrLocatorTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition DrLocator = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.DrLocator, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Signature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Parent), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Path), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(DrLocatorTupleFields.Depth), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(DrLocatorTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum DrLocatorTupleFields | ||
25 | { | ||
26 | Signature_, | ||
27 | Parent, | ||
28 | Path, | ||
29 | Depth, | ||
30 | } | ||
31 | |||
32 | public class DrLocatorTuple : IntermediateTuple | ||
33 | { | ||
34 | public DrLocatorTuple() : base(TupleDefinitions.DrLocator, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public DrLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.DrLocator, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[DrLocatorTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Signature_ | ||
45 | { | ||
46 | get => (string)this.Fields[(int)DrLocatorTupleFields.Signature_]?.Value; | ||
47 | set => this.Set((int)DrLocatorTupleFields.Signature_, value); | ||
48 | } | ||
49 | |||
50 | public string Parent | ||
51 | { | ||
52 | get => (string)this.Fields[(int)DrLocatorTupleFields.Parent]?.Value; | ||
53 | set => this.Set((int)DrLocatorTupleFields.Parent, value); | ||
54 | } | ||
55 | |||
56 | public string Path | ||
57 | { | ||
58 | get => (string)this.Fields[(int)DrLocatorTupleFields.Path]?.Value; | ||
59 | set => this.Set((int)DrLocatorTupleFields.Path, value); | ||
60 | } | ||
61 | |||
62 | public int Depth | ||
63 | { | ||
64 | get => (int)this.Fields[(int)DrLocatorTupleFields.Depth]?.Value; | ||
65 | set => this.Set((int)DrLocatorTupleFields.Depth, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs new file mode 100644 index 00000000..b489025c --- /dev/null +++ b/src/WixToolset.Data/Tuples/DuplicateFileTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition DuplicateFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.DuplicateFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.FileKey), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.File_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestName), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(DuplicateFileTupleFields.DestFolder), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(DuplicateFileTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum DuplicateFileTupleFields | ||
26 | { | ||
27 | FileKey, | ||
28 | Component_, | ||
29 | File_, | ||
30 | DestName, | ||
31 | DestFolder, | ||
32 | } | ||
33 | |||
34 | public class DuplicateFileTuple : IntermediateTuple | ||
35 | { | ||
36 | public DuplicateFileTuple() : base(TupleDefinitions.DuplicateFile, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public DuplicateFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.DuplicateFile, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[DuplicateFileTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string FileKey | ||
47 | { | ||
48 | get => (string)this.Fields[(int)DuplicateFileTupleFields.FileKey]?.Value; | ||
49 | set => this.Set((int)DuplicateFileTupleFields.FileKey, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)DuplicateFileTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)DuplicateFileTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string File_ | ||
59 | { | ||
60 | get => (string)this.Fields[(int)DuplicateFileTupleFields.File_]?.Value; | ||
61 | set => this.Set((int)DuplicateFileTupleFields.File_, value); | ||
62 | } | ||
63 | |||
64 | public string DestName | ||
65 | { | ||
66 | get => (string)this.Fields[(int)DuplicateFileTupleFields.DestName]?.Value; | ||
67 | set => this.Set((int)DuplicateFileTupleFields.DestName, value); | ||
68 | } | ||
69 | |||
70 | public string DestFolder | ||
71 | { | ||
72 | get => (string)this.Fields[(int)DuplicateFileTupleFields.DestFolder]?.Value; | ||
73 | set => this.Set((int)DuplicateFileTupleFields.DestFolder, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/EnvironmentTuple.cs b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs new file mode 100644 index 00000000..9ee05a19 --- /dev/null +++ b/src/WixToolset.Data/Tuples/EnvironmentTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Environment = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Environment, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Environment), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(EnvironmentTupleFields.Component_), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(EnvironmentTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum EnvironmentTupleFields | ||
25 | { | ||
26 | Environment, | ||
27 | Name, | ||
28 | Value, | ||
29 | Component_, | ||
30 | } | ||
31 | |||
32 | public class EnvironmentTuple : IntermediateTuple | ||
33 | { | ||
34 | public EnvironmentTuple() : base(TupleDefinitions.Environment, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public EnvironmentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Environment, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[EnvironmentTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Environment | ||
45 | { | ||
46 | get => (string)this.Fields[(int)EnvironmentTupleFields.Environment]?.Value; | ||
47 | set => this.Set((int)EnvironmentTupleFields.Environment, value); | ||
48 | } | ||
49 | |||
50 | public string Name | ||
51 | { | ||
52 | get => (string)this.Fields[(int)EnvironmentTupleFields.Name]?.Value; | ||
53 | set => this.Set((int)EnvironmentTupleFields.Name, value); | ||
54 | } | ||
55 | |||
56 | public string Value | ||
57 | { | ||
58 | get => (string)this.Fields[(int)EnvironmentTupleFields.Value]?.Value; | ||
59 | set => this.Set((int)EnvironmentTupleFields.Value, value); | ||
60 | } | ||
61 | |||
62 | public string Component_ | ||
63 | { | ||
64 | get => (string)this.Fields[(int)EnvironmentTupleFields.Component_]?.Value; | ||
65 | set => this.Set((int)EnvironmentTupleFields.Component_, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ErrorTuple.cs b/src/WixToolset.Data/Tuples/ErrorTuple.cs new file mode 100644 index 00000000..393d2d29 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ErrorTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Error = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Error, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ErrorTupleFields.Error), IntermediateFieldType.Number), | ||
14 | new IntermediateFieldDefinition(nameof(ErrorTupleFields.Message), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(ErrorTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum ErrorTupleFields | ||
23 | { | ||
24 | Error, | ||
25 | Message, | ||
26 | } | ||
27 | |||
28 | public class ErrorTuple : IntermediateTuple | ||
29 | { | ||
30 | public ErrorTuple() : base(TupleDefinitions.Error, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public ErrorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Error, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[ErrorTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public int Error | ||
41 | { | ||
42 | get => (int)this.Fields[(int)ErrorTupleFields.Error]?.Value; | ||
43 | set => this.Set((int)ErrorTupleFields.Error, value); | ||
44 | } | ||
45 | |||
46 | public string Message | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ErrorTupleFields.Message]?.Value; | ||
49 | set => this.Set((int)ErrorTupleFields.Message, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/EventMappingTuple.cs b/src/WixToolset.Data/Tuples/EventMappingTuple.cs new file mode 100644 index 00000000..e0e8da71 --- /dev/null +++ b/src/WixToolset.Data/Tuples/EventMappingTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition EventMapping = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.EventMapping, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Dialog_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Control_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Event), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(EventMappingTupleFields.Attribute), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(EventMappingTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum EventMappingTupleFields | ||
25 | { | ||
26 | Dialog_, | ||
27 | Control_, | ||
28 | Event, | ||
29 | Attribute, | ||
30 | } | ||
31 | |||
32 | public class EventMappingTuple : IntermediateTuple | ||
33 | { | ||
34 | public EventMappingTuple() : base(TupleDefinitions.EventMapping, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public EventMappingTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.EventMapping, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[EventMappingTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Dialog_ | ||
45 | { | ||
46 | get => (string)this.Fields[(int)EventMappingTupleFields.Dialog_]?.Value; | ||
47 | set => this.Set((int)EventMappingTupleFields.Dialog_, value); | ||
48 | } | ||
49 | |||
50 | public string Control_ | ||
51 | { | ||
52 | get => (string)this.Fields[(int)EventMappingTupleFields.Control_]?.Value; | ||
53 | set => this.Set((int)EventMappingTupleFields.Control_, value); | ||
54 | } | ||
55 | |||
56 | public string Event | ||
57 | { | ||
58 | get => (string)this.Fields[(int)EventMappingTupleFields.Event]?.Value; | ||
59 | set => this.Set((int)EventMappingTupleFields.Event, value); | ||
60 | } | ||
61 | |||
62 | public string Attribute | ||
63 | { | ||
64 | get => (string)this.Fields[(int)EventMappingTupleFields.Attribute]?.Value; | ||
65 | set => this.Set((int)EventMappingTupleFields.Attribute, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ExtensionTuple.cs b/src/WixToolset.Data/Tuples/ExtensionTuple.cs new file mode 100644 index 00000000..e3ef1675 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ExtensionTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Extension = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Extension, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Extension), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ExtensionTupleFields.ProgId_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ExtensionTupleFields.MIME_), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ExtensionTupleFields.Feature_), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ExtensionTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ExtensionTupleFields | ||
26 | { | ||
27 | Extension, | ||
28 | Component_, | ||
29 | ProgId_, | ||
30 | MIME_, | ||
31 | Feature_, | ||
32 | } | ||
33 | |||
34 | public class ExtensionTuple : IntermediateTuple | ||
35 | { | ||
36 | public ExtensionTuple() : base(TupleDefinitions.Extension, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ExtensionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Extension, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ExtensionTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Extension | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ExtensionTupleFields.Extension]?.Value; | ||
49 | set => this.Set((int)ExtensionTupleFields.Extension, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)ExtensionTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)ExtensionTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string ProgId_ | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ExtensionTupleFields.ProgId_]?.Value; | ||
61 | set => this.Set((int)ExtensionTupleFields.ProgId_, value); | ||
62 | } | ||
63 | |||
64 | public string MIME_ | ||
65 | { | ||
66 | get => (string)this.Fields[(int)ExtensionTupleFields.MIME_]?.Value; | ||
67 | set => this.Set((int)ExtensionTupleFields.MIME_, value); | ||
68 | } | ||
69 | |||
70 | public string Feature_ | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ExtensionTupleFields.Feature_]?.Value; | ||
73 | set => this.Set((int)ExtensionTupleFields.Feature_, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs new file mode 100644 index 00000000..06e6d4ae --- /dev/null +++ b/src/WixToolset.Data/Tuples/ExternalFilesTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ExternalFiles = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ExternalFiles, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.Family), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.FTK), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.FilePath), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.IgnoreOffsets), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.IgnoreLengths), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.RetainOffsets), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(ExternalFilesTupleFields.Order), IntermediateFieldType.Number), | ||
21 | }, | ||
22 | typeof(ExternalFilesTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | public enum ExternalFilesTupleFields | ||
29 | { | ||
30 | Family, | ||
31 | FTK, | ||
32 | FilePath, | ||
33 | SymbolPaths, | ||
34 | IgnoreOffsets, | ||
35 | IgnoreLengths, | ||
36 | RetainOffsets, | ||
37 | Order, | ||
38 | } | ||
39 | |||
40 | public class ExternalFilesTuple : IntermediateTuple | ||
41 | { | ||
42 | public ExternalFilesTuple() : base(TupleDefinitions.ExternalFiles, null, null) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public ExternalFilesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ExternalFiles, sourceLineNumber, id) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public IntermediateField this[ExternalFilesTupleFields index] => this.Fields[(int)index]; | ||
51 | |||
52 | public string Family | ||
53 | { | ||
54 | get => (string)this.Fields[(int)ExternalFilesTupleFields.Family]?.Value; | ||
55 | set => this.Set((int)ExternalFilesTupleFields.Family, value); | ||
56 | } | ||
57 | |||
58 | public string FTK | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ExternalFilesTupleFields.FTK]?.Value; | ||
61 | set => this.Set((int)ExternalFilesTupleFields.FTK, value); | ||
62 | } | ||
63 | |||
64 | public string FilePath | ||
65 | { | ||
66 | get => (string)this.Fields[(int)ExternalFilesTupleFields.FilePath]?.Value; | ||
67 | set => this.Set((int)ExternalFilesTupleFields.FilePath, value); | ||
68 | } | ||
69 | |||
70 | public string SymbolPaths | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ExternalFilesTupleFields.SymbolPaths]?.Value; | ||
73 | set => this.Set((int)ExternalFilesTupleFields.SymbolPaths, value); | ||
74 | } | ||
75 | |||
76 | public string IgnoreOffsets | ||
77 | { | ||
78 | get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreOffsets]?.Value; | ||
79 | set => this.Set((int)ExternalFilesTupleFields.IgnoreOffsets, value); | ||
80 | } | ||
81 | |||
82 | public string IgnoreLengths | ||
83 | { | ||
84 | get => (string)this.Fields[(int)ExternalFilesTupleFields.IgnoreLengths]?.Value; | ||
85 | set => this.Set((int)ExternalFilesTupleFields.IgnoreLengths, value); | ||
86 | } | ||
87 | |||
88 | public string RetainOffsets | ||
89 | { | ||
90 | get => (string)this.Fields[(int)ExternalFilesTupleFields.RetainOffsets]?.Value; | ||
91 | set => this.Set((int)ExternalFilesTupleFields.RetainOffsets, value); | ||
92 | } | ||
93 | |||
94 | public int Order | ||
95 | { | ||
96 | get => (int)this.Fields[(int)ExternalFilesTupleFields.Order]?.Value; | ||
97 | set => this.Set((int)ExternalFilesTupleFields.Order, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs new file mode 100644 index 00000000..5065c389 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition FamilyFileRanges = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.FamilyFileRanges, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.Family), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.FTK), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.RetainOffsets), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(FamilyFileRangesTupleFields.RetainLengths), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(FamilyFileRangesTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum FamilyFileRangesTupleFields | ||
25 | { | ||
26 | Family, | ||
27 | FTK, | ||
28 | RetainOffsets, | ||
29 | RetainLengths, | ||
30 | } | ||
31 | |||
32 | public class FamilyFileRangesTuple : IntermediateTuple | ||
33 | { | ||
34 | public FamilyFileRangesTuple() : base(TupleDefinitions.FamilyFileRanges, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public FamilyFileRangesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FamilyFileRanges, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[FamilyFileRangesTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Family | ||
45 | { | ||
46 | get => (string)this.Fields[(int)FamilyFileRangesTupleFields.Family]?.Value; | ||
47 | set => this.Set((int)FamilyFileRangesTupleFields.Family, value); | ||
48 | } | ||
49 | |||
50 | public string FTK | ||
51 | { | ||
52 | get => (string)this.Fields[(int)FamilyFileRangesTupleFields.FTK]?.Value; | ||
53 | set => this.Set((int)FamilyFileRangesTupleFields.FTK, value); | ||
54 | } | ||
55 | |||
56 | public string RetainOffsets | ||
57 | { | ||
58 | get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainOffsets]?.Value; | ||
59 | set => this.Set((int)FamilyFileRangesTupleFields.RetainOffsets, value); | ||
60 | } | ||
61 | |||
62 | public string RetainLengths | ||
63 | { | ||
64 | get => (string)this.Fields[(int)FamilyFileRangesTupleFields.RetainLengths]?.Value; | ||
65 | set => this.Set((int)FamilyFileRangesTupleFields.RetainLengths, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs new file mode 100644 index 00000000..e9d54c37 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition FeatureComponents = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.FeatureComponents, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.Feature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(FeatureComponentsTupleFields.Component_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(FeatureComponentsTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum FeatureComponentsTupleFields | ||
23 | { | ||
24 | Feature_, | ||
25 | Component_, | ||
26 | } | ||
27 | |||
28 | public class FeatureComponentsTuple : IntermediateTuple | ||
29 | { | ||
30 | public FeatureComponentsTuple() : base(TupleDefinitions.FeatureComponents, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public FeatureComponentsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FeatureComponents, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[FeatureComponentsTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Feature_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)FeatureComponentsTupleFields.Feature_]?.Value; | ||
43 | set => this.Set((int)FeatureComponentsTupleFields.Feature_, value); | ||
44 | } | ||
45 | |||
46 | public string Component_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)FeatureComponentsTupleFields.Component_]?.Value; | ||
49 | set => this.Set((int)FeatureComponentsTupleFields.Component_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/FeatureTuple.cs b/src/WixToolset.Data/Tuples/FeatureTuple.cs new file mode 100644 index 00000000..a04c339b --- /dev/null +++ b/src/WixToolset.Data/Tuples/FeatureTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Feature = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Feature, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Feature), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Feature_Parent), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Title), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Description), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Display), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Level), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Directory_), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(FeatureTupleFields.Attributes), IntermediateFieldType.Number), | ||
21 | }, | ||
22 | typeof(FeatureTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | public enum FeatureTupleFields | ||
29 | { | ||
30 | Feature, | ||
31 | Feature_Parent, | ||
32 | Title, | ||
33 | Description, | ||
34 | Display, | ||
35 | Level, | ||
36 | Directory_, | ||
37 | Attributes, | ||
38 | } | ||
39 | |||
40 | public class FeatureTuple : IntermediateTuple | ||
41 | { | ||
42 | public FeatureTuple() : base(TupleDefinitions.Feature, null, null) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public FeatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Feature, sourceLineNumber, id) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public IntermediateField this[FeatureTupleFields index] => this.Fields[(int)index]; | ||
51 | |||
52 | public string Feature | ||
53 | { | ||
54 | get => (string)this.Fields[(int)FeatureTupleFields.Feature]?.Value; | ||
55 | set => this.Set((int)FeatureTupleFields.Feature, value); | ||
56 | } | ||
57 | |||
58 | public string Feature_Parent | ||
59 | { | ||
60 | get => (string)this.Fields[(int)FeatureTupleFields.Feature_Parent]?.Value; | ||
61 | set => this.Set((int)FeatureTupleFields.Feature_Parent, value); | ||
62 | } | ||
63 | |||
64 | public string Title | ||
65 | { | ||
66 | get => (string)this.Fields[(int)FeatureTupleFields.Title]?.Value; | ||
67 | set => this.Set((int)FeatureTupleFields.Title, value); | ||
68 | } | ||
69 | |||
70 | public string Description | ||
71 | { | ||
72 | get => (string)this.Fields[(int)FeatureTupleFields.Description]?.Value; | ||
73 | set => this.Set((int)FeatureTupleFields.Description, value); | ||
74 | } | ||
75 | |||
76 | public int Display | ||
77 | { | ||
78 | get => (int)this.Fields[(int)FeatureTupleFields.Display]?.Value; | ||
79 | set => this.Set((int)FeatureTupleFields.Display, value); | ||
80 | } | ||
81 | |||
82 | public int Level | ||
83 | { | ||
84 | get => (int)this.Fields[(int)FeatureTupleFields.Level]?.Value; | ||
85 | set => this.Set((int)FeatureTupleFields.Level, value); | ||
86 | } | ||
87 | |||
88 | public string Directory_ | ||
89 | { | ||
90 | get => (string)this.Fields[(int)FeatureTupleFields.Directory_]?.Value; | ||
91 | set => this.Set((int)FeatureTupleFields.Directory_, value); | ||
92 | } | ||
93 | |||
94 | public int Attributes | ||
95 | { | ||
96 | get => (int)this.Fields[(int)FeatureTupleFields.Attributes]?.Value; | ||
97 | set => this.Set((int)FeatureTupleFields.Attributes, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs new file mode 100644 index 00000000..7409577f --- /dev/null +++ b/src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition FileSFPCatalog = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.FileSFPCatalog, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(FileSFPCatalogTupleFields.SFPCatalog_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(FileSFPCatalogTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum FileSFPCatalogTupleFields | ||
23 | { | ||
24 | File_, | ||
25 | SFPCatalog_, | ||
26 | } | ||
27 | |||
28 | public class FileSFPCatalogTuple : IntermediateTuple | ||
29 | { | ||
30 | public FileSFPCatalogTuple() : base(TupleDefinitions.FileSFPCatalog, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public FileSFPCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.FileSFPCatalog, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[FileSFPCatalogTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string File_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)FileSFPCatalogTupleFields.File_]?.Value; | ||
43 | set => this.Set((int)FileSFPCatalogTupleFields.File_, value); | ||
44 | } | ||
45 | |||
46 | public string SFPCatalog_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)FileSFPCatalogTupleFields.SFPCatalog_]?.Value; | ||
49 | set => this.Set((int)FileSFPCatalogTupleFields.SFPCatalog_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/FileTuple.cs b/src/WixToolset.Data/Tuples/FileTuple.cs new file mode 100644 index 00000000..6c184b63 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FileTuple.cs | |||
@@ -0,0 +1,140 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition File = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.File, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(FileTupleFields.File), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(FileTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(FileTupleFields.ShortFileName), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(FileTupleFields.LongFileName), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(FileTupleFields.FileSize), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(FileTupleFields.Version), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(FileTupleFields.Language), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ReadOnly), IntermediateFieldType.Bool), | ||
21 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Hidden), IntermediateFieldType.Bool), | ||
22 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.System), IntermediateFieldType.Bool), | ||
23 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Vital), IntermediateFieldType.Bool), | ||
24 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Checksum), IntermediateFieldType.Bool), | ||
25 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Compressed), IntermediateFieldType.Bool), | ||
26 | }, | ||
27 | typeof(FileTuple)); | ||
28 | } | ||
29 | } | ||
30 | |||
31 | namespace WixToolset.Data.Tuples | ||
32 | { | ||
33 | public enum FileTupleFields | ||
34 | { | ||
35 | File, | ||
36 | Component_, | ||
37 | ShortFileName, | ||
38 | LongFileName, | ||
39 | FileSize, | ||
40 | Version, | ||
41 | Language, | ||
42 | ReadOnly, | ||
43 | Hidden, | ||
44 | System, | ||
45 | Vital, | ||
46 | Checksum, | ||
47 | Compressed, | ||
48 | } | ||
49 | |||
50 | public class FileTuple : IntermediateTuple | ||
51 | { | ||
52 | public FileTuple() : base(TupleDefinitions.File, null, null) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | public FileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.File, sourceLineNumber, id) | ||
57 | { | ||
58 | } | ||
59 | |||
60 | public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; | ||
61 | |||
62 | public string File | ||
63 | { | ||
64 | get => (string)this.Fields[(int)FileTupleFields.File]?.Value; | ||
65 | set => this.Set((int)FileTupleFields.File, value); | ||
66 | } | ||
67 | |||
68 | public string Component_ | ||
69 | { | ||
70 | get => (string)this.Fields[(int)FileTupleFields.Component_]?.Value; | ||
71 | set => this.Set((int)FileTupleFields.Component_, value); | ||
72 | } | ||
73 | |||
74 | public string ShortFileName | ||
75 | { | ||
76 | get => (string)this.Fields[(int)FileTupleFields.ShortFileName]?.Value; | ||
77 | set => this.Set((int)FileTupleFields.ShortFileName, value); | ||
78 | } | ||
79 | |||
80 | public string LongFileName | ||
81 | { | ||
82 | get => (string)this.Fields[(int)FileTupleFields.LongFileName]?.Value; | ||
83 | set => this.Set((int)FileTupleFields.LongFileName, value); | ||
84 | } | ||
85 | |||
86 | public int FileSize | ||
87 | { | ||
88 | get => (int)this.Fields[(int)FileTupleFields.FileSize]?.Value; | ||
89 | set => this.Set((int)FileTupleFields.FileSize, value); | ||
90 | } | ||
91 | |||
92 | public string Version | ||
93 | { | ||
94 | get => (string)this.Fields[(int)FileTupleFields.Version]?.Value; | ||
95 | set => this.Set((int)FileTupleFields.Version, value); | ||
96 | } | ||
97 | |||
98 | public string Language | ||
99 | { | ||
100 | get => (string)this.Fields[(int)FileTupleFields.Language]?.Value; | ||
101 | set => this.Set((int)FileTupleFields.Language, value); | ||
102 | } | ||
103 | |||
104 | public bool ReadOnly | ||
105 | { | ||
106 | get => (bool)this.Fields[(int)FileTupleFields.ReadOnly]?.Value; | ||
107 | set => this.Set((int)FileTupleFields.ReadOnly, value); | ||
108 | } | ||
109 | |||
110 | public bool Hidden | ||
111 | { | ||
112 | get => (bool)this.Fields[(int)FileTupleFields.Hidden]?.Value; | ||
113 | set => this.Set((int)FileTupleFields.Hidden, value); | ||
114 | } | ||
115 | |||
116 | public bool System | ||
117 | { | ||
118 | get => (bool)this.Fields[(int)FileTupleFields.System]?.Value; | ||
119 | set => this.Set((int)FileTupleFields.System, value); | ||
120 | } | ||
121 | |||
122 | public bool Vital | ||
123 | { | ||
124 | get => (bool)this.Fields[(int)FileTupleFields.Vital]?.Value; | ||
125 | set => this.Set((int)FileTupleFields.Vital, value); | ||
126 | } | ||
127 | |||
128 | public bool Checksum | ||
129 | { | ||
130 | get => (bool)this.Fields[(int)FileTupleFields.Checksum]?.Value; | ||
131 | set => this.Set((int)FileTupleFields.Checksum, value); | ||
132 | } | ||
133 | |||
134 | public bool? Compressed | ||
135 | { | ||
136 | get => (bool?)this.Fields[(int)FileTupleFields.Compressed]?.Value; | ||
137 | set => this.Set((int)FileTupleFields.Compressed, value); | ||
138 | } | ||
139 | } | ||
140 | } | ||
diff --git a/src/WixToolset.Data/Tuples/FontTuple.cs b/src/WixToolset.Data/Tuples/FontTuple.cs new file mode 100644 index 00000000..97550148 --- /dev/null +++ b/src/WixToolset.Data/Tuples/FontTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Font = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Font, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(FontTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(FontTupleFields.FontTitle), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(FontTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum FontTupleFields | ||
23 | { | ||
24 | File_, | ||
25 | FontTitle, | ||
26 | } | ||
27 | |||
28 | public class FontTuple : IntermediateTuple | ||
29 | { | ||
30 | public FontTuple() : base(TupleDefinitions.Font, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public FontTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Font, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[FontTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string File_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)FontTupleFields.File_]?.Value; | ||
43 | set => this.Set((int)FontTupleFields.File_, value); | ||
44 | } | ||
45 | |||
46 | public string FontTitle | ||
47 | { | ||
48 | get => (string)this.Fields[(int)FontTupleFields.FontTitle]?.Value; | ||
49 | set => this.Set((int)FontTupleFields.FontTitle, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/IconTuple.cs b/src/WixToolset.Data/Tuples/IconTuple.cs new file mode 100644 index 00000000..0ccd9a53 --- /dev/null +++ b/src/WixToolset.Data/Tuples/IconTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Icon = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Icon, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(IconTupleFields.Name), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(IconTupleFields.Data), IntermediateFieldType.Path), | ||
15 | }, | ||
16 | typeof(IconTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum IconTupleFields | ||
23 | { | ||
24 | Name, | ||
25 | Data, | ||
26 | } | ||
27 | |||
28 | public class IconTuple : IntermediateTuple | ||
29 | { | ||
30 | public IconTuple() : base(TupleDefinitions.Icon, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public IconTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Icon, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[IconTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Name | ||
41 | { | ||
42 | get => (string)this.Fields[(int)IconTupleFields.Name]?.Value; | ||
43 | set => this.Set((int)IconTupleFields.Name, value); | ||
44 | } | ||
45 | |||
46 | public string Data | ||
47 | { | ||
48 | get => (string)this.Fields[(int)IconTupleFields.Data]?.Value; | ||
49 | set => this.Set((int)IconTupleFields.Data, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs new file mode 100644 index 00000000..7ce884ca --- /dev/null +++ b/src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ImageFamilies = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ImageFamilies, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.Family), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.MediaSrcPropName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.MediaDiskId), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.FileSequenceStart), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.DiskPrompt), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ImageFamiliesTupleFields.VolumeLabel), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(ImageFamiliesTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum ImageFamiliesTupleFields | ||
27 | { | ||
28 | Family, | ||
29 | MediaSrcPropName, | ||
30 | MediaDiskId, | ||
31 | FileSequenceStart, | ||
32 | DiskPrompt, | ||
33 | VolumeLabel, | ||
34 | } | ||
35 | |||
36 | public class ImageFamiliesTuple : IntermediateTuple | ||
37 | { | ||
38 | public ImageFamiliesTuple() : base(TupleDefinitions.ImageFamilies, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public ImageFamiliesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ImageFamilies, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[ImageFamiliesTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string Family | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ImageFamiliesTupleFields.Family]?.Value; | ||
51 | set => this.Set((int)ImageFamiliesTupleFields.Family, value); | ||
52 | } | ||
53 | |||
54 | public string MediaSrcPropName | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ImageFamiliesTupleFields.MediaSrcPropName]?.Value; | ||
57 | set => this.Set((int)ImageFamiliesTupleFields.MediaSrcPropName, value); | ||
58 | } | ||
59 | |||
60 | public int MediaDiskId | ||
61 | { | ||
62 | get => (int)this.Fields[(int)ImageFamiliesTupleFields.MediaDiskId]?.Value; | ||
63 | set => this.Set((int)ImageFamiliesTupleFields.MediaDiskId, value); | ||
64 | } | ||
65 | |||
66 | public int FileSequenceStart | ||
67 | { | ||
68 | get => (int)this.Fields[(int)ImageFamiliesTupleFields.FileSequenceStart]?.Value; | ||
69 | set => this.Set((int)ImageFamiliesTupleFields.FileSequenceStart, value); | ||
70 | } | ||
71 | |||
72 | public string DiskPrompt | ||
73 | { | ||
74 | get => (string)this.Fields[(int)ImageFamiliesTupleFields.DiskPrompt]?.Value; | ||
75 | set => this.Set((int)ImageFamiliesTupleFields.DiskPrompt, value); | ||
76 | } | ||
77 | |||
78 | public string VolumeLabel | ||
79 | { | ||
80 | get => (string)this.Fields[(int)ImageFamiliesTupleFields.VolumeLabel]?.Value; | ||
81 | set => this.Set((int)ImageFamiliesTupleFields.VolumeLabel, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/IniFileTuple.cs b/src/WixToolset.Data/Tuples/IniFileTuple.cs new file mode 100644 index 00000000..29fb3264 --- /dev/null +++ b/src/WixToolset.Data/Tuples/IniFileTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition IniFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.IniFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.IniFile), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.FileName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.DirProperty), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.Section), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.Key), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.Value), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.Action), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(IniFileTupleFields.Component_), IntermediateFieldType.String), | ||
21 | }, | ||
22 | typeof(IniFileTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | public enum IniFileTupleFields | ||
29 | { | ||
30 | IniFile, | ||
31 | FileName, | ||
32 | DirProperty, | ||
33 | Section, | ||
34 | Key, | ||
35 | Value, | ||
36 | Action, | ||
37 | Component_, | ||
38 | } | ||
39 | |||
40 | public class IniFileTuple : IntermediateTuple | ||
41 | { | ||
42 | public IniFileTuple() : base(TupleDefinitions.IniFile, null, null) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IniFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IniFile, sourceLineNumber, id) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public IntermediateField this[IniFileTupleFields index] => this.Fields[(int)index]; | ||
51 | |||
52 | public string IniFile | ||
53 | { | ||
54 | get => (string)this.Fields[(int)IniFileTupleFields.IniFile]?.Value; | ||
55 | set => this.Set((int)IniFileTupleFields.IniFile, value); | ||
56 | } | ||
57 | |||
58 | public string FileName | ||
59 | { | ||
60 | get => (string)this.Fields[(int)IniFileTupleFields.FileName]?.Value; | ||
61 | set => this.Set((int)IniFileTupleFields.FileName, value); | ||
62 | } | ||
63 | |||
64 | public string DirProperty | ||
65 | { | ||
66 | get => (string)this.Fields[(int)IniFileTupleFields.DirProperty]?.Value; | ||
67 | set => this.Set((int)IniFileTupleFields.DirProperty, value); | ||
68 | } | ||
69 | |||
70 | public string Section | ||
71 | { | ||
72 | get => (string)this.Fields[(int)IniFileTupleFields.Section]?.Value; | ||
73 | set => this.Set((int)IniFileTupleFields.Section, value); | ||
74 | } | ||
75 | |||
76 | public string Key | ||
77 | { | ||
78 | get => (string)this.Fields[(int)IniFileTupleFields.Key]?.Value; | ||
79 | set => this.Set((int)IniFileTupleFields.Key, value); | ||
80 | } | ||
81 | |||
82 | public string Value | ||
83 | { | ||
84 | get => (string)this.Fields[(int)IniFileTupleFields.Value]?.Value; | ||
85 | set => this.Set((int)IniFileTupleFields.Value, value); | ||
86 | } | ||
87 | |||
88 | public int Action | ||
89 | { | ||
90 | get => (int)this.Fields[(int)IniFileTupleFields.Action]?.Value; | ||
91 | set => this.Set((int)IniFileTupleFields.Action, value); | ||
92 | } | ||
93 | |||
94 | public string Component_ | ||
95 | { | ||
96 | get => (string)this.Fields[(int)IniFileTupleFields.Component_]?.Value; | ||
97 | set => this.Set((int)IniFileTupleFields.Component_, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/IniLocatorTuple.cs b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs new file mode 100644 index 00000000..f956ee5f --- /dev/null +++ b/src/WixToolset.Data/Tuples/IniLocatorTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition IniLocator = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.IniLocator, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Signature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.FileName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Section), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Key), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Field), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(IniLocatorTupleFields.Type), IntermediateFieldType.Number), | ||
19 | }, | ||
20 | typeof(IniLocatorTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum IniLocatorTupleFields | ||
27 | { | ||
28 | Signature_, | ||
29 | FileName, | ||
30 | Section, | ||
31 | Key, | ||
32 | Field, | ||
33 | Type, | ||
34 | } | ||
35 | |||
36 | public class IniLocatorTuple : IntermediateTuple | ||
37 | { | ||
38 | public IniLocatorTuple() : base(TupleDefinitions.IniLocator, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IniLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IniLocator, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[IniLocatorTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string Signature_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)IniLocatorTupleFields.Signature_]?.Value; | ||
51 | set => this.Set((int)IniLocatorTupleFields.Signature_, value); | ||
52 | } | ||
53 | |||
54 | public string FileName | ||
55 | { | ||
56 | get => (string)this.Fields[(int)IniLocatorTupleFields.FileName]?.Value; | ||
57 | set => this.Set((int)IniLocatorTupleFields.FileName, value); | ||
58 | } | ||
59 | |||
60 | public string Section | ||
61 | { | ||
62 | get => (string)this.Fields[(int)IniLocatorTupleFields.Section]?.Value; | ||
63 | set => this.Set((int)IniLocatorTupleFields.Section, value); | ||
64 | } | ||
65 | |||
66 | public string Key | ||
67 | { | ||
68 | get => (string)this.Fields[(int)IniLocatorTupleFields.Key]?.Value; | ||
69 | set => this.Set((int)IniLocatorTupleFields.Key, value); | ||
70 | } | ||
71 | |||
72 | public int Field | ||
73 | { | ||
74 | get => (int)this.Fields[(int)IniLocatorTupleFields.Field]?.Value; | ||
75 | set => this.Set((int)IniLocatorTupleFields.Field, value); | ||
76 | } | ||
77 | |||
78 | public int Type | ||
79 | { | ||
80 | get => (int)this.Fields[(int)IniLocatorTupleFields.Type]?.Value; | ||
81 | set => this.Set((int)IniLocatorTupleFields.Type, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs new file mode 100644 index 00000000..390faf9d --- /dev/null +++ b/src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition InstallExecuteSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.InstallExecuteSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(InstallExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(InstallExecuteSequenceTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum InstallExecuteSequenceTupleFields | ||
24 | { | ||
25 | Action, | ||
26 | Condition, | ||
27 | Sequence, | ||
28 | } | ||
29 | |||
30 | public class InstallExecuteSequenceTuple : IntermediateTuple | ||
31 | { | ||
32 | public InstallExecuteSequenceTuple() : base(TupleDefinitions.InstallExecuteSequence, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public InstallExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.InstallExecuteSequence, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[InstallExecuteSequenceTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Action | ||
43 | { | ||
44 | get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Action]?.Value; | ||
45 | set => this.Set((int)InstallExecuteSequenceTupleFields.Action, value); | ||
46 | } | ||
47 | |||
48 | public string Condition | ||
49 | { | ||
50 | get => (string)this.Fields[(int)InstallExecuteSequenceTupleFields.Condition]?.Value; | ||
51 | set => this.Set((int)InstallExecuteSequenceTupleFields.Condition, value); | ||
52 | } | ||
53 | |||
54 | public int Sequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)InstallExecuteSequenceTupleFields.Sequence]?.Value; | ||
57 | set => this.Set((int)InstallExecuteSequenceTupleFields.Sequence, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs new file mode 100644 index 00000000..07409c37 --- /dev/null +++ b/src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition InstallUISequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.InstallUISequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Condition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(InstallUISequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(InstallUISequenceTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum InstallUISequenceTupleFields | ||
24 | { | ||
25 | Action, | ||
26 | Condition, | ||
27 | Sequence, | ||
28 | } | ||
29 | |||
30 | public class InstallUISequenceTuple : IntermediateTuple | ||
31 | { | ||
32 | public InstallUISequenceTuple() : base(TupleDefinitions.InstallUISequence, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public InstallUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.InstallUISequence, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[InstallUISequenceTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Action | ||
43 | { | ||
44 | get => (string)this.Fields[(int)InstallUISequenceTupleFields.Action]?.Value; | ||
45 | set => this.Set((int)InstallUISequenceTupleFields.Action, value); | ||
46 | } | ||
47 | |||
48 | public string Condition | ||
49 | { | ||
50 | get => (string)this.Fields[(int)InstallUISequenceTupleFields.Condition]?.Value; | ||
51 | set => this.Set((int)InstallUISequenceTupleFields.Condition, value); | ||
52 | } | ||
53 | |||
54 | public int Sequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)InstallUISequenceTupleFields.Sequence]?.Value; | ||
57 | set => this.Set((int)InstallUISequenceTupleFields.Sequence, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs new file mode 100644 index 00000000..5fb4f8aa --- /dev/null +++ b/src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition IsolatedComponent = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.IsolatedComponent, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.Component_Shared), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(IsolatedComponentTupleFields.Component_Application), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(IsolatedComponentTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum IsolatedComponentTupleFields | ||
23 | { | ||
24 | Component_Shared, | ||
25 | Component_Application, | ||
26 | } | ||
27 | |||
28 | public class IsolatedComponentTuple : IntermediateTuple | ||
29 | { | ||
30 | public IsolatedComponentTuple() : base(TupleDefinitions.IsolatedComponent, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public IsolatedComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.IsolatedComponent, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[IsolatedComponentTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Component_Shared | ||
41 | { | ||
42 | get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Shared]?.Value; | ||
43 | set => this.Set((int)IsolatedComponentTupleFields.Component_Shared, value); | ||
44 | } | ||
45 | |||
46 | public string Component_Application | ||
47 | { | ||
48 | get => (string)this.Fields[(int)IsolatedComponentTupleFields.Component_Application]?.Value; | ||
49 | set => this.Set((int)IsolatedComponentTupleFields.Component_Application, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs new file mode 100644 index 00000000..f5718607 --- /dev/null +++ b/src/WixToolset.Data/Tuples/LaunchConditionTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition LaunchCondition = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.LaunchCondition, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(LaunchConditionTupleFields.Condition), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(LaunchConditionTupleFields.Description), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(LaunchConditionTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum LaunchConditionTupleFields | ||
23 | { | ||
24 | Condition, | ||
25 | Description, | ||
26 | } | ||
27 | |||
28 | public class LaunchConditionTuple : IntermediateTuple | ||
29 | { | ||
30 | public LaunchConditionTuple() : base(TupleDefinitions.LaunchCondition, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public LaunchConditionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.LaunchCondition, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[LaunchConditionTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Condition | ||
41 | { | ||
42 | get => (string)this.Fields[(int)LaunchConditionTupleFields.Condition]?.Value; | ||
43 | set => this.Set((int)LaunchConditionTupleFields.Condition, value); | ||
44 | } | ||
45 | |||
46 | public string Description | ||
47 | { | ||
48 | get => (string)this.Fields[(int)LaunchConditionTupleFields.Description]?.Value; | ||
49 | set => this.Set((int)LaunchConditionTupleFields.Description, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ListBoxTuple.cs b/src/WixToolset.Data/Tuples/ListBoxTuple.cs new file mode 100644 index 00000000..71702c07 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ListBoxTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ListBox = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ListBox, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Order), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ListBoxTupleFields.Text), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(ListBoxTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum ListBoxTupleFields | ||
25 | { | ||
26 | Property, | ||
27 | Order, | ||
28 | Value, | ||
29 | Text, | ||
30 | } | ||
31 | |||
32 | public class ListBoxTuple : IntermediateTuple | ||
33 | { | ||
34 | public ListBoxTuple() : base(TupleDefinitions.ListBox, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public ListBoxTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ListBox, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[ListBoxTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Property | ||
45 | { | ||
46 | get => (string)this.Fields[(int)ListBoxTupleFields.Property]?.Value; | ||
47 | set => this.Set((int)ListBoxTupleFields.Property, value); | ||
48 | } | ||
49 | |||
50 | public int Order | ||
51 | { | ||
52 | get => (int)this.Fields[(int)ListBoxTupleFields.Order]?.Value; | ||
53 | set => this.Set((int)ListBoxTupleFields.Order, value); | ||
54 | } | ||
55 | |||
56 | public string Value | ||
57 | { | ||
58 | get => (string)this.Fields[(int)ListBoxTupleFields.Value]?.Value; | ||
59 | set => this.Set((int)ListBoxTupleFields.Value, value); | ||
60 | } | ||
61 | |||
62 | public string Text | ||
63 | { | ||
64 | get => (string)this.Fields[(int)ListBoxTupleFields.Text]?.Value; | ||
65 | set => this.Set((int)ListBoxTupleFields.Text, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ListViewTuple.cs b/src/WixToolset.Data/Tuples/ListViewTuple.cs new file mode 100644 index 00000000..3b1f4c88 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ListViewTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ListView = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ListView, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ListViewTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ListViewTupleFields.Order), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ListViewTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ListViewTupleFields.Text), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ListViewTupleFields.Binary_), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ListViewTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ListViewTupleFields | ||
26 | { | ||
27 | Property, | ||
28 | Order, | ||
29 | Value, | ||
30 | Text, | ||
31 | Binary_, | ||
32 | } | ||
33 | |||
34 | public class ListViewTuple : IntermediateTuple | ||
35 | { | ||
36 | public ListViewTuple() : base(TupleDefinitions.ListView, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ListViewTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ListView, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ListViewTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Property | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ListViewTupleFields.Property]?.Value; | ||
49 | set => this.Set((int)ListViewTupleFields.Property, value); | ||
50 | } | ||
51 | |||
52 | public int Order | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ListViewTupleFields.Order]?.Value; | ||
55 | set => this.Set((int)ListViewTupleFields.Order, value); | ||
56 | } | ||
57 | |||
58 | public string Value | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ListViewTupleFields.Value]?.Value; | ||
61 | set => this.Set((int)ListViewTupleFields.Value, value); | ||
62 | } | ||
63 | |||
64 | public string Text | ||
65 | { | ||
66 | get => (string)this.Fields[(int)ListViewTupleFields.Text]?.Value; | ||
67 | set => this.Set((int)ListViewTupleFields.Text, value); | ||
68 | } | ||
69 | |||
70 | public string Binary_ | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ListViewTupleFields.Binary_]?.Value; | ||
73 | set => this.Set((int)ListViewTupleFields.Binary_, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs new file mode 100644 index 00000000..cff4aaa0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/LockPermissionsTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition LockPermissions = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.LockPermissions, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.LockObject), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Table), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Domain), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.User), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(LockPermissionsTupleFields.Permission), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(LockPermissionsTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum LockPermissionsTupleFields | ||
26 | { | ||
27 | LockObject, | ||
28 | Table, | ||
29 | Domain, | ||
30 | User, | ||
31 | Permission, | ||
32 | } | ||
33 | |||
34 | public class LockPermissionsTuple : IntermediateTuple | ||
35 | { | ||
36 | public LockPermissionsTuple() : base(TupleDefinitions.LockPermissions, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public LockPermissionsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.LockPermissions, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[LockPermissionsTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string LockObject | ||
47 | { | ||
48 | get => (string)this.Fields[(int)LockPermissionsTupleFields.LockObject]?.Value; | ||
49 | set => this.Set((int)LockPermissionsTupleFields.LockObject, value); | ||
50 | } | ||
51 | |||
52 | public string Table | ||
53 | { | ||
54 | get => (string)this.Fields[(int)LockPermissionsTupleFields.Table]?.Value; | ||
55 | set => this.Set((int)LockPermissionsTupleFields.Table, value); | ||
56 | } | ||
57 | |||
58 | public string Domain | ||
59 | { | ||
60 | get => (string)this.Fields[(int)LockPermissionsTupleFields.Domain]?.Value; | ||
61 | set => this.Set((int)LockPermissionsTupleFields.Domain, value); | ||
62 | } | ||
63 | |||
64 | public string User | ||
65 | { | ||
66 | get => (string)this.Fields[(int)LockPermissionsTupleFields.User]?.Value; | ||
67 | set => this.Set((int)LockPermissionsTupleFields.User, value); | ||
68 | } | ||
69 | |||
70 | public int Permission | ||
71 | { | ||
72 | get => (int)this.Fields[(int)LockPermissionsTupleFields.Permission]?.Value; | ||
73 | set => this.Set((int)LockPermissionsTupleFields.Permission, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MIMETuple.cs b/src/WixToolset.Data/Tuples/MIMETuple.cs new file mode 100644 index 00000000..8453275e --- /dev/null +++ b/src/WixToolset.Data/Tuples/MIMETuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MIME = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MIME, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MIMETupleFields.ContentType), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MIMETupleFields.Extension_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MIMETupleFields.CLSID), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(MIMETuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum MIMETupleFields | ||
24 | { | ||
25 | ContentType, | ||
26 | Extension_, | ||
27 | CLSID, | ||
28 | } | ||
29 | |||
30 | public class MIMETuple : IntermediateTuple | ||
31 | { | ||
32 | public MIMETuple() : base(TupleDefinitions.MIME, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public MIMETuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MIME, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[MIMETupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string ContentType | ||
43 | { | ||
44 | get => (string)this.Fields[(int)MIMETupleFields.ContentType]?.Value; | ||
45 | set => this.Set((int)MIMETupleFields.ContentType, value); | ||
46 | } | ||
47 | |||
48 | public string Extension_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)MIMETupleFields.Extension_]?.Value; | ||
51 | set => this.Set((int)MIMETupleFields.Extension_, value); | ||
52 | } | ||
53 | |||
54 | public string CLSID | ||
55 | { | ||
56 | get => (string)this.Fields[(int)MIMETupleFields.CLSID]?.Value; | ||
57 | set => this.Set((int)MIMETupleFields.CLSID, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MediaTuple.cs b/src/WixToolset.Data/Tuples/MediaTuple.cs new file mode 100644 index 00000000..305080c3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MediaTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Media = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Media, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MediaTupleFields.DiskId), IntermediateFieldType.Number), | ||
14 | new IntermediateFieldDefinition(nameof(MediaTupleFields.LastSequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(MediaTupleFields.DiskPrompt), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MediaTupleFields.Cabinet), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(MediaTupleFields.VolumeLabel), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(MediaTupleFields.Source), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(MediaTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum MediaTupleFields | ||
27 | { | ||
28 | DiskId, | ||
29 | LastSequence, | ||
30 | DiskPrompt, | ||
31 | Cabinet, | ||
32 | VolumeLabel, | ||
33 | Source, | ||
34 | } | ||
35 | |||
36 | public class MediaTuple : IntermediateTuple | ||
37 | { | ||
38 | public MediaTuple() : base(TupleDefinitions.Media, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public MediaTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Media, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[MediaTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public int DiskId | ||
49 | { | ||
50 | get => (int)this.Fields[(int)MediaTupleFields.DiskId]?.Value; | ||
51 | set => this.Set((int)MediaTupleFields.DiskId, value); | ||
52 | } | ||
53 | |||
54 | public int LastSequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)MediaTupleFields.LastSequence]?.Value; | ||
57 | set => this.Set((int)MediaTupleFields.LastSequence, value); | ||
58 | } | ||
59 | |||
60 | public string DiskPrompt | ||
61 | { | ||
62 | get => (string)this.Fields[(int)MediaTupleFields.DiskPrompt]?.Value; | ||
63 | set => this.Set((int)MediaTupleFields.DiskPrompt, value); | ||
64 | } | ||
65 | |||
66 | public string Cabinet | ||
67 | { | ||
68 | get => (string)this.Fields[(int)MediaTupleFields.Cabinet]?.Value; | ||
69 | set => this.Set((int)MediaTupleFields.Cabinet, value); | ||
70 | } | ||
71 | |||
72 | public string VolumeLabel | ||
73 | { | ||
74 | get => (string)this.Fields[(int)MediaTupleFields.VolumeLabel]?.Value; | ||
75 | set => this.Set((int)MediaTupleFields.VolumeLabel, value); | ||
76 | } | ||
77 | |||
78 | public string Source | ||
79 | { | ||
80 | get => (string)this.Fields[(int)MediaTupleFields.Source]?.Value; | ||
81 | set => this.Set((int)MediaTupleFields.Source, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs new file mode 100644 index 00000000..4f762214 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleAdminExecuteSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleAdminExecuteSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.After), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleAdminExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ModuleAdminExecuteSequenceTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ModuleAdminExecuteSequenceTupleFields | ||
26 | { | ||
27 | Action, | ||
28 | Sequence, | ||
29 | BaseAction, | ||
30 | After, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class ModuleAdminExecuteSequenceTuple : IntermediateTuple | ||
35 | { | ||
36 | public ModuleAdminExecuteSequenceTuple() : base(TupleDefinitions.ModuleAdminExecuteSequence, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ModuleAdminExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdminExecuteSequence, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ModuleAdminExecuteSequenceTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Action, value); | ||
50 | } | ||
51 | |||
52 | public int Sequence | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Sequence]?.Value; | ||
55 | set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Sequence, value); | ||
56 | } | ||
57 | |||
58 | public string BaseAction | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.BaseAction]?.Value; | ||
61 | set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.BaseAction, value); | ||
62 | } | ||
63 | |||
64 | public int After | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.After]?.Value; | ||
67 | set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.After, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ModuleAdminExecuteSequenceTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)ModuleAdminExecuteSequenceTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs new file mode 100644 index 00000000..bc873b72 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleAdminUISequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleAdminUISequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.BaseAction), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.After), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleAdminUISequenceTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ModuleAdminUISequenceTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ModuleAdminUISequenceTupleFields | ||
26 | { | ||
27 | Action, | ||
28 | Sequence, | ||
29 | BaseAction, | ||
30 | After, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class ModuleAdminUISequenceTuple : IntermediateTuple | ||
35 | { | ||
36 | public ModuleAdminUISequenceTuple() : base(TupleDefinitions.ModuleAdminUISequence, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ModuleAdminUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdminUISequence, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ModuleAdminUISequenceTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)ModuleAdminUISequenceTupleFields.Action, value); | ||
50 | } | ||
51 | |||
52 | public int Sequence | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.Sequence]?.Value; | ||
55 | set => this.Set((int)ModuleAdminUISequenceTupleFields.Sequence, value); | ||
56 | } | ||
57 | |||
58 | public string BaseAction | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.BaseAction]?.Value; | ||
61 | set => this.Set((int)ModuleAdminUISequenceTupleFields.BaseAction, value); | ||
62 | } | ||
63 | |||
64 | public int After | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ModuleAdminUISequenceTupleFields.After]?.Value; | ||
67 | set => this.Set((int)ModuleAdminUISequenceTupleFields.After, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ModuleAdminUISequenceTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)ModuleAdminUISequenceTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs new file mode 100644 index 00000000..2864be7e --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleAdvtExecuteSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleAdvtExecuteSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.After), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleAdvtExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ModuleAdvtExecuteSequenceTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ModuleAdvtExecuteSequenceTupleFields | ||
26 | { | ||
27 | Action, | ||
28 | Sequence, | ||
29 | BaseAction, | ||
30 | After, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class ModuleAdvtExecuteSequenceTuple : IntermediateTuple | ||
35 | { | ||
36 | public ModuleAdvtExecuteSequenceTuple() : base(TupleDefinitions.ModuleAdvtExecuteSequence, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ModuleAdvtExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleAdvtExecuteSequence, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ModuleAdvtExecuteSequenceTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Action, value); | ||
50 | } | ||
51 | |||
52 | public int Sequence | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Sequence]?.Value; | ||
55 | set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Sequence, value); | ||
56 | } | ||
57 | |||
58 | public string BaseAction | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.BaseAction]?.Value; | ||
61 | set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.BaseAction, value); | ||
62 | } | ||
63 | |||
64 | public int After | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.After]?.Value; | ||
67 | set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.After, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ModuleAdvtExecuteSequenceTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)ModuleAdvtExecuteSequenceTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs new file mode 100644 index 00000000..24b9aab4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleComponents = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleComponents, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.Component), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.ModuleID), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleComponentsTupleFields.Language), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(ModuleComponentsTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum ModuleComponentsTupleFields | ||
24 | { | ||
25 | Component, | ||
26 | ModuleID, | ||
27 | Language, | ||
28 | } | ||
29 | |||
30 | public class ModuleComponentsTuple : IntermediateTuple | ||
31 | { | ||
32 | public ModuleComponentsTuple() : base(TupleDefinitions.ModuleComponents, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public ModuleComponentsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleComponents, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[ModuleComponentsTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Component | ||
43 | { | ||
44 | get => (string)this.Fields[(int)ModuleComponentsTupleFields.Component]?.Value; | ||
45 | set => this.Set((int)ModuleComponentsTupleFields.Component, value); | ||
46 | } | ||
47 | |||
48 | public string ModuleID | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ModuleComponentsTupleFields.ModuleID]?.Value; | ||
51 | set => this.Set((int)ModuleComponentsTupleFields.ModuleID, value); | ||
52 | } | ||
53 | |||
54 | public int Language | ||
55 | { | ||
56 | get => (int)this.Fields[(int)ModuleComponentsTupleFields.Language]?.Value; | ||
57 | set => this.Set((int)ModuleComponentsTupleFields.Language, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs new file mode 100644 index 00000000..b3c4cd7f --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs | |||
@@ -0,0 +1,116 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleConfiguration = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleConfiguration, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Name), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Format), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Type), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.ContextData), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.DefaultValue), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Attributes), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.DisplayName), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.Description), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.HelpLocation), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(ModuleConfigurationTupleFields.HelpKeyword), IntermediateFieldType.String), | ||
23 | }, | ||
24 | typeof(ModuleConfigurationTuple)); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | namespace WixToolset.Data.Tuples | ||
29 | { | ||
30 | public enum ModuleConfigurationTupleFields | ||
31 | { | ||
32 | Name, | ||
33 | Format, | ||
34 | Type, | ||
35 | ContextData, | ||
36 | DefaultValue, | ||
37 | Attributes, | ||
38 | DisplayName, | ||
39 | Description, | ||
40 | HelpLocation, | ||
41 | HelpKeyword, | ||
42 | } | ||
43 | |||
44 | public class ModuleConfigurationTuple : IntermediateTuple | ||
45 | { | ||
46 | public ModuleConfigurationTuple() : base(TupleDefinitions.ModuleConfiguration, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public ModuleConfigurationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleConfiguration, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[ModuleConfigurationTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string Name | ||
57 | { | ||
58 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Name]?.Value; | ||
59 | set => this.Set((int)ModuleConfigurationTupleFields.Name, value); | ||
60 | } | ||
61 | |||
62 | public int Format | ||
63 | { | ||
64 | get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Format]?.Value; | ||
65 | set => this.Set((int)ModuleConfigurationTupleFields.Format, value); | ||
66 | } | ||
67 | |||
68 | public string Type | ||
69 | { | ||
70 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Type]?.Value; | ||
71 | set => this.Set((int)ModuleConfigurationTupleFields.Type, value); | ||
72 | } | ||
73 | |||
74 | public string ContextData | ||
75 | { | ||
76 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.ContextData]?.Value; | ||
77 | set => this.Set((int)ModuleConfigurationTupleFields.ContextData, value); | ||
78 | } | ||
79 | |||
80 | public string DefaultValue | ||
81 | { | ||
82 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DefaultValue]?.Value; | ||
83 | set => this.Set((int)ModuleConfigurationTupleFields.DefaultValue, value); | ||
84 | } | ||
85 | |||
86 | public int Attributes | ||
87 | { | ||
88 | get => (int)this.Fields[(int)ModuleConfigurationTupleFields.Attributes]?.Value; | ||
89 | set => this.Set((int)ModuleConfigurationTupleFields.Attributes, value); | ||
90 | } | ||
91 | |||
92 | public string DisplayName | ||
93 | { | ||
94 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.DisplayName]?.Value; | ||
95 | set => this.Set((int)ModuleConfigurationTupleFields.DisplayName, value); | ||
96 | } | ||
97 | |||
98 | public string Description | ||
99 | { | ||
100 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.Description]?.Value; | ||
101 | set => this.Set((int)ModuleConfigurationTupleFields.Description, value); | ||
102 | } | ||
103 | |||
104 | public string HelpLocation | ||
105 | { | ||
106 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpLocation]?.Value; | ||
107 | set => this.Set((int)ModuleConfigurationTupleFields.HelpLocation, value); | ||
108 | } | ||
109 | |||
110 | public string HelpKeyword | ||
111 | { | ||
112 | get => (string)this.Fields[(int)ModuleConfigurationTupleFields.HelpKeyword]?.Value; | ||
113 | set => this.Set((int)ModuleConfigurationTupleFields.HelpKeyword, value); | ||
114 | } | ||
115 | } | ||
116 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs new file mode 100644 index 00000000..ed887207 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleDependency = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleDependency, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.ModuleID), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.ModuleLanguage), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredID), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredLanguage), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleDependencyTupleFields.RequiredVersion), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ModuleDependencyTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ModuleDependencyTupleFields | ||
26 | { | ||
27 | ModuleID, | ||
28 | ModuleLanguage, | ||
29 | RequiredID, | ||
30 | RequiredLanguage, | ||
31 | RequiredVersion, | ||
32 | } | ||
33 | |||
34 | public class ModuleDependencyTuple : IntermediateTuple | ||
35 | { | ||
36 | public ModuleDependencyTuple() : base(TupleDefinitions.ModuleDependency, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ModuleDependencyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleDependency, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ModuleDependencyTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string ModuleID | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ModuleDependencyTupleFields.ModuleID]?.Value; | ||
49 | set => this.Set((int)ModuleDependencyTupleFields.ModuleID, value); | ||
50 | } | ||
51 | |||
52 | public int ModuleLanguage | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ModuleDependencyTupleFields.ModuleLanguage]?.Value; | ||
55 | set => this.Set((int)ModuleDependencyTupleFields.ModuleLanguage, value); | ||
56 | } | ||
57 | |||
58 | public string RequiredID | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredID]?.Value; | ||
61 | set => this.Set((int)ModuleDependencyTupleFields.RequiredID, value); | ||
62 | } | ||
63 | |||
64 | public int RequiredLanguage | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ModuleDependencyTupleFields.RequiredLanguage]?.Value; | ||
67 | set => this.Set((int)ModuleDependencyTupleFields.RequiredLanguage, value); | ||
68 | } | ||
69 | |||
70 | public string RequiredVersion | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ModuleDependencyTupleFields.RequiredVersion]?.Value; | ||
73 | set => this.Set((int)ModuleDependencyTupleFields.RequiredVersion, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs new file mode 100644 index 00000000..968fc2cd --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleExclusion = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleExclusion, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ModuleID), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ModuleLanguage), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedID), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedLanguage), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedMinVersion), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ModuleExclusionTupleFields.ExcludedMaxVersion), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(ModuleExclusionTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum ModuleExclusionTupleFields | ||
27 | { | ||
28 | ModuleID, | ||
29 | ModuleLanguage, | ||
30 | ExcludedID, | ||
31 | ExcludedLanguage, | ||
32 | ExcludedMinVersion, | ||
33 | ExcludedMaxVersion, | ||
34 | } | ||
35 | |||
36 | public class ModuleExclusionTuple : IntermediateTuple | ||
37 | { | ||
38 | public ModuleExclusionTuple() : base(TupleDefinitions.ModuleExclusion, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public ModuleExclusionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleExclusion, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[ModuleExclusionTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string ModuleID | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ModuleExclusionTupleFields.ModuleID]?.Value; | ||
51 | set => this.Set((int)ModuleExclusionTupleFields.ModuleID, value); | ||
52 | } | ||
53 | |||
54 | public int ModuleLanguage | ||
55 | { | ||
56 | get => (int)this.Fields[(int)ModuleExclusionTupleFields.ModuleLanguage]?.Value; | ||
57 | set => this.Set((int)ModuleExclusionTupleFields.ModuleLanguage, value); | ||
58 | } | ||
59 | |||
60 | public string ExcludedID | ||
61 | { | ||
62 | get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedID]?.Value; | ||
63 | set => this.Set((int)ModuleExclusionTupleFields.ExcludedID, value); | ||
64 | } | ||
65 | |||
66 | public int ExcludedLanguage | ||
67 | { | ||
68 | get => (int)this.Fields[(int)ModuleExclusionTupleFields.ExcludedLanguage]?.Value; | ||
69 | set => this.Set((int)ModuleExclusionTupleFields.ExcludedLanguage, value); | ||
70 | } | ||
71 | |||
72 | public string ExcludedMinVersion | ||
73 | { | ||
74 | get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMinVersion]?.Value; | ||
75 | set => this.Set((int)ModuleExclusionTupleFields.ExcludedMinVersion, value); | ||
76 | } | ||
77 | |||
78 | public string ExcludedMaxVersion | ||
79 | { | ||
80 | get => (string)this.Fields[(int)ModuleExclusionTupleFields.ExcludedMaxVersion]?.Value; | ||
81 | set => this.Set((int)ModuleExclusionTupleFields.ExcludedMaxVersion, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs new file mode 100644 index 00000000..ec82c94b --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleIgnoreTable = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleIgnoreTable, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleIgnoreTableTupleFields.Table), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(ModuleIgnoreTableTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum ModuleIgnoreTableTupleFields | ||
22 | { | ||
23 | Table, | ||
24 | } | ||
25 | |||
26 | public class ModuleIgnoreTableTuple : IntermediateTuple | ||
27 | { | ||
28 | public ModuleIgnoreTableTuple() : base(TupleDefinitions.ModuleIgnoreTable, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public ModuleIgnoreTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleIgnoreTable, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[ModuleIgnoreTableTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string Table | ||
39 | { | ||
40 | get => (string)this.Fields[(int)ModuleIgnoreTableTupleFields.Table]?.Value; | ||
41 | set => this.Set((int)ModuleIgnoreTableTupleFields.Table, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs new file mode 100644 index 00000000..22bb678c --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleInstallExecuteSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleInstallExecuteSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.BaseAction), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.After), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleInstallExecuteSequenceTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ModuleInstallExecuteSequenceTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ModuleInstallExecuteSequenceTupleFields | ||
26 | { | ||
27 | Action, | ||
28 | Sequence, | ||
29 | BaseAction, | ||
30 | After, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class ModuleInstallExecuteSequenceTuple : IntermediateTuple | ||
35 | { | ||
36 | public ModuleInstallExecuteSequenceTuple() : base(TupleDefinitions.ModuleInstallExecuteSequence, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ModuleInstallExecuteSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleInstallExecuteSequence, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ModuleInstallExecuteSequenceTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Action, value); | ||
50 | } | ||
51 | |||
52 | public int Sequence | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Sequence]?.Value; | ||
55 | set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Sequence, value); | ||
56 | } | ||
57 | |||
58 | public string BaseAction | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.BaseAction]?.Value; | ||
61 | set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.BaseAction, value); | ||
62 | } | ||
63 | |||
64 | public int After | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.After]?.Value; | ||
67 | set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.After, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ModuleInstallExecuteSequenceTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)ModuleInstallExecuteSequenceTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs new file mode 100644 index 00000000..cc6e0c76 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleInstallUISequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleInstallUISequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Action), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Sequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.BaseAction), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.After), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ModuleInstallUISequenceTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ModuleInstallUISequenceTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ModuleInstallUISequenceTupleFields | ||
26 | { | ||
27 | Action, | ||
28 | Sequence, | ||
29 | BaseAction, | ||
30 | After, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class ModuleInstallUISequenceTuple : IntermediateTuple | ||
35 | { | ||
36 | public ModuleInstallUISequenceTuple() : base(TupleDefinitions.ModuleInstallUISequence, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ModuleInstallUISequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleInstallUISequence, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ModuleInstallUISequenceTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)ModuleInstallUISequenceTupleFields.Action, value); | ||
50 | } | ||
51 | |||
52 | public int Sequence | ||
53 | { | ||
54 | get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.Sequence]?.Value; | ||
55 | set => this.Set((int)ModuleInstallUISequenceTupleFields.Sequence, value); | ||
56 | } | ||
57 | |||
58 | public string BaseAction | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.BaseAction]?.Value; | ||
61 | set => this.Set((int)ModuleInstallUISequenceTupleFields.BaseAction, value); | ||
62 | } | ||
63 | |||
64 | public int After | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ModuleInstallUISequenceTupleFields.After]?.Value; | ||
67 | set => this.Set((int)ModuleInstallUISequenceTupleFields.After, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ModuleInstallUISequenceTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)ModuleInstallUISequenceTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs new file mode 100644 index 00000000..836f769b --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleSignature = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleSignature, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.ModuleID), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.Language), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleSignatureTupleFields.Version), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(ModuleSignatureTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum ModuleSignatureTupleFields | ||
24 | { | ||
25 | ModuleID, | ||
26 | Language, | ||
27 | Version, | ||
28 | } | ||
29 | |||
30 | public class ModuleSignatureTuple : IntermediateTuple | ||
31 | { | ||
32 | public ModuleSignatureTuple() : base(TupleDefinitions.ModuleSignature, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public ModuleSignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleSignature, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[ModuleSignatureTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string ModuleID | ||
43 | { | ||
44 | get => (string)this.Fields[(int)ModuleSignatureTupleFields.ModuleID]?.Value; | ||
45 | set => this.Set((int)ModuleSignatureTupleFields.ModuleID, value); | ||
46 | } | ||
47 | |||
48 | public int Language | ||
49 | { | ||
50 | get => (int)this.Fields[(int)ModuleSignatureTupleFields.Language]?.Value; | ||
51 | set => this.Set((int)ModuleSignatureTupleFields.Language, value); | ||
52 | } | ||
53 | |||
54 | public string Version | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ModuleSignatureTupleFields.Version]?.Value; | ||
57 | set => this.Set((int)ModuleSignatureTupleFields.Version, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs new file mode 100644 index 00000000..609670f0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ModuleSubstitution = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ModuleSubstitution, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Row), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Column), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ModuleSubstitutionTupleFields.Value), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(ModuleSubstitutionTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum ModuleSubstitutionTupleFields | ||
25 | { | ||
26 | Table, | ||
27 | Row, | ||
28 | Column, | ||
29 | Value, | ||
30 | } | ||
31 | |||
32 | public class ModuleSubstitutionTuple : IntermediateTuple | ||
33 | { | ||
34 | public ModuleSubstitutionTuple() : base(TupleDefinitions.ModuleSubstitution, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public ModuleSubstitutionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ModuleSubstitution, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[ModuleSubstitutionTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Table | ||
45 | { | ||
46 | get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Table]?.Value; | ||
47 | set => this.Set((int)ModuleSubstitutionTupleFields.Table, value); | ||
48 | } | ||
49 | |||
50 | public string Row | ||
51 | { | ||
52 | get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Row]?.Value; | ||
53 | set => this.Set((int)ModuleSubstitutionTupleFields.Row, value); | ||
54 | } | ||
55 | |||
56 | public string Column | ||
57 | { | ||
58 | get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Column]?.Value; | ||
59 | set => this.Set((int)ModuleSubstitutionTupleFields.Column, value); | ||
60 | } | ||
61 | |||
62 | public string Value | ||
63 | { | ||
64 | get => (string)this.Fields[(int)ModuleSubstitutionTupleFields.Value]?.Value; | ||
65 | set => this.Set((int)ModuleSubstitutionTupleFields.Value, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MoveFileTuple.cs b/src/WixToolset.Data/Tuples/MoveFileTuple.cs new file mode 100644 index 00000000..404d39b3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MoveFileTuple.cs | |||
@@ -0,0 +1,92 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MoveFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MoveFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.FileKey), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceName), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestName), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.SourceFolder), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.DestFolder), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(MoveFileTupleFields.Options), IntermediateFieldType.Number), | ||
20 | }, | ||
21 | typeof(MoveFileTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | public enum MoveFileTupleFields | ||
28 | { | ||
29 | FileKey, | ||
30 | Component_, | ||
31 | SourceName, | ||
32 | DestName, | ||
33 | SourceFolder, | ||
34 | DestFolder, | ||
35 | Options, | ||
36 | } | ||
37 | |||
38 | public class MoveFileTuple : IntermediateTuple | ||
39 | { | ||
40 | public MoveFileTuple() : base(TupleDefinitions.MoveFile, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public MoveFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MoveFile, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[MoveFileTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string FileKey | ||
51 | { | ||
52 | get => (string)this.Fields[(int)MoveFileTupleFields.FileKey]?.Value; | ||
53 | set => this.Set((int)MoveFileTupleFields.FileKey, value); | ||
54 | } | ||
55 | |||
56 | public string Component_ | ||
57 | { | ||
58 | get => (string)this.Fields[(int)MoveFileTupleFields.Component_]?.Value; | ||
59 | set => this.Set((int)MoveFileTupleFields.Component_, value); | ||
60 | } | ||
61 | |||
62 | public string SourceName | ||
63 | { | ||
64 | get => (string)this.Fields[(int)MoveFileTupleFields.SourceName]?.Value; | ||
65 | set => this.Set((int)MoveFileTupleFields.SourceName, value); | ||
66 | } | ||
67 | |||
68 | public string DestName | ||
69 | { | ||
70 | get => (string)this.Fields[(int)MoveFileTupleFields.DestName]?.Value; | ||
71 | set => this.Set((int)MoveFileTupleFields.DestName, value); | ||
72 | } | ||
73 | |||
74 | public string SourceFolder | ||
75 | { | ||
76 | get => (string)this.Fields[(int)MoveFileTupleFields.SourceFolder]?.Value; | ||
77 | set => this.Set((int)MoveFileTupleFields.SourceFolder, value); | ||
78 | } | ||
79 | |||
80 | public string DestFolder | ||
81 | { | ||
82 | get => (string)this.Fields[(int)MoveFileTupleFields.DestFolder]?.Value; | ||
83 | set => this.Set((int)MoveFileTupleFields.DestFolder, value); | ||
84 | } | ||
85 | |||
86 | public int Options | ||
87 | { | ||
88 | get => (int)this.Fields[(int)MoveFileTupleFields.Options]?.Value; | ||
89 | set => this.Set((int)MoveFileTupleFields.Options, value); | ||
90 | } | ||
91 | } | ||
92 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs new file mode 100644 index 00000000..a8e97b00 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiAssemblyName = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiAssemblyName, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Component_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiAssemblyNameTupleFields.Value), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(MsiAssemblyNameTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum MsiAssemblyNameTupleFields | ||
24 | { | ||
25 | Component_, | ||
26 | Name, | ||
27 | Value, | ||
28 | } | ||
29 | |||
30 | public class MsiAssemblyNameTuple : IntermediateTuple | ||
31 | { | ||
32 | public MsiAssemblyNameTuple() : base(TupleDefinitions.MsiAssemblyName, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public MsiAssemblyNameTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiAssemblyName, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[MsiAssemblyNameTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Component_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Component_]?.Value; | ||
45 | set => this.Set((int)MsiAssemblyNameTupleFields.Component_, value); | ||
46 | } | ||
47 | |||
48 | public string Name | ||
49 | { | ||
50 | get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Name]?.Value; | ||
51 | set => this.Set((int)MsiAssemblyNameTupleFields.Name, value); | ||
52 | } | ||
53 | |||
54 | public string Value | ||
55 | { | ||
56 | get => (string)this.Fields[(int)MsiAssemblyNameTupleFields.Value]?.Value; | ||
57 | set => this.Set((int)MsiAssemblyNameTupleFields.Value, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs new file mode 100644 index 00000000..0cd814d8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiAssembly = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiAssembly, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Component_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Feature_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.File_Manifest), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.File_Application), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(MsiAssemblyTupleFields.Attributes), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(MsiAssemblyTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum MsiAssemblyTupleFields | ||
26 | { | ||
27 | Component_, | ||
28 | Feature_, | ||
29 | File_Manifest, | ||
30 | File_Application, | ||
31 | Attributes, | ||
32 | } | ||
33 | |||
34 | public class MsiAssemblyTuple : IntermediateTuple | ||
35 | { | ||
36 | public MsiAssemblyTuple() : base(TupleDefinitions.MsiAssembly, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public MsiAssemblyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiAssembly, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[MsiAssemblyTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Component_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiAssemblyTupleFields.Component_]?.Value; | ||
49 | set => this.Set((int)MsiAssemblyTupleFields.Component_, value); | ||
50 | } | ||
51 | |||
52 | public string Feature_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)MsiAssemblyTupleFields.Feature_]?.Value; | ||
55 | set => this.Set((int)MsiAssemblyTupleFields.Feature_, value); | ||
56 | } | ||
57 | |||
58 | public string File_Manifest | ||
59 | { | ||
60 | get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Manifest]?.Value; | ||
61 | set => this.Set((int)MsiAssemblyTupleFields.File_Manifest, value); | ||
62 | } | ||
63 | |||
64 | public string File_Application | ||
65 | { | ||
66 | get => (string)this.Fields[(int)MsiAssemblyTupleFields.File_Application]?.Value; | ||
67 | set => this.Set((int)MsiAssemblyTupleFields.File_Application, value); | ||
68 | } | ||
69 | |||
70 | public int Attributes | ||
71 | { | ||
72 | get => (int)this.Fields[(int)MsiAssemblyTupleFields.Attributes]?.Value; | ||
73 | set => this.Set((int)MsiAssemblyTupleFields.Attributes, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs new file mode 100644 index 00000000..fb949afb --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiDigitalCertificate = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiDigitalCertificate, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.DigitalCertificate), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiDigitalCertificateTupleFields.CertData), IntermediateFieldType.Path), | ||
15 | }, | ||
16 | typeof(MsiDigitalCertificateTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum MsiDigitalCertificateTupleFields | ||
23 | { | ||
24 | DigitalCertificate, | ||
25 | CertData, | ||
26 | } | ||
27 | |||
28 | public class MsiDigitalCertificateTuple : IntermediateTuple | ||
29 | { | ||
30 | public MsiDigitalCertificateTuple() : base(TupleDefinitions.MsiDigitalCertificate, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public MsiDigitalCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiDigitalCertificate, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[MsiDigitalCertificateTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string DigitalCertificate | ||
41 | { | ||
42 | get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.DigitalCertificate]?.Value; | ||
43 | set => this.Set((int)MsiDigitalCertificateTupleFields.DigitalCertificate, value); | ||
44 | } | ||
45 | |||
46 | public string CertData | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiDigitalCertificateTupleFields.CertData]?.Value; | ||
49 | set => this.Set((int)MsiDigitalCertificateTupleFields.CertData, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs new file mode 100644 index 00000000..8b30c53c --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiDigitalSignature = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiDigitalSignature, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.SignObject), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.DigitalCertificate_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MsiDigitalSignatureTupleFields.Hash), IntermediateFieldType.Path), | ||
17 | }, | ||
18 | typeof(MsiDigitalSignatureTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum MsiDigitalSignatureTupleFields | ||
25 | { | ||
26 | Table, | ||
27 | SignObject, | ||
28 | DigitalCertificate_, | ||
29 | Hash, | ||
30 | } | ||
31 | |||
32 | public class MsiDigitalSignatureTuple : IntermediateTuple | ||
33 | { | ||
34 | public MsiDigitalSignatureTuple() : base(TupleDefinitions.MsiDigitalSignature, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public MsiDigitalSignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiDigitalSignature, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[MsiDigitalSignatureTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Table | ||
45 | { | ||
46 | get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Table]?.Value; | ||
47 | set => this.Set((int)MsiDigitalSignatureTupleFields.Table, value); | ||
48 | } | ||
49 | |||
50 | public string SignObject | ||
51 | { | ||
52 | get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.SignObject]?.Value; | ||
53 | set => this.Set((int)MsiDigitalSignatureTupleFields.SignObject, value); | ||
54 | } | ||
55 | |||
56 | public string DigitalCertificate_ | ||
57 | { | ||
58 | get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.DigitalCertificate_]?.Value; | ||
59 | set => this.Set((int)MsiDigitalSignatureTupleFields.DigitalCertificate_, value); | ||
60 | } | ||
61 | |||
62 | public string Hash | ||
63 | { | ||
64 | get => (string)this.Fields[(int)MsiDigitalSignatureTupleFields.Hash]?.Value; | ||
65 | set => this.Set((int)MsiDigitalSignatureTupleFields.Hash, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs new file mode 100644 index 00000000..7f1b7a2a --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiEmbeddedChainer = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiEmbeddedChainer, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Condition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.CommandLine), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Source), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(MsiEmbeddedChainerTupleFields.Type), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(MsiEmbeddedChainerTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum MsiEmbeddedChainerTupleFields | ||
26 | { | ||
27 | MsiEmbeddedChainer, | ||
28 | Condition, | ||
29 | CommandLine, | ||
30 | Source, | ||
31 | Type, | ||
32 | } | ||
33 | |||
34 | public class MsiEmbeddedChainerTuple : IntermediateTuple | ||
35 | { | ||
36 | public MsiEmbeddedChainerTuple() : base(TupleDefinitions.MsiEmbeddedChainer, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public MsiEmbeddedChainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiEmbeddedChainer, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[MsiEmbeddedChainerTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string MsiEmbeddedChainer | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer]?.Value; | ||
49 | set => this.Set((int)MsiEmbeddedChainerTupleFields.MsiEmbeddedChainer, value); | ||
50 | } | ||
51 | |||
52 | public string Condition | ||
53 | { | ||
54 | get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Condition]?.Value; | ||
55 | set => this.Set((int)MsiEmbeddedChainerTupleFields.Condition, value); | ||
56 | } | ||
57 | |||
58 | public string CommandLine | ||
59 | { | ||
60 | get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.CommandLine]?.Value; | ||
61 | set => this.Set((int)MsiEmbeddedChainerTupleFields.CommandLine, value); | ||
62 | } | ||
63 | |||
64 | public string Source | ||
65 | { | ||
66 | get => (string)this.Fields[(int)MsiEmbeddedChainerTupleFields.Source]?.Value; | ||
67 | set => this.Set((int)MsiEmbeddedChainerTupleFields.Source, value); | ||
68 | } | ||
69 | |||
70 | public int Type | ||
71 | { | ||
72 | get => (int)this.Fields[(int)MsiEmbeddedChainerTupleFields.Type]?.Value; | ||
73 | set => this.Set((int)MsiEmbeddedChainerTupleFields.Type, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs new file mode 100644 index 00000000..82deb53a --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiEmbeddedUI = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiEmbeddedUI, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.MsiEmbeddedUI), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.FileName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.Attributes), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.MessageFilter), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(MsiEmbeddedUITupleFields.Data), IntermediateFieldType.Path), | ||
18 | }, | ||
19 | typeof(MsiEmbeddedUITuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum MsiEmbeddedUITupleFields | ||
26 | { | ||
27 | MsiEmbeddedUI, | ||
28 | FileName, | ||
29 | Attributes, | ||
30 | MessageFilter, | ||
31 | Data, | ||
32 | } | ||
33 | |||
34 | public class MsiEmbeddedUITuple : IntermediateTuple | ||
35 | { | ||
36 | public MsiEmbeddedUITuple() : base(TupleDefinitions.MsiEmbeddedUI, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public MsiEmbeddedUITuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiEmbeddedUI, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[MsiEmbeddedUITupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string MsiEmbeddedUI | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.MsiEmbeddedUI]?.Value; | ||
49 | set => this.Set((int)MsiEmbeddedUITupleFields.MsiEmbeddedUI, value); | ||
50 | } | ||
51 | |||
52 | public string FileName | ||
53 | { | ||
54 | get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.FileName]?.Value; | ||
55 | set => this.Set((int)MsiEmbeddedUITupleFields.FileName, value); | ||
56 | } | ||
57 | |||
58 | public int Attributes | ||
59 | { | ||
60 | get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.Attributes]?.Value; | ||
61 | set => this.Set((int)MsiEmbeddedUITupleFields.Attributes, value); | ||
62 | } | ||
63 | |||
64 | public int MessageFilter | ||
65 | { | ||
66 | get => (int)this.Fields[(int)MsiEmbeddedUITupleFields.MessageFilter]?.Value; | ||
67 | set => this.Set((int)MsiEmbeddedUITupleFields.MessageFilter, value); | ||
68 | } | ||
69 | |||
70 | public string Data | ||
71 | { | ||
72 | get => (string)this.Fields[(int)MsiEmbeddedUITupleFields.Data]?.Value; | ||
73 | set => this.Set((int)MsiEmbeddedUITupleFields.Data, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs new file mode 100644 index 00000000..2850bc22 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiFileHashTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiFileHash = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiFileHash, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.Options), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart1), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart2), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart3), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(MsiFileHashTupleFields.HashPart4), IntermediateFieldType.Number), | ||
19 | }, | ||
20 | typeof(MsiFileHashTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum MsiFileHashTupleFields | ||
27 | { | ||
28 | File_, | ||
29 | Options, | ||
30 | HashPart1, | ||
31 | HashPart2, | ||
32 | HashPart3, | ||
33 | HashPart4, | ||
34 | } | ||
35 | |||
36 | public class MsiFileHashTuple : IntermediateTuple | ||
37 | { | ||
38 | public MsiFileHashTuple() : base(TupleDefinitions.MsiFileHash, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public MsiFileHashTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiFileHash, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[MsiFileHashTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string File_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)MsiFileHashTupleFields.File_]?.Value; | ||
51 | set => this.Set((int)MsiFileHashTupleFields.File_, value); | ||
52 | } | ||
53 | |||
54 | public int Options | ||
55 | { | ||
56 | get => (int)this.Fields[(int)MsiFileHashTupleFields.Options]?.Value; | ||
57 | set => this.Set((int)MsiFileHashTupleFields.Options, value); | ||
58 | } | ||
59 | |||
60 | public int HashPart1 | ||
61 | { | ||
62 | get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart1]?.Value; | ||
63 | set => this.Set((int)MsiFileHashTupleFields.HashPart1, value); | ||
64 | } | ||
65 | |||
66 | public int HashPart2 | ||
67 | { | ||
68 | get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart2]?.Value; | ||
69 | set => this.Set((int)MsiFileHashTupleFields.HashPart2, value); | ||
70 | } | ||
71 | |||
72 | public int HashPart3 | ||
73 | { | ||
74 | get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart3]?.Value; | ||
75 | set => this.Set((int)MsiFileHashTupleFields.HashPart3, value); | ||
76 | } | ||
77 | |||
78 | public int HashPart4 | ||
79 | { | ||
80 | get => (int)this.Fields[(int)MsiFileHashTupleFields.HashPart4]?.Value; | ||
81 | set => this.Set((int)MsiFileHashTupleFields.HashPart4, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs new file mode 100644 index 00000000..14fc62a3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiLockPermissionsEx = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiLockPermissionsEx, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.MsiLockPermissionsEx), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.LockObject), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Table), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.SDDLText), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(MsiLockPermissionsExTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(MsiLockPermissionsExTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum MsiLockPermissionsExTupleFields | ||
26 | { | ||
27 | MsiLockPermissionsEx, | ||
28 | LockObject, | ||
29 | Table, | ||
30 | SDDLText, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class MsiLockPermissionsExTuple : IntermediateTuple | ||
35 | { | ||
36 | public MsiLockPermissionsExTuple() : base(TupleDefinitions.MsiLockPermissionsEx, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public MsiLockPermissionsExTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiLockPermissionsEx, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[MsiLockPermissionsExTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string MsiLockPermissionsEx | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx]?.Value; | ||
49 | set => this.Set((int)MsiLockPermissionsExTupleFields.MsiLockPermissionsEx, value); | ||
50 | } | ||
51 | |||
52 | public string LockObject | ||
53 | { | ||
54 | get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.LockObject]?.Value; | ||
55 | set => this.Set((int)MsiLockPermissionsExTupleFields.LockObject, value); | ||
56 | } | ||
57 | |||
58 | public string Table | ||
59 | { | ||
60 | get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Table]?.Value; | ||
61 | set => this.Set((int)MsiLockPermissionsExTupleFields.Table, value); | ||
62 | } | ||
63 | |||
64 | public string SDDLText | ||
65 | { | ||
66 | get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.SDDLText]?.Value; | ||
67 | set => this.Set((int)MsiLockPermissionsExTupleFields.SDDLText, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)MsiLockPermissionsExTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)MsiLockPermissionsExTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs new file mode 100644 index 00000000..6eeb141c --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPackageCertificate = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPackageCertificate, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.PackageCertificate), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPackageCertificateTupleFields.DigitalCertificate_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(MsiPackageCertificateTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum MsiPackageCertificateTupleFields | ||
23 | { | ||
24 | PackageCertificate, | ||
25 | DigitalCertificate_, | ||
26 | } | ||
27 | |||
28 | public class MsiPackageCertificateTuple : IntermediateTuple | ||
29 | { | ||
30 | public MsiPackageCertificateTuple() : base(TupleDefinitions.MsiPackageCertificate, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public MsiPackageCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPackageCertificate, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[MsiPackageCertificateTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string PackageCertificate | ||
41 | { | ||
42 | get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.PackageCertificate]?.Value; | ||
43 | set => this.Set((int)MsiPackageCertificateTupleFields.PackageCertificate, value); | ||
44 | } | ||
45 | |||
46 | public string DigitalCertificate_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiPackageCertificateTupleFields.DigitalCertificate_]?.Value; | ||
49 | set => this.Set((int)MsiPackageCertificateTupleFields.DigitalCertificate_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs new file mode 100644 index 00000000..1b02dca9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPatchCertificate = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPatchCertificate, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.PatchCertificate), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPatchCertificateTupleFields.DigitalCertificate_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(MsiPatchCertificateTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum MsiPatchCertificateTupleFields | ||
23 | { | ||
24 | PatchCertificate, | ||
25 | DigitalCertificate_, | ||
26 | } | ||
27 | |||
28 | public class MsiPatchCertificateTuple : IntermediateTuple | ||
29 | { | ||
30 | public MsiPatchCertificateTuple() : base(TupleDefinitions.MsiPatchCertificate, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public MsiPatchCertificateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchCertificate, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[MsiPatchCertificateTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string PatchCertificate | ||
41 | { | ||
42 | get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.PatchCertificate]?.Value; | ||
43 | set => this.Set((int)MsiPatchCertificateTupleFields.PatchCertificate, value); | ||
44 | } | ||
45 | |||
46 | public string DigitalCertificate_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiPatchCertificateTupleFields.DigitalCertificate_]?.Value; | ||
49 | set => this.Set((int)MsiPatchCertificateTupleFields.DigitalCertificate_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs new file mode 100644 index 00000000..6d99a9ae --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPatchHeaders = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPatchHeaders, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPatchHeadersTupleFields.StreamRef), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPatchHeadersTupleFields.Header), IntermediateFieldType.Path), | ||
15 | }, | ||
16 | typeof(MsiPatchHeadersTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum MsiPatchHeadersTupleFields | ||
23 | { | ||
24 | StreamRef, | ||
25 | Header, | ||
26 | } | ||
27 | |||
28 | public class MsiPatchHeadersTuple : IntermediateTuple | ||
29 | { | ||
30 | public MsiPatchHeadersTuple() : base(TupleDefinitions.MsiPatchHeaders, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public MsiPatchHeadersTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchHeaders, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[MsiPatchHeadersTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string StreamRef | ||
41 | { | ||
42 | get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.StreamRef]?.Value; | ||
43 | set => this.Set((int)MsiPatchHeadersTupleFields.StreamRef, value); | ||
44 | } | ||
45 | |||
46 | public string Header | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiPatchHeadersTupleFields.Header]?.Value; | ||
49 | set => this.Set((int)MsiPatchHeadersTupleFields.Header, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs new file mode 100644 index 00000000..f6a6fd7d --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPatchMetadata = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPatchMetadata, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Company), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Property), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiPatchMetadataTupleFields.Value), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(MsiPatchMetadataTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum MsiPatchMetadataTupleFields | ||
24 | { | ||
25 | Company, | ||
26 | Property, | ||
27 | Value, | ||
28 | } | ||
29 | |||
30 | public class MsiPatchMetadataTuple : IntermediateTuple | ||
31 | { | ||
32 | public MsiPatchMetadataTuple() : base(TupleDefinitions.MsiPatchMetadata, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public MsiPatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchMetadata, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[MsiPatchMetadataTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Company | ||
43 | { | ||
44 | get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Company]?.Value; | ||
45 | set => this.Set((int)MsiPatchMetadataTupleFields.Company, value); | ||
46 | } | ||
47 | |||
48 | public string Property | ||
49 | { | ||
50 | get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Property]?.Value; | ||
51 | set => this.Set((int)MsiPatchMetadataTupleFields.Property, value); | ||
52 | } | ||
53 | |||
54 | public string Value | ||
55 | { | ||
56 | get => (string)this.Fields[(int)MsiPatchMetadataTupleFields.Value]?.Value; | ||
57 | set => this.Set((int)MsiPatchMetadataTupleFields.Value, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs new file mode 100644 index 00000000..f23ace77 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPatchOldAssemblyFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPatchOldAssemblyFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyFileTupleFields.Assembly_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(MsiPatchOldAssemblyFileTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum MsiPatchOldAssemblyFileTupleFields | ||
23 | { | ||
24 | File_, | ||
25 | Assembly_, | ||
26 | } | ||
27 | |||
28 | public class MsiPatchOldAssemblyFileTuple : IntermediateTuple | ||
29 | { | ||
30 | public MsiPatchOldAssemblyFileTuple() : base(TupleDefinitions.MsiPatchOldAssemblyFile, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public MsiPatchOldAssemblyFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchOldAssemblyFile, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[MsiPatchOldAssemblyFileTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string File_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.File_]?.Value; | ||
43 | set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.File_, value); | ||
44 | } | ||
45 | |||
46 | public string Assembly_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)MsiPatchOldAssemblyFileTupleFields.Assembly_]?.Value; | ||
49 | set => this.Set((int)MsiPatchOldAssemblyFileTupleFields.Assembly_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs new file mode 100644 index 00000000..77385f5f --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPatchOldAssemblyName = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPatchOldAssemblyName, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Assembly), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiPatchOldAssemblyNameTupleFields.Value), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(MsiPatchOldAssemblyNameTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum MsiPatchOldAssemblyNameTupleFields | ||
24 | { | ||
25 | Assembly, | ||
26 | Name, | ||
27 | Value, | ||
28 | } | ||
29 | |||
30 | public class MsiPatchOldAssemblyNameTuple : IntermediateTuple | ||
31 | { | ||
32 | public MsiPatchOldAssemblyNameTuple() : base(TupleDefinitions.MsiPatchOldAssemblyName, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public MsiPatchOldAssemblyNameTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchOldAssemblyName, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[MsiPatchOldAssemblyNameTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Assembly | ||
43 | { | ||
44 | get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Assembly]?.Value; | ||
45 | set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Assembly, value); | ||
46 | } | ||
47 | |||
48 | public string Name | ||
49 | { | ||
50 | get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Name]?.Value; | ||
51 | set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Name, value); | ||
52 | } | ||
53 | |||
54 | public string Value | ||
55 | { | ||
56 | get => (string)this.Fields[(int)MsiPatchOldAssemblyNameTupleFields.Value]?.Value; | ||
57 | set => this.Set((int)MsiPatchOldAssemblyNameTupleFields.Value, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs new file mode 100644 index 00000000..c48be28f --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiPatchSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiPatchSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.PatchFamily), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.ProductCode), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.Sequence), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MsiPatchSequenceTupleFields.Attributes), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(MsiPatchSequenceTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum MsiPatchSequenceTupleFields | ||
25 | { | ||
26 | PatchFamily, | ||
27 | ProductCode, | ||
28 | Sequence, | ||
29 | Attributes, | ||
30 | } | ||
31 | |||
32 | public class MsiPatchSequenceTuple : IntermediateTuple | ||
33 | { | ||
34 | public MsiPatchSequenceTuple() : base(TupleDefinitions.MsiPatchSequence, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public MsiPatchSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiPatchSequence, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[MsiPatchSequenceTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string PatchFamily | ||
45 | { | ||
46 | get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.PatchFamily]?.Value; | ||
47 | set => this.Set((int)MsiPatchSequenceTupleFields.PatchFamily, value); | ||
48 | } | ||
49 | |||
50 | public string ProductCode | ||
51 | { | ||
52 | get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.ProductCode]?.Value; | ||
53 | set => this.Set((int)MsiPatchSequenceTupleFields.ProductCode, value); | ||
54 | } | ||
55 | |||
56 | public string Sequence | ||
57 | { | ||
58 | get => (string)this.Fields[(int)MsiPatchSequenceTupleFields.Sequence]?.Value; | ||
59 | set => this.Set((int)MsiPatchSequenceTupleFields.Sequence, value); | ||
60 | } | ||
61 | |||
62 | public int Attributes | ||
63 | { | ||
64 | get => (int)this.Fields[(int)MsiPatchSequenceTupleFields.Attributes]?.Value; | ||
65 | set => this.Set((int)MsiPatchSequenceTupleFields.Attributes, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs new file mode 100644 index 00000000..043be793 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs | |||
@@ -0,0 +1,108 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiServiceConfigFailureActions = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiServiceConfigFailureActions, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.MsiServiceConfigFailureActions), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Event), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.ResetPeriod), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.RebootMessage), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Command), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Actions), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.DelayActions), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(MsiServiceConfigFailureActionsTupleFields.Component_), IntermediateFieldType.String), | ||
22 | }, | ||
23 | typeof(MsiServiceConfigFailureActionsTuple)); | ||
24 | } | ||
25 | } | ||
26 | |||
27 | namespace WixToolset.Data.Tuples | ||
28 | { | ||
29 | public enum MsiServiceConfigFailureActionsTupleFields | ||
30 | { | ||
31 | MsiServiceConfigFailureActions, | ||
32 | Name, | ||
33 | Event, | ||
34 | ResetPeriod, | ||
35 | RebootMessage, | ||
36 | Command, | ||
37 | Actions, | ||
38 | DelayActions, | ||
39 | Component_, | ||
40 | } | ||
41 | |||
42 | public class MsiServiceConfigFailureActionsTuple : IntermediateTuple | ||
43 | { | ||
44 | public MsiServiceConfigFailureActionsTuple() : base(TupleDefinitions.MsiServiceConfigFailureActions, null, null) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public MsiServiceConfigFailureActionsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiServiceConfigFailureActions, sourceLineNumber, id) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public IntermediateField this[MsiServiceConfigFailureActionsTupleFields index] => this.Fields[(int)index]; | ||
53 | |||
54 | public string MsiServiceConfigFailureActions | ||
55 | { | ||
56 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.MsiServiceConfigFailureActions]?.Value; | ||
57 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.MsiServiceConfigFailureActions, value); | ||
58 | } | ||
59 | |||
60 | public string Name | ||
61 | { | ||
62 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Name]?.Value; | ||
63 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Name, value); | ||
64 | } | ||
65 | |||
66 | public int Event | ||
67 | { | ||
68 | get => (int)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Event]?.Value; | ||
69 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Event, value); | ||
70 | } | ||
71 | |||
72 | public int ResetPeriod | ||
73 | { | ||
74 | get => (int)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod]?.Value; | ||
75 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.ResetPeriod, value); | ||
76 | } | ||
77 | |||
78 | public string RebootMessage | ||
79 | { | ||
80 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.RebootMessage]?.Value; | ||
81 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.RebootMessage, value); | ||
82 | } | ||
83 | |||
84 | public string Command | ||
85 | { | ||
86 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Command]?.Value; | ||
87 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Command, value); | ||
88 | } | ||
89 | |||
90 | public string Actions | ||
91 | { | ||
92 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Actions]?.Value; | ||
93 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Actions, value); | ||
94 | } | ||
95 | |||
96 | public string DelayActions | ||
97 | { | ||
98 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.DelayActions]?.Value; | ||
99 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.DelayActions, value); | ||
100 | } | ||
101 | |||
102 | public string Component_ | ||
103 | { | ||
104 | get => (string)this.Fields[(int)MsiServiceConfigFailureActionsTupleFields.Component_]?.Value; | ||
105 | set => this.Set((int)MsiServiceConfigFailureActionsTupleFields.Component_, value); | ||
106 | } | ||
107 | } | ||
108 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs new file mode 100644 index 00000000..701d85b4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiServiceConfig = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiServiceConfig, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.MsiServiceConfig), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Event), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.ConfigType), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Argument), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(MsiServiceConfigTupleFields.Component_), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(MsiServiceConfigTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum MsiServiceConfigTupleFields | ||
27 | { | ||
28 | MsiServiceConfig, | ||
29 | Name, | ||
30 | Event, | ||
31 | ConfigType, | ||
32 | Argument, | ||
33 | Component_, | ||
34 | } | ||
35 | |||
36 | public class MsiServiceConfigTuple : IntermediateTuple | ||
37 | { | ||
38 | public MsiServiceConfigTuple() : base(TupleDefinitions.MsiServiceConfig, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public MsiServiceConfigTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiServiceConfig, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[MsiServiceConfigTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string MsiServiceConfig | ||
49 | { | ||
50 | get => (string)this.Fields[(int)MsiServiceConfigTupleFields.MsiServiceConfig]?.Value; | ||
51 | set => this.Set((int)MsiServiceConfigTupleFields.MsiServiceConfig, value); | ||
52 | } | ||
53 | |||
54 | public string Name | ||
55 | { | ||
56 | get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Name]?.Value; | ||
57 | set => this.Set((int)MsiServiceConfigTupleFields.Name, value); | ||
58 | } | ||
59 | |||
60 | public int Event | ||
61 | { | ||
62 | get => (int)this.Fields[(int)MsiServiceConfigTupleFields.Event]?.Value; | ||
63 | set => this.Set((int)MsiServiceConfigTupleFields.Event, value); | ||
64 | } | ||
65 | |||
66 | public int ConfigType | ||
67 | { | ||
68 | get => (int)this.Fields[(int)MsiServiceConfigTupleFields.ConfigType]?.Value; | ||
69 | set => this.Set((int)MsiServiceConfigTupleFields.ConfigType, value); | ||
70 | } | ||
71 | |||
72 | public string Argument | ||
73 | { | ||
74 | get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Argument]?.Value; | ||
75 | set => this.Set((int)MsiServiceConfigTupleFields.Argument, value); | ||
76 | } | ||
77 | |||
78 | public string Component_ | ||
79 | { | ||
80 | get => (string)this.Fields[(int)MsiServiceConfigTupleFields.Component_]?.Value; | ||
81 | set => this.Set((int)MsiServiceConfigTupleFields.Component_, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs new file mode 100644 index 00000000..9ee6b2f2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition MsiShortcutProperty = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.MsiShortcutProperty, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.MsiShortcutProperty), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.Shortcut_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropertyKey), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(MsiShortcutPropertyTupleFields.PropVariantValue), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(MsiShortcutPropertyTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum MsiShortcutPropertyTupleFields | ||
25 | { | ||
26 | MsiShortcutProperty, | ||
27 | Shortcut_, | ||
28 | PropertyKey, | ||
29 | PropVariantValue, | ||
30 | } | ||
31 | |||
32 | public class MsiShortcutPropertyTuple : IntermediateTuple | ||
33 | { | ||
34 | public MsiShortcutPropertyTuple() : base(TupleDefinitions.MsiShortcutProperty, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public MsiShortcutPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.MsiShortcutProperty, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[MsiShortcutPropertyTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string MsiShortcutProperty | ||
45 | { | ||
46 | get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.MsiShortcutProperty]?.Value; | ||
47 | set => this.Set((int)MsiShortcutPropertyTupleFields.MsiShortcutProperty, value); | ||
48 | } | ||
49 | |||
50 | public string Shortcut_ | ||
51 | { | ||
52 | get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.Shortcut_]?.Value; | ||
53 | set => this.Set((int)MsiShortcutPropertyTupleFields.Shortcut_, value); | ||
54 | } | ||
55 | |||
56 | public string PropertyKey | ||
57 | { | ||
58 | get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropertyKey]?.Value; | ||
59 | set => this.Set((int)MsiShortcutPropertyTupleFields.PropertyKey, value); | ||
60 | } | ||
61 | |||
62 | public string PropVariantValue | ||
63 | { | ||
64 | get => (string)this.Fields[(int)MsiShortcutPropertyTupleFields.PropVariantValue]?.Value; | ||
65 | set => this.Set((int)MsiShortcutPropertyTupleFields.PropVariantValue, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs new file mode 100644 index 00000000..de4f88cd --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ODBCAttribute = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ODBCAttribute, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Driver_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Attribute), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ODBCAttributeTupleFields.Value), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(ODBCAttributeTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum ODBCAttributeTupleFields | ||
24 | { | ||
25 | Driver_, | ||
26 | Attribute, | ||
27 | Value, | ||
28 | } | ||
29 | |||
30 | public class ODBCAttributeTuple : IntermediateTuple | ||
31 | { | ||
32 | public ODBCAttributeTuple() : base(TupleDefinitions.ODBCAttribute, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public ODBCAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCAttribute, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[ODBCAttributeTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Driver_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)ODBCAttributeTupleFields.Driver_]?.Value; | ||
45 | set => this.Set((int)ODBCAttributeTupleFields.Driver_, value); | ||
46 | } | ||
47 | |||
48 | public string Attribute | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ODBCAttributeTupleFields.Attribute]?.Value; | ||
51 | set => this.Set((int)ODBCAttributeTupleFields.Attribute, value); | ||
52 | } | ||
53 | |||
54 | public string Value | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ODBCAttributeTupleFields.Value]?.Value; | ||
57 | set => this.Set((int)ODBCAttributeTupleFields.Value, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs new file mode 100644 index 00000000..c06b2da0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ODBCDataSource = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ODBCDataSource, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DataSource), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Description), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.DriverDescription), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ODBCDataSourceTupleFields.Registration), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(ODBCDataSourceTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ODBCDataSourceTupleFields | ||
26 | { | ||
27 | DataSource, | ||
28 | Component_, | ||
29 | Description, | ||
30 | DriverDescription, | ||
31 | Registration, | ||
32 | } | ||
33 | |||
34 | public class ODBCDataSourceTuple : IntermediateTuple | ||
35 | { | ||
36 | public ODBCDataSourceTuple() : base(TupleDefinitions.ODBCDataSource, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ODBCDataSourceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCDataSource, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ODBCDataSourceTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string DataSource | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DataSource]?.Value; | ||
49 | set => this.Set((int)ODBCDataSourceTupleFields.DataSource, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)ODBCDataSourceTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string Description | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ODBCDataSourceTupleFields.Description]?.Value; | ||
61 | set => this.Set((int)ODBCDataSourceTupleFields.Description, value); | ||
62 | } | ||
63 | |||
64 | public string DriverDescription | ||
65 | { | ||
66 | get => (string)this.Fields[(int)ODBCDataSourceTupleFields.DriverDescription]?.Value; | ||
67 | set => this.Set((int)ODBCDataSourceTupleFields.DriverDescription, value); | ||
68 | } | ||
69 | |||
70 | public int Registration | ||
71 | { | ||
72 | get => (int)this.Fields[(int)ODBCDataSourceTupleFields.Registration]?.Value; | ||
73 | set => this.Set((int)ODBCDataSourceTupleFields.Registration, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs new file mode 100644 index 00000000..ab40ee88 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCDriverTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ODBCDriver = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ODBCDriver, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Driver), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.Description), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ODBCDriverTupleFields.File_Setup), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ODBCDriverTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ODBCDriverTupleFields | ||
26 | { | ||
27 | Driver, | ||
28 | Component_, | ||
29 | Description, | ||
30 | File_, | ||
31 | File_Setup, | ||
32 | } | ||
33 | |||
34 | public class ODBCDriverTuple : IntermediateTuple | ||
35 | { | ||
36 | public ODBCDriverTuple() : base(TupleDefinitions.ODBCDriver, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ODBCDriverTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCDriver, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ODBCDriverTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Driver | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ODBCDriverTupleFields.Driver]?.Value; | ||
49 | set => this.Set((int)ODBCDriverTupleFields.Driver, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)ODBCDriverTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)ODBCDriverTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string Description | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ODBCDriverTupleFields.Description]?.Value; | ||
61 | set => this.Set((int)ODBCDriverTupleFields.Description, value); | ||
62 | } | ||
63 | |||
64 | public string File_ | ||
65 | { | ||
66 | get => (string)this.Fields[(int)ODBCDriverTupleFields.File_]?.Value; | ||
67 | set => this.Set((int)ODBCDriverTupleFields.File_, value); | ||
68 | } | ||
69 | |||
70 | public string File_Setup | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ODBCDriverTupleFields.File_Setup]?.Value; | ||
73 | set => this.Set((int)ODBCDriverTupleFields.File_Setup, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs new file mode 100644 index 00000000..541eb532 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ODBCSourceAttribute = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ODBCSourceAttribute, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.DataSource_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Attribute), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ODBCSourceAttributeTupleFields.Value), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(ODBCSourceAttributeTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum ODBCSourceAttributeTupleFields | ||
24 | { | ||
25 | DataSource_, | ||
26 | Attribute, | ||
27 | Value, | ||
28 | } | ||
29 | |||
30 | public class ODBCSourceAttributeTuple : IntermediateTuple | ||
31 | { | ||
32 | public ODBCSourceAttributeTuple() : base(TupleDefinitions.ODBCSourceAttribute, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public ODBCSourceAttributeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCSourceAttribute, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[ODBCSourceAttributeTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string DataSource_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.DataSource_]?.Value; | ||
45 | set => this.Set((int)ODBCSourceAttributeTupleFields.DataSource_, value); | ||
46 | } | ||
47 | |||
48 | public string Attribute | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Attribute]?.Value; | ||
51 | set => this.Set((int)ODBCSourceAttributeTupleFields.Attribute, value); | ||
52 | } | ||
53 | |||
54 | public string Value | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ODBCSourceAttributeTupleFields.Value]?.Value; | ||
57 | set => this.Set((int)ODBCSourceAttributeTupleFields.Value, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs new file mode 100644 index 00000000..ab1abbdc --- /dev/null +++ b/src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ODBCTranslator = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ODBCTranslator, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Translator), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.Description), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ODBCTranslatorTupleFields.File_Setup), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(ODBCTranslatorTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ODBCTranslatorTupleFields | ||
26 | { | ||
27 | Translator, | ||
28 | Component_, | ||
29 | Description, | ||
30 | File_, | ||
31 | File_Setup, | ||
32 | } | ||
33 | |||
34 | public class ODBCTranslatorTuple : IntermediateTuple | ||
35 | { | ||
36 | public ODBCTranslatorTuple() : base(TupleDefinitions.ODBCTranslator, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ODBCTranslatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ODBCTranslator, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ODBCTranslatorTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Translator | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Translator]?.Value; | ||
49 | set => this.Set((int)ODBCTranslatorTupleFields.Translator, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)ODBCTranslatorTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string Description | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ODBCTranslatorTupleFields.Description]?.Value; | ||
61 | set => this.Set((int)ODBCTranslatorTupleFields.Description, value); | ||
62 | } | ||
63 | |||
64 | public string File_ | ||
65 | { | ||
66 | get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_]?.Value; | ||
67 | set => this.Set((int)ODBCTranslatorTupleFields.File_, value); | ||
68 | } | ||
69 | |||
70 | public string File_Setup | ||
71 | { | ||
72 | get => (string)this.Fields[(int)ODBCTranslatorTupleFields.File_Setup]?.Value; | ||
73 | set => this.Set((int)ODBCTranslatorTupleFields.File_Setup, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs new file mode 100644 index 00000000..d596e58e --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchMetadataTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition PatchMetadata = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.PatchMetadata, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Company), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Property), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(PatchMetadataTupleFields.Value), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(PatchMetadataTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum PatchMetadataTupleFields | ||
24 | { | ||
25 | Company, | ||
26 | Property, | ||
27 | Value, | ||
28 | } | ||
29 | |||
30 | public class PatchMetadataTuple : IntermediateTuple | ||
31 | { | ||
32 | public PatchMetadataTuple() : base(TupleDefinitions.PatchMetadata, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public PatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchMetadata, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[PatchMetadataTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Company | ||
43 | { | ||
44 | get => (string)this.Fields[(int)PatchMetadataTupleFields.Company]?.Value; | ||
45 | set => this.Set((int)PatchMetadataTupleFields.Company, value); | ||
46 | } | ||
47 | |||
48 | public string Property | ||
49 | { | ||
50 | get => (string)this.Fields[(int)PatchMetadataTupleFields.Property]?.Value; | ||
51 | set => this.Set((int)PatchMetadataTupleFields.Property, value); | ||
52 | } | ||
53 | |||
54 | public string Value | ||
55 | { | ||
56 | get => (string)this.Fields[(int)PatchMetadataTupleFields.Value]?.Value; | ||
57 | set => this.Set((int)PatchMetadataTupleFields.Value, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PatchPackageTuple.cs b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs new file mode 100644 index 00000000..276d00a2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchPackageTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition PatchPackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.PatchPackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.PatchId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PatchPackageTupleFields.Media_), IntermediateFieldType.Number), | ||
15 | }, | ||
16 | typeof(PatchPackageTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum PatchPackageTupleFields | ||
23 | { | ||
24 | PatchId, | ||
25 | Media_, | ||
26 | } | ||
27 | |||
28 | public class PatchPackageTuple : IntermediateTuple | ||
29 | { | ||
30 | public PatchPackageTuple() : base(TupleDefinitions.PatchPackage, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public PatchPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchPackage, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[PatchPackageTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string PatchId | ||
41 | { | ||
42 | get => (string)this.Fields[(int)PatchPackageTupleFields.PatchId]?.Value; | ||
43 | set => this.Set((int)PatchPackageTupleFields.PatchId, value); | ||
44 | } | ||
45 | |||
46 | public int Media_ | ||
47 | { | ||
48 | get => (int)this.Fields[(int)PatchPackageTupleFields.Media_]?.Value; | ||
49 | set => this.Set((int)PatchPackageTupleFields.Media_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs new file mode 100644 index 00000000..624054c1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchSequenceTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition PatchSequence = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.PatchSequence, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.PatchFamily), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Target), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Sequence), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(PatchSequenceTupleFields.Supersede), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(PatchSequenceTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum PatchSequenceTupleFields | ||
25 | { | ||
26 | PatchFamily, | ||
27 | Target, | ||
28 | Sequence, | ||
29 | Supersede, | ||
30 | } | ||
31 | |||
32 | public class PatchSequenceTuple : IntermediateTuple | ||
33 | { | ||
34 | public PatchSequenceTuple() : base(TupleDefinitions.PatchSequence, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public PatchSequenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PatchSequence, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[PatchSequenceTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string PatchFamily | ||
45 | { | ||
46 | get => (string)this.Fields[(int)PatchSequenceTupleFields.PatchFamily]?.Value; | ||
47 | set => this.Set((int)PatchSequenceTupleFields.PatchFamily, value); | ||
48 | } | ||
49 | |||
50 | public string Target | ||
51 | { | ||
52 | get => (string)this.Fields[(int)PatchSequenceTupleFields.Target]?.Value; | ||
53 | set => this.Set((int)PatchSequenceTupleFields.Target, value); | ||
54 | } | ||
55 | |||
56 | public string Sequence | ||
57 | { | ||
58 | get => (string)this.Fields[(int)PatchSequenceTupleFields.Sequence]?.Value; | ||
59 | set => this.Set((int)PatchSequenceTupleFields.Sequence, value); | ||
60 | } | ||
61 | |||
62 | public int Supersede | ||
63 | { | ||
64 | get => (int)this.Fields[(int)PatchSequenceTupleFields.Supersede]?.Value; | ||
65 | set => this.Set((int)PatchSequenceTupleFields.Supersede, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PatchTuple.cs b/src/WixToolset.Data/Tuples/PatchTuple.cs new file mode 100644 index 00000000..268307c7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PatchTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Patch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Patch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PatchTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PatchTupleFields.Sequence), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(PatchTupleFields.PatchSize), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(PatchTupleFields.Attributes), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(PatchTupleFields.Header), IntermediateFieldType.Path), | ||
18 | new IntermediateFieldDefinition(nameof(PatchTupleFields.StreamRef_), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(PatchTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum PatchTupleFields | ||
27 | { | ||
28 | File_, | ||
29 | Sequence, | ||
30 | PatchSize, | ||
31 | Attributes, | ||
32 | Header, | ||
33 | StreamRef_, | ||
34 | } | ||
35 | |||
36 | public class PatchTuple : IntermediateTuple | ||
37 | { | ||
38 | public PatchTuple() : base(TupleDefinitions.Patch, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public PatchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Patch, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[PatchTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string File_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)PatchTupleFields.File_]?.Value; | ||
51 | set => this.Set((int)PatchTupleFields.File_, value); | ||
52 | } | ||
53 | |||
54 | public int Sequence | ||
55 | { | ||
56 | get => (int)this.Fields[(int)PatchTupleFields.Sequence]?.Value; | ||
57 | set => this.Set((int)PatchTupleFields.Sequence, value); | ||
58 | } | ||
59 | |||
60 | public int PatchSize | ||
61 | { | ||
62 | get => (int)this.Fields[(int)PatchTupleFields.PatchSize]?.Value; | ||
63 | set => this.Set((int)PatchTupleFields.PatchSize, value); | ||
64 | } | ||
65 | |||
66 | public int Attributes | ||
67 | { | ||
68 | get => (int)this.Fields[(int)PatchTupleFields.Attributes]?.Value; | ||
69 | set => this.Set((int)PatchTupleFields.Attributes, value); | ||
70 | } | ||
71 | |||
72 | public string Header | ||
73 | { | ||
74 | get => (string)this.Fields[(int)PatchTupleFields.Header]?.Value; | ||
75 | set => this.Set((int)PatchTupleFields.Header, value); | ||
76 | } | ||
77 | |||
78 | public string StreamRef_ | ||
79 | { | ||
80 | get => (string)this.Fields[(int)PatchTupleFields.StreamRef_]?.Value; | ||
81 | set => this.Set((int)PatchTupleFields.StreamRef_, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ProgIdTuple.cs b/src/WixToolset.Data/Tuples/ProgIdTuple.cs new file mode 100644 index 00000000..a1713392 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ProgIdTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ProgId = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ProgId, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ProgIdTupleFields.ProgId_Parent), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Class_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Description), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ProgIdTupleFields.Icon_), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ProgIdTupleFields.IconIndex), IntermediateFieldType.Number), | ||
19 | }, | ||
20 | typeof(ProgIdTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum ProgIdTupleFields | ||
27 | { | ||
28 | ProgId, | ||
29 | ProgId_Parent, | ||
30 | Class_, | ||
31 | Description, | ||
32 | Icon_, | ||
33 | IconIndex, | ||
34 | } | ||
35 | |||
36 | public class ProgIdTuple : IntermediateTuple | ||
37 | { | ||
38 | public ProgIdTuple() : base(TupleDefinitions.ProgId, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public ProgIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ProgId, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[ProgIdTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string ProgId | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ProgIdTupleFields.ProgId]?.Value; | ||
51 | set => this.Set((int)ProgIdTupleFields.ProgId, value); | ||
52 | } | ||
53 | |||
54 | public string ProgId_Parent | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ProgIdTupleFields.ProgId_Parent]?.Value; | ||
57 | set => this.Set((int)ProgIdTupleFields.ProgId_Parent, value); | ||
58 | } | ||
59 | |||
60 | public string Class_ | ||
61 | { | ||
62 | get => (string)this.Fields[(int)ProgIdTupleFields.Class_]?.Value; | ||
63 | set => this.Set((int)ProgIdTupleFields.Class_, value); | ||
64 | } | ||
65 | |||
66 | public string Description | ||
67 | { | ||
68 | get => (string)this.Fields[(int)ProgIdTupleFields.Description]?.Value; | ||
69 | set => this.Set((int)ProgIdTupleFields.Description, value); | ||
70 | } | ||
71 | |||
72 | public string Icon_ | ||
73 | { | ||
74 | get => (string)this.Fields[(int)ProgIdTupleFields.Icon_]?.Value; | ||
75 | set => this.Set((int)ProgIdTupleFields.Icon_, value); | ||
76 | } | ||
77 | |||
78 | public int IconIndex | ||
79 | { | ||
80 | get => (int)this.Fields[(int)ProgIdTupleFields.IconIndex]?.Value; | ||
81 | set => this.Set((int)ProgIdTupleFields.IconIndex, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PropertiesTuple.cs b/src/WixToolset.Data/Tuples/PropertiesTuple.cs new file mode 100644 index 00000000..6aafaa51 --- /dev/null +++ b/src/WixToolset.Data/Tuples/PropertiesTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Properties = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Properties, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PropertiesTupleFields.Name), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PropertiesTupleFields.Value), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(PropertiesTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum PropertiesTupleFields | ||
23 | { | ||
24 | Name, | ||
25 | Value, | ||
26 | } | ||
27 | |||
28 | public class PropertiesTuple : IntermediateTuple | ||
29 | { | ||
30 | public PropertiesTuple() : base(TupleDefinitions.Properties, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public PropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Properties, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[PropertiesTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Name | ||
41 | { | ||
42 | get => (string)this.Fields[(int)PropertiesTupleFields.Name]?.Value; | ||
43 | set => this.Set((int)PropertiesTupleFields.Name, value); | ||
44 | } | ||
45 | |||
46 | public string Value | ||
47 | { | ||
48 | get => (string)this.Fields[(int)PropertiesTupleFields.Value]?.Value; | ||
49 | set => this.Set((int)PropertiesTupleFields.Value, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PropertyTuple.cs b/src/WixToolset.Data/Tuples/PropertyTuple.cs new file mode 100644 index 00000000..120b01fb --- /dev/null +++ b/src/WixToolset.Data/Tuples/PropertyTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Property = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Property, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PropertyTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PropertyTupleFields.Value), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(PropertyTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum PropertyTupleFields | ||
23 | { | ||
24 | Property, | ||
25 | Value, | ||
26 | } | ||
27 | |||
28 | public class PropertyTuple : IntermediateTuple | ||
29 | { | ||
30 | public PropertyTuple() : base(TupleDefinitions.Property, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public PropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Property, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[PropertyTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Property | ||
41 | { | ||
42 | get => (string)this.Fields[(int)PropertyTupleFields.Property]?.Value; | ||
43 | set => this.Set((int)PropertyTupleFields.Property, value); | ||
44 | } | ||
45 | |||
46 | public string Value | ||
47 | { | ||
48 | get => (string)this.Fields[(int)PropertyTupleFields.Value]?.Value; | ||
49 | set => this.Set((int)PropertyTupleFields.Value, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/PublishComponentTuple.cs b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs new file mode 100644 index 00000000..d17da1bb --- /dev/null +++ b/src/WixToolset.Data/Tuples/PublishComponentTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition PublishComponent = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.PublishComponent, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.ComponentId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Qualifier), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Component_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.AppData), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(PublishComponentTupleFields.Feature_), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(PublishComponentTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum PublishComponentTupleFields | ||
26 | { | ||
27 | ComponentId, | ||
28 | Qualifier, | ||
29 | Component_, | ||
30 | AppData, | ||
31 | Feature_, | ||
32 | } | ||
33 | |||
34 | public class PublishComponentTuple : IntermediateTuple | ||
35 | { | ||
36 | public PublishComponentTuple() : base(TupleDefinitions.PublishComponent, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public PublishComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.PublishComponent, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[PublishComponentTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string ComponentId | ||
47 | { | ||
48 | get => (string)this.Fields[(int)PublishComponentTupleFields.ComponentId]?.Value; | ||
49 | set => this.Set((int)PublishComponentTupleFields.ComponentId, value); | ||
50 | } | ||
51 | |||
52 | public string Qualifier | ||
53 | { | ||
54 | get => (string)this.Fields[(int)PublishComponentTupleFields.Qualifier]?.Value; | ||
55 | set => this.Set((int)PublishComponentTupleFields.Qualifier, value); | ||
56 | } | ||
57 | |||
58 | public string Component_ | ||
59 | { | ||
60 | get => (string)this.Fields[(int)PublishComponentTupleFields.Component_]?.Value; | ||
61 | set => this.Set((int)PublishComponentTupleFields.Component_, value); | ||
62 | } | ||
63 | |||
64 | public string AppData | ||
65 | { | ||
66 | get => (string)this.Fields[(int)PublishComponentTupleFields.AppData]?.Value; | ||
67 | set => this.Set((int)PublishComponentTupleFields.AppData, value); | ||
68 | } | ||
69 | |||
70 | public string Feature_ | ||
71 | { | ||
72 | get => (string)this.Fields[(int)PublishComponentTupleFields.Feature_]?.Value; | ||
73 | set => this.Set((int)PublishComponentTupleFields.Feature_, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/RadioButtonTuple.cs b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs new file mode 100644 index 00000000..420577dc --- /dev/null +++ b/src/WixToolset.Data/Tuples/RadioButtonTuple.cs | |||
@@ -0,0 +1,108 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition RadioButton = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.RadioButton, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Order), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.X), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Y), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Width), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Height), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Text), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(RadioButtonTupleFields.Help), IntermediateFieldType.String), | ||
22 | }, | ||
23 | typeof(RadioButtonTuple)); | ||
24 | } | ||
25 | } | ||
26 | |||
27 | namespace WixToolset.Data.Tuples | ||
28 | { | ||
29 | public enum RadioButtonTupleFields | ||
30 | { | ||
31 | Property, | ||
32 | Order, | ||
33 | Value, | ||
34 | X, | ||
35 | Y, | ||
36 | Width, | ||
37 | Height, | ||
38 | Text, | ||
39 | Help, | ||
40 | } | ||
41 | |||
42 | public class RadioButtonTuple : IntermediateTuple | ||
43 | { | ||
44 | public RadioButtonTuple() : base(TupleDefinitions.RadioButton, null, null) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public RadioButtonTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RadioButton, sourceLineNumber, id) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public IntermediateField this[RadioButtonTupleFields index] => this.Fields[(int)index]; | ||
53 | |||
54 | public string Property | ||
55 | { | ||
56 | get => (string)this.Fields[(int)RadioButtonTupleFields.Property]?.Value; | ||
57 | set => this.Set((int)RadioButtonTupleFields.Property, value); | ||
58 | } | ||
59 | |||
60 | public int Order | ||
61 | { | ||
62 | get => (int)this.Fields[(int)RadioButtonTupleFields.Order]?.Value; | ||
63 | set => this.Set((int)RadioButtonTupleFields.Order, value); | ||
64 | } | ||
65 | |||
66 | public string Value | ||
67 | { | ||
68 | get => (string)this.Fields[(int)RadioButtonTupleFields.Value]?.Value; | ||
69 | set => this.Set((int)RadioButtonTupleFields.Value, value); | ||
70 | } | ||
71 | |||
72 | public int X | ||
73 | { | ||
74 | get => (int)this.Fields[(int)RadioButtonTupleFields.X]?.Value; | ||
75 | set => this.Set((int)RadioButtonTupleFields.X, value); | ||
76 | } | ||
77 | |||
78 | public int Y | ||
79 | { | ||
80 | get => (int)this.Fields[(int)RadioButtonTupleFields.Y]?.Value; | ||
81 | set => this.Set((int)RadioButtonTupleFields.Y, value); | ||
82 | } | ||
83 | |||
84 | public int Width | ||
85 | { | ||
86 | get => (int)this.Fields[(int)RadioButtonTupleFields.Width]?.Value; | ||
87 | set => this.Set((int)RadioButtonTupleFields.Width, value); | ||
88 | } | ||
89 | |||
90 | public int Height | ||
91 | { | ||
92 | get => (int)this.Fields[(int)RadioButtonTupleFields.Height]?.Value; | ||
93 | set => this.Set((int)RadioButtonTupleFields.Height, value); | ||
94 | } | ||
95 | |||
96 | public string Text | ||
97 | { | ||
98 | get => (string)this.Fields[(int)RadioButtonTupleFields.Text]?.Value; | ||
99 | set => this.Set((int)RadioButtonTupleFields.Text, value); | ||
100 | } | ||
101 | |||
102 | public string Help | ||
103 | { | ||
104 | get => (string)this.Fields[(int)RadioButtonTupleFields.Help]?.Value; | ||
105 | set => this.Set((int)RadioButtonTupleFields.Help, value); | ||
106 | } | ||
107 | } | ||
108 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/RegLocatorTuple.cs b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs new file mode 100644 index 00000000..b098e687 --- /dev/null +++ b/src/WixToolset.Data/Tuples/RegLocatorTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition RegLocator = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.RegLocator, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Signature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Root), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Key), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Name), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(RegLocatorTupleFields.Type), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(RegLocatorTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum RegLocatorTupleFields | ||
26 | { | ||
27 | Signature_, | ||
28 | Root, | ||
29 | Key, | ||
30 | Name, | ||
31 | Type, | ||
32 | } | ||
33 | |||
34 | public class RegLocatorTuple : IntermediateTuple | ||
35 | { | ||
36 | public RegLocatorTuple() : base(TupleDefinitions.RegLocator, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public RegLocatorTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RegLocator, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[RegLocatorTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Signature_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)RegLocatorTupleFields.Signature_]?.Value; | ||
49 | set => this.Set((int)RegLocatorTupleFields.Signature_, value); | ||
50 | } | ||
51 | |||
52 | public int Root | ||
53 | { | ||
54 | get => (int)this.Fields[(int)RegLocatorTupleFields.Root]?.Value; | ||
55 | set => this.Set((int)RegLocatorTupleFields.Root, value); | ||
56 | } | ||
57 | |||
58 | public string Key | ||
59 | { | ||
60 | get => (string)this.Fields[(int)RegLocatorTupleFields.Key]?.Value; | ||
61 | set => this.Set((int)RegLocatorTupleFields.Key, value); | ||
62 | } | ||
63 | |||
64 | public string Name | ||
65 | { | ||
66 | get => (string)this.Fields[(int)RegLocatorTupleFields.Name]?.Value; | ||
67 | set => this.Set((int)RegLocatorTupleFields.Name, value); | ||
68 | } | ||
69 | |||
70 | public int Type | ||
71 | { | ||
72 | get => (int)this.Fields[(int)RegLocatorTupleFields.Type]?.Value; | ||
73 | set => this.Set((int)RegLocatorTupleFields.Type, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/RegistryTuple.cs b/src/WixToolset.Data/Tuples/RegistryTuple.cs new file mode 100644 index 00000000..a82cd5ee --- /dev/null +++ b/src/WixToolset.Data/Tuples/RegistryTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Registry = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Registry, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(RegistryTupleFields.Registry), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(RegistryTupleFields.Root), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(RegistryTupleFields.Key), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(RegistryTupleFields.Name), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(RegistryTupleFields.Value), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(RegistryTupleFields.Component_), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(RegistryTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum RegistryTupleFields | ||
27 | { | ||
28 | Registry, | ||
29 | Root, | ||
30 | Key, | ||
31 | Name, | ||
32 | Value, | ||
33 | Component_, | ||
34 | } | ||
35 | |||
36 | public class RegistryTuple : IntermediateTuple | ||
37 | { | ||
38 | public RegistryTuple() : base(TupleDefinitions.Registry, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public RegistryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Registry, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[RegistryTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string Registry | ||
49 | { | ||
50 | get => (string)this.Fields[(int)RegistryTupleFields.Registry]?.Value; | ||
51 | set => this.Set((int)RegistryTupleFields.Registry, value); | ||
52 | } | ||
53 | |||
54 | public int Root | ||
55 | { | ||
56 | get => (int)this.Fields[(int)RegistryTupleFields.Root]?.Value; | ||
57 | set => this.Set((int)RegistryTupleFields.Root, value); | ||
58 | } | ||
59 | |||
60 | public string Key | ||
61 | { | ||
62 | get => (string)this.Fields[(int)RegistryTupleFields.Key]?.Value; | ||
63 | set => this.Set((int)RegistryTupleFields.Key, value); | ||
64 | } | ||
65 | |||
66 | public string Name | ||
67 | { | ||
68 | get => (string)this.Fields[(int)RegistryTupleFields.Name]?.Value; | ||
69 | set => this.Set((int)RegistryTupleFields.Name, value); | ||
70 | } | ||
71 | |||
72 | public string Value | ||
73 | { | ||
74 | get => (string)this.Fields[(int)RegistryTupleFields.Value]?.Value; | ||
75 | set => this.Set((int)RegistryTupleFields.Value, value); | ||
76 | } | ||
77 | |||
78 | public string Component_ | ||
79 | { | ||
80 | get => (string)this.Fields[(int)RegistryTupleFields.Component_]?.Value; | ||
81 | set => this.Set((int)RegistryTupleFields.Component_, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/RemoveFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs new file mode 100644 index 00000000..1860172f --- /dev/null +++ b/src/WixToolset.Data/Tuples/RemoveFileTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition RemoveFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.RemoveFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileKey), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.FileName), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.DirProperty), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(RemoveFileTupleFields.InstallMode), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(RemoveFileTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum RemoveFileTupleFields | ||
26 | { | ||
27 | FileKey, | ||
28 | Component_, | ||
29 | FileName, | ||
30 | DirProperty, | ||
31 | InstallMode, | ||
32 | } | ||
33 | |||
34 | public class RemoveFileTuple : IntermediateTuple | ||
35 | { | ||
36 | public RemoveFileTuple() : base(TupleDefinitions.RemoveFile, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public RemoveFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveFile, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[RemoveFileTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string FileKey | ||
47 | { | ||
48 | get => (string)this.Fields[(int)RemoveFileTupleFields.FileKey]?.Value; | ||
49 | set => this.Set((int)RemoveFileTupleFields.FileKey, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)RemoveFileTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)RemoveFileTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string FileName | ||
59 | { | ||
60 | get => (string)this.Fields[(int)RemoveFileTupleFields.FileName]?.Value; | ||
61 | set => this.Set((int)RemoveFileTupleFields.FileName, value); | ||
62 | } | ||
63 | |||
64 | public string DirProperty | ||
65 | { | ||
66 | get => (string)this.Fields[(int)RemoveFileTupleFields.DirProperty]?.Value; | ||
67 | set => this.Set((int)RemoveFileTupleFields.DirProperty, value); | ||
68 | } | ||
69 | |||
70 | public int InstallMode | ||
71 | { | ||
72 | get => (int)this.Fields[(int)RemoveFileTupleFields.InstallMode]?.Value; | ||
73 | set => this.Set((int)RemoveFileTupleFields.InstallMode, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs new file mode 100644 index 00000000..e2e79560 --- /dev/null +++ b/src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition RemoveIniFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.RemoveIniFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.RemoveIniFile), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.FileName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.DirProperty), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Section), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Key), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Value), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Action), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(RemoveIniFileTupleFields.Component_), IntermediateFieldType.String), | ||
21 | }, | ||
22 | typeof(RemoveIniFileTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | public enum RemoveIniFileTupleFields | ||
29 | { | ||
30 | RemoveIniFile, | ||
31 | FileName, | ||
32 | DirProperty, | ||
33 | Section, | ||
34 | Key, | ||
35 | Value, | ||
36 | Action, | ||
37 | Component_, | ||
38 | } | ||
39 | |||
40 | public class RemoveIniFileTuple : IntermediateTuple | ||
41 | { | ||
42 | public RemoveIniFileTuple() : base(TupleDefinitions.RemoveIniFile, null, null) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public RemoveIniFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveIniFile, sourceLineNumber, id) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public IntermediateField this[RemoveIniFileTupleFields index] => this.Fields[(int)index]; | ||
51 | |||
52 | public string RemoveIniFile | ||
53 | { | ||
54 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.RemoveIniFile]?.Value; | ||
55 | set => this.Set((int)RemoveIniFileTupleFields.RemoveIniFile, value); | ||
56 | } | ||
57 | |||
58 | public string FileName | ||
59 | { | ||
60 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.FileName]?.Value; | ||
61 | set => this.Set((int)RemoveIniFileTupleFields.FileName, value); | ||
62 | } | ||
63 | |||
64 | public string DirProperty | ||
65 | { | ||
66 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.DirProperty]?.Value; | ||
67 | set => this.Set((int)RemoveIniFileTupleFields.DirProperty, value); | ||
68 | } | ||
69 | |||
70 | public string Section | ||
71 | { | ||
72 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.Section]?.Value; | ||
73 | set => this.Set((int)RemoveIniFileTupleFields.Section, value); | ||
74 | } | ||
75 | |||
76 | public string Key | ||
77 | { | ||
78 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.Key]?.Value; | ||
79 | set => this.Set((int)RemoveIniFileTupleFields.Key, value); | ||
80 | } | ||
81 | |||
82 | public string Value | ||
83 | { | ||
84 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.Value]?.Value; | ||
85 | set => this.Set((int)RemoveIniFileTupleFields.Value, value); | ||
86 | } | ||
87 | |||
88 | public int Action | ||
89 | { | ||
90 | get => (int)this.Fields[(int)RemoveIniFileTupleFields.Action]?.Value; | ||
91 | set => this.Set((int)RemoveIniFileTupleFields.Action, value); | ||
92 | } | ||
93 | |||
94 | public string Component_ | ||
95 | { | ||
96 | get => (string)this.Fields[(int)RemoveIniFileTupleFields.Component_]?.Value; | ||
97 | set => this.Set((int)RemoveIniFileTupleFields.Component_, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs new file mode 100644 index 00000000..154aad67 --- /dev/null +++ b/src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition RemoveRegistry = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.RemoveRegistry, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.RemoveRegistry), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Root), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Key), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Name), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(RemoveRegistryTupleFields.Component_), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(RemoveRegistryTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum RemoveRegistryTupleFields | ||
26 | { | ||
27 | RemoveRegistry, | ||
28 | Root, | ||
29 | Key, | ||
30 | Name, | ||
31 | Component_, | ||
32 | } | ||
33 | |||
34 | public class RemoveRegistryTuple : IntermediateTuple | ||
35 | { | ||
36 | public RemoveRegistryTuple() : base(TupleDefinitions.RemoveRegistry, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public RemoveRegistryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.RemoveRegistry, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[RemoveRegistryTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string RemoveRegistry | ||
47 | { | ||
48 | get => (string)this.Fields[(int)RemoveRegistryTupleFields.RemoveRegistry]?.Value; | ||
49 | set => this.Set((int)RemoveRegistryTupleFields.RemoveRegistry, value); | ||
50 | } | ||
51 | |||
52 | public int Root | ||
53 | { | ||
54 | get => (int)this.Fields[(int)RemoveRegistryTupleFields.Root]?.Value; | ||
55 | set => this.Set((int)RemoveRegistryTupleFields.Root, value); | ||
56 | } | ||
57 | |||
58 | public string Key | ||
59 | { | ||
60 | get => (string)this.Fields[(int)RemoveRegistryTupleFields.Key]?.Value; | ||
61 | set => this.Set((int)RemoveRegistryTupleFields.Key, value); | ||
62 | } | ||
63 | |||
64 | public string Name | ||
65 | { | ||
66 | get => (string)this.Fields[(int)RemoveRegistryTupleFields.Name]?.Value; | ||
67 | set => this.Set((int)RemoveRegistryTupleFields.Name, value); | ||
68 | } | ||
69 | |||
70 | public string Component_ | ||
71 | { | ||
72 | get => (string)this.Fields[(int)RemoveRegistryTupleFields.Component_]?.Value; | ||
73 | set => this.Set((int)RemoveRegistryTupleFields.Component_, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ReserveCostTuple.cs b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs new file mode 100644 index 00000000..769ac4b2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ReserveCostTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ReserveCost = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ReserveCost, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveKey), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.Component_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveFolder), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveLocal), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ReserveCostTupleFields.ReserveSource), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(ReserveCostTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum ReserveCostTupleFields | ||
26 | { | ||
27 | ReserveKey, | ||
28 | Component_, | ||
29 | ReserveFolder, | ||
30 | ReserveLocal, | ||
31 | ReserveSource, | ||
32 | } | ||
33 | |||
34 | public class ReserveCostTuple : IntermediateTuple | ||
35 | { | ||
36 | public ReserveCostTuple() : base(TupleDefinitions.ReserveCost, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public ReserveCostTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ReserveCost, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[ReserveCostTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string ReserveKey | ||
47 | { | ||
48 | get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveKey]?.Value; | ||
49 | set => this.Set((int)ReserveCostTupleFields.ReserveKey, value); | ||
50 | } | ||
51 | |||
52 | public string Component_ | ||
53 | { | ||
54 | get => (string)this.Fields[(int)ReserveCostTupleFields.Component_]?.Value; | ||
55 | set => this.Set((int)ReserveCostTupleFields.Component_, value); | ||
56 | } | ||
57 | |||
58 | public string ReserveFolder | ||
59 | { | ||
60 | get => (string)this.Fields[(int)ReserveCostTupleFields.ReserveFolder]?.Value; | ||
61 | set => this.Set((int)ReserveCostTupleFields.ReserveFolder, value); | ||
62 | } | ||
63 | |||
64 | public int ReserveLocal | ||
65 | { | ||
66 | get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveLocal]?.Value; | ||
67 | set => this.Set((int)ReserveCostTupleFields.ReserveLocal, value); | ||
68 | } | ||
69 | |||
70 | public int ReserveSource | ||
71 | { | ||
72 | get => (int)this.Fields[(int)ReserveCostTupleFields.ReserveSource]?.Value; | ||
73 | set => this.Set((int)ReserveCostTupleFields.ReserveSource, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs new file mode 100644 index 00000000..5db5f984 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SFPCatalogTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition SFPCatalog = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.SFPCatalog, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.SFPCatalog), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.Catalog), IntermediateFieldType.Path), | ||
15 | new IntermediateFieldDefinition(nameof(SFPCatalogTupleFields.Dependency), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(SFPCatalogTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum SFPCatalogTupleFields | ||
24 | { | ||
25 | SFPCatalog, | ||
26 | Catalog, | ||
27 | Dependency, | ||
28 | } | ||
29 | |||
30 | public class SFPCatalogTuple : IntermediateTuple | ||
31 | { | ||
32 | public SFPCatalogTuple() : base(TupleDefinitions.SFPCatalog, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public SFPCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SFPCatalog, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[SFPCatalogTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string SFPCatalog | ||
43 | { | ||
44 | get => (string)this.Fields[(int)SFPCatalogTupleFields.SFPCatalog]?.Value; | ||
45 | set => this.Set((int)SFPCatalogTupleFields.SFPCatalog, value); | ||
46 | } | ||
47 | |||
48 | public string Catalog | ||
49 | { | ||
50 | get => (string)this.Fields[(int)SFPCatalogTupleFields.Catalog]?.Value; | ||
51 | set => this.Set((int)SFPCatalogTupleFields.Catalog, value); | ||
52 | } | ||
53 | |||
54 | public string Dependency | ||
55 | { | ||
56 | get => (string)this.Fields[(int)SFPCatalogTupleFields.Dependency]?.Value; | ||
57 | set => this.Set((int)SFPCatalogTupleFields.Dependency, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/SelfRegTuple.cs b/src/WixToolset.Data/Tuples/SelfRegTuple.cs new file mode 100644 index 00000000..b32127f3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SelfRegTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition SelfReg = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.SelfReg, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(SelfRegTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(SelfRegTupleFields.Cost), IntermediateFieldType.Number), | ||
15 | }, | ||
16 | typeof(SelfRegTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum SelfRegTupleFields | ||
23 | { | ||
24 | File_, | ||
25 | Cost, | ||
26 | } | ||
27 | |||
28 | public class SelfRegTuple : IntermediateTuple | ||
29 | { | ||
30 | public SelfRegTuple() : base(TupleDefinitions.SelfReg, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public SelfRegTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.SelfReg, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[SelfRegTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string File_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)SelfRegTupleFields.File_]?.Value; | ||
43 | set => this.Set((int)SelfRegTupleFields.File_, value); | ||
44 | } | ||
45 | |||
46 | public int Cost | ||
47 | { | ||
48 | get => (int)this.Fields[(int)SelfRegTupleFields.Cost]?.Value; | ||
49 | set => this.Set((int)SelfRegTupleFields.Cost, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ServiceControlTuple.cs b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs new file mode 100644 index 00000000..a2cdc7a0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ServiceControlTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ServiceControl = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ServiceControl, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.ServiceControl), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Event), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Arguments), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Wait), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(ServiceControlTupleFields.Component_), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(ServiceControlTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum ServiceControlTupleFields | ||
27 | { | ||
28 | ServiceControl, | ||
29 | Name, | ||
30 | Event, | ||
31 | Arguments, | ||
32 | Wait, | ||
33 | Component_, | ||
34 | } | ||
35 | |||
36 | public class ServiceControlTuple : IntermediateTuple | ||
37 | { | ||
38 | public ServiceControlTuple() : base(TupleDefinitions.ServiceControl, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public ServiceControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ServiceControl, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[ServiceControlTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string ServiceControl | ||
49 | { | ||
50 | get => (string)this.Fields[(int)ServiceControlTupleFields.ServiceControl]?.Value; | ||
51 | set => this.Set((int)ServiceControlTupleFields.ServiceControl, value); | ||
52 | } | ||
53 | |||
54 | public string Name | ||
55 | { | ||
56 | get => (string)this.Fields[(int)ServiceControlTupleFields.Name]?.Value; | ||
57 | set => this.Set((int)ServiceControlTupleFields.Name, value); | ||
58 | } | ||
59 | |||
60 | public int Event | ||
61 | { | ||
62 | get => (int)this.Fields[(int)ServiceControlTupleFields.Event]?.Value; | ||
63 | set => this.Set((int)ServiceControlTupleFields.Event, value); | ||
64 | } | ||
65 | |||
66 | public string Arguments | ||
67 | { | ||
68 | get => (string)this.Fields[(int)ServiceControlTupleFields.Arguments]?.Value; | ||
69 | set => this.Set((int)ServiceControlTupleFields.Arguments, value); | ||
70 | } | ||
71 | |||
72 | public int Wait | ||
73 | { | ||
74 | get => (int)this.Fields[(int)ServiceControlTupleFields.Wait]?.Value; | ||
75 | set => this.Set((int)ServiceControlTupleFields.Wait, value); | ||
76 | } | ||
77 | |||
78 | public string Component_ | ||
79 | { | ||
80 | get => (string)this.Fields[(int)ServiceControlTupleFields.Component_]?.Value; | ||
81 | set => this.Set((int)ServiceControlTupleFields.Component_, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs new file mode 100644 index 00000000..cd02d21e --- /dev/null +++ b/src/WixToolset.Data/Tuples/ServiceInstallTuple.cs | |||
@@ -0,0 +1,140 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ServiceInstall = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.ServiceInstall, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ServiceInstall), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.DisplayName), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ServiceType), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartType), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.ErrorControl), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.LoadOrderGroup), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Dependencies), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.StartName), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Password), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Arguments), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Component_), IntermediateFieldType.String), | ||
25 | new IntermediateFieldDefinition(nameof(ServiceInstallTupleFields.Description), IntermediateFieldType.String), | ||
26 | }, | ||
27 | typeof(ServiceInstallTuple)); | ||
28 | } | ||
29 | } | ||
30 | |||
31 | namespace WixToolset.Data.Tuples | ||
32 | { | ||
33 | public enum ServiceInstallTupleFields | ||
34 | { | ||
35 | ServiceInstall, | ||
36 | Name, | ||
37 | DisplayName, | ||
38 | ServiceType, | ||
39 | StartType, | ||
40 | ErrorControl, | ||
41 | LoadOrderGroup, | ||
42 | Dependencies, | ||
43 | StartName, | ||
44 | Password, | ||
45 | Arguments, | ||
46 | Component_, | ||
47 | Description, | ||
48 | } | ||
49 | |||
50 | public class ServiceInstallTuple : IntermediateTuple | ||
51 | { | ||
52 | public ServiceInstallTuple() : base(TupleDefinitions.ServiceInstall, null, null) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | public ServiceInstallTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.ServiceInstall, sourceLineNumber, id) | ||
57 | { | ||
58 | } | ||
59 | |||
60 | public IntermediateField this[ServiceInstallTupleFields index] => this.Fields[(int)index]; | ||
61 | |||
62 | public string ServiceInstall | ||
63 | { | ||
64 | get => (string)this.Fields[(int)ServiceInstallTupleFields.ServiceInstall]?.Value; | ||
65 | set => this.Set((int)ServiceInstallTupleFields.ServiceInstall, value); | ||
66 | } | ||
67 | |||
68 | public string Name | ||
69 | { | ||
70 | get => (string)this.Fields[(int)ServiceInstallTupleFields.Name]?.Value; | ||
71 | set => this.Set((int)ServiceInstallTupleFields.Name, value); | ||
72 | } | ||
73 | |||
74 | public string DisplayName | ||
75 | { | ||
76 | get => (string)this.Fields[(int)ServiceInstallTupleFields.DisplayName]?.Value; | ||
77 | set => this.Set((int)ServiceInstallTupleFields.DisplayName, value); | ||
78 | } | ||
79 | |||
80 | public int ServiceType | ||
81 | { | ||
82 | get => (int)this.Fields[(int)ServiceInstallTupleFields.ServiceType]?.Value; | ||
83 | set => this.Set((int)ServiceInstallTupleFields.ServiceType, value); | ||
84 | } | ||
85 | |||
86 | public int StartType | ||
87 | { | ||
88 | get => (int)this.Fields[(int)ServiceInstallTupleFields.StartType]?.Value; | ||
89 | set => this.Set((int)ServiceInstallTupleFields.StartType, value); | ||
90 | } | ||
91 | |||
92 | public int ErrorControl | ||
93 | { | ||
94 | get => (int)this.Fields[(int)ServiceInstallTupleFields.ErrorControl]?.Value; | ||
95 | set => this.Set((int)ServiceInstallTupleFields.ErrorControl, value); | ||
96 | } | ||
97 | |||
98 | public string LoadOrderGroup | ||
99 | { | ||
100 | get => (string)this.Fields[(int)ServiceInstallTupleFields.LoadOrderGroup]?.Value; | ||
101 | set => this.Set((int)ServiceInstallTupleFields.LoadOrderGroup, value); | ||
102 | } | ||
103 | |||
104 | public string Dependencies | ||
105 | { | ||
106 | get => (string)this.Fields[(int)ServiceInstallTupleFields.Dependencies]?.Value; | ||
107 | set => this.Set((int)ServiceInstallTupleFields.Dependencies, value); | ||
108 | } | ||
109 | |||
110 | public string StartName | ||
111 | { | ||
112 | get => (string)this.Fields[(int)ServiceInstallTupleFields.StartName]?.Value; | ||
113 | set => this.Set((int)ServiceInstallTupleFields.StartName, value); | ||
114 | } | ||
115 | |||
116 | public string Password | ||
117 | { | ||
118 | get => (string)this.Fields[(int)ServiceInstallTupleFields.Password]?.Value; | ||
119 | set => this.Set((int)ServiceInstallTupleFields.Password, value); | ||
120 | } | ||
121 | |||
122 | public string Arguments | ||
123 | { | ||
124 | get => (string)this.Fields[(int)ServiceInstallTupleFields.Arguments]?.Value; | ||
125 | set => this.Set((int)ServiceInstallTupleFields.Arguments, value); | ||
126 | } | ||
127 | |||
128 | public string Component_ | ||
129 | { | ||
130 | get => (string)this.Fields[(int)ServiceInstallTupleFields.Component_]?.Value; | ||
131 | set => this.Set((int)ServiceInstallTupleFields.Component_, value); | ||
132 | } | ||
133 | |||
134 | public string Description | ||
135 | { | ||
136 | get => (string)this.Fields[(int)ServiceInstallTupleFields.Description]?.Value; | ||
137 | set => this.Set((int)ServiceInstallTupleFields.Description, value); | ||
138 | } | ||
139 | } | ||
140 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/ShortcutTuple.cs b/src/WixToolset.Data/Tuples/ShortcutTuple.cs new file mode 100644 index 00000000..0591e7f4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/ShortcutTuple.cs | |||
@@ -0,0 +1,164 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Shortcut = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Shortcut, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Shortcut), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Directory_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Name), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Component_), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Target), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Arguments), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Description), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Hotkey), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.Icon_), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.IconIndex), IntermediateFieldType.Number), | ||
23 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.ShowCmd), IntermediateFieldType.Number), | ||
24 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.WkDir), IntermediateFieldType.String), | ||
25 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DisplayResourceDLL), IntermediateFieldType.String), | ||
26 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DisplayResourceId), IntermediateFieldType.Number), | ||
27 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DescriptionResourceDLL), IntermediateFieldType.String), | ||
28 | new IntermediateFieldDefinition(nameof(ShortcutTupleFields.DescriptionResourceId), IntermediateFieldType.Number), | ||
29 | }, | ||
30 | typeof(ShortcutTuple)); | ||
31 | } | ||
32 | } | ||
33 | |||
34 | namespace WixToolset.Data.Tuples | ||
35 | { | ||
36 | public enum ShortcutTupleFields | ||
37 | { | ||
38 | Shortcut, | ||
39 | Directory_, | ||
40 | Name, | ||
41 | Component_, | ||
42 | Target, | ||
43 | Arguments, | ||
44 | Description, | ||
45 | Hotkey, | ||
46 | Icon_, | ||
47 | IconIndex, | ||
48 | ShowCmd, | ||
49 | WkDir, | ||
50 | DisplayResourceDLL, | ||
51 | DisplayResourceId, | ||
52 | DescriptionResourceDLL, | ||
53 | DescriptionResourceId, | ||
54 | } | ||
55 | |||
56 | public class ShortcutTuple : IntermediateTuple | ||
57 | { | ||
58 | public ShortcutTuple() : base(TupleDefinitions.Shortcut, null, null) | ||
59 | { | ||
60 | } | ||
61 | |||
62 | public ShortcutTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Shortcut, sourceLineNumber, id) | ||
63 | { | ||
64 | } | ||
65 | |||
66 | public IntermediateField this[ShortcutTupleFields index] => this.Fields[(int)index]; | ||
67 | |||
68 | public string Shortcut | ||
69 | { | ||
70 | get => (string)this.Fields[(int)ShortcutTupleFields.Shortcut]?.Value; | ||
71 | set => this.Set((int)ShortcutTupleFields.Shortcut, value); | ||
72 | } | ||
73 | |||
74 | public string Directory_ | ||
75 | { | ||
76 | get => (string)this.Fields[(int)ShortcutTupleFields.Directory_]?.Value; | ||
77 | set => this.Set((int)ShortcutTupleFields.Directory_, value); | ||
78 | } | ||
79 | |||
80 | public string Name | ||
81 | { | ||
82 | get => (string)this.Fields[(int)ShortcutTupleFields.Name]?.Value; | ||
83 | set => this.Set((int)ShortcutTupleFields.Name, value); | ||
84 | } | ||
85 | |||
86 | public string Component_ | ||
87 | { | ||
88 | get => (string)this.Fields[(int)ShortcutTupleFields.Component_]?.Value; | ||
89 | set => this.Set((int)ShortcutTupleFields.Component_, value); | ||
90 | } | ||
91 | |||
92 | public string Target | ||
93 | { | ||
94 | get => (string)this.Fields[(int)ShortcutTupleFields.Target]?.Value; | ||
95 | set => this.Set((int)ShortcutTupleFields.Target, value); | ||
96 | } | ||
97 | |||
98 | public string Arguments | ||
99 | { | ||
100 | get => (string)this.Fields[(int)ShortcutTupleFields.Arguments]?.Value; | ||
101 | set => this.Set((int)ShortcutTupleFields.Arguments, value); | ||
102 | } | ||
103 | |||
104 | public string Description | ||
105 | { | ||
106 | get => (string)this.Fields[(int)ShortcutTupleFields.Description]?.Value; | ||
107 | set => this.Set((int)ShortcutTupleFields.Description, value); | ||
108 | } | ||
109 | |||
110 | public int Hotkey | ||
111 | { | ||
112 | get => (int)this.Fields[(int)ShortcutTupleFields.Hotkey]?.Value; | ||
113 | set => this.Set((int)ShortcutTupleFields.Hotkey, value); | ||
114 | } | ||
115 | |||
116 | public string Icon_ | ||
117 | { | ||
118 | get => (string)this.Fields[(int)ShortcutTupleFields.Icon_]?.Value; | ||
119 | set => this.Set((int)ShortcutTupleFields.Icon_, value); | ||
120 | } | ||
121 | |||
122 | public int IconIndex | ||
123 | { | ||
124 | get => (int)this.Fields[(int)ShortcutTupleFields.IconIndex]?.Value; | ||
125 | set => this.Set((int)ShortcutTupleFields.IconIndex, value); | ||
126 | } | ||
127 | |||
128 | public int ShowCmd | ||
129 | { | ||
130 | get => (int)this.Fields[(int)ShortcutTupleFields.ShowCmd]?.Value; | ||
131 | set => this.Set((int)ShortcutTupleFields.ShowCmd, value); | ||
132 | } | ||
133 | |||
134 | public string WkDir | ||
135 | { | ||
136 | get => (string)this.Fields[(int)ShortcutTupleFields.WkDir]?.Value; | ||
137 | set => this.Set((int)ShortcutTupleFields.WkDir, value); | ||
138 | } | ||
139 | |||
140 | public string DisplayResourceDLL | ||
141 | { | ||
142 | get => (string)this.Fields[(int)ShortcutTupleFields.DisplayResourceDLL]?.Value; | ||
143 | set => this.Set((int)ShortcutTupleFields.DisplayResourceDLL, value); | ||
144 | } | ||
145 | |||
146 | public int DisplayResourceId | ||
147 | { | ||
148 | get => (int)this.Fields[(int)ShortcutTupleFields.DisplayResourceId]?.Value; | ||
149 | set => this.Set((int)ShortcutTupleFields.DisplayResourceId, value); | ||
150 | } | ||
151 | |||
152 | public string DescriptionResourceDLL | ||
153 | { | ||
154 | get => (string)this.Fields[(int)ShortcutTupleFields.DescriptionResourceDLL]?.Value; | ||
155 | set => this.Set((int)ShortcutTupleFields.DescriptionResourceDLL, value); | ||
156 | } | ||
157 | |||
158 | public int DescriptionResourceId | ||
159 | { | ||
160 | get => (int)this.Fields[(int)ShortcutTupleFields.DescriptionResourceId]?.Value; | ||
161 | set => this.Set((int)ShortcutTupleFields.DescriptionResourceId, value); | ||
162 | } | ||
163 | } | ||
164 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/SignatureTuple.cs b/src/WixToolset.Data/Tuples/SignatureTuple.cs new file mode 100644 index 00000000..b8dbf308 --- /dev/null +++ b/src/WixToolset.Data/Tuples/SignatureTuple.cs | |||
@@ -0,0 +1,108 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Signature = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Signature, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.Signature), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.FileName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinVersion), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxVersion), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinSize), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxSize), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.MinDate), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.MaxDate), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(SignatureTupleFields.Languages), IntermediateFieldType.String), | ||
22 | }, | ||
23 | typeof(SignatureTuple)); | ||
24 | } | ||
25 | } | ||
26 | |||
27 | namespace WixToolset.Data.Tuples | ||
28 | { | ||
29 | public enum SignatureTupleFields | ||
30 | { | ||
31 | Signature, | ||
32 | FileName, | ||
33 | MinVersion, | ||
34 | MaxVersion, | ||
35 | MinSize, | ||
36 | MaxSize, | ||
37 | MinDate, | ||
38 | MaxDate, | ||
39 | Languages, | ||
40 | } | ||
41 | |||
42 | public class SignatureTuple : IntermediateTuple | ||
43 | { | ||
44 | public SignatureTuple() : base(TupleDefinitions.Signature, null, null) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public SignatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Signature, sourceLineNumber, id) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public IntermediateField this[SignatureTupleFields index] => this.Fields[(int)index]; | ||
53 | |||
54 | public string Signature | ||
55 | { | ||
56 | get => (string)this.Fields[(int)SignatureTupleFields.Signature]?.Value; | ||
57 | set => this.Set((int)SignatureTupleFields.Signature, value); | ||
58 | } | ||
59 | |||
60 | public string FileName | ||
61 | { | ||
62 | get => (string)this.Fields[(int)SignatureTupleFields.FileName]?.Value; | ||
63 | set => this.Set((int)SignatureTupleFields.FileName, value); | ||
64 | } | ||
65 | |||
66 | public string MinVersion | ||
67 | { | ||
68 | get => (string)this.Fields[(int)SignatureTupleFields.MinVersion]?.Value; | ||
69 | set => this.Set((int)SignatureTupleFields.MinVersion, value); | ||
70 | } | ||
71 | |||
72 | public string MaxVersion | ||
73 | { | ||
74 | get => (string)this.Fields[(int)SignatureTupleFields.MaxVersion]?.Value; | ||
75 | set => this.Set((int)SignatureTupleFields.MaxVersion, value); | ||
76 | } | ||
77 | |||
78 | public int MinSize | ||
79 | { | ||
80 | get => (int)this.Fields[(int)SignatureTupleFields.MinSize]?.Value; | ||
81 | set => this.Set((int)SignatureTupleFields.MinSize, value); | ||
82 | } | ||
83 | |||
84 | public int MaxSize | ||
85 | { | ||
86 | get => (int)this.Fields[(int)SignatureTupleFields.MaxSize]?.Value; | ||
87 | set => this.Set((int)SignatureTupleFields.MaxSize, value); | ||
88 | } | ||
89 | |||
90 | public int MinDate | ||
91 | { | ||
92 | get => (int)this.Fields[(int)SignatureTupleFields.MinDate]?.Value; | ||
93 | set => this.Set((int)SignatureTupleFields.MinDate, value); | ||
94 | } | ||
95 | |||
96 | public int MaxDate | ||
97 | { | ||
98 | get => (int)this.Fields[(int)SignatureTupleFields.MaxDate]?.Value; | ||
99 | set => this.Set((int)SignatureTupleFields.MaxDate, value); | ||
100 | } | ||
101 | |||
102 | public string Languages | ||
103 | { | ||
104 | get => (string)this.Fields[(int)SignatureTupleFields.Languages]?.Value; | ||
105 | set => this.Set((int)SignatureTupleFields.Languages, value); | ||
106 | } | ||
107 | } | ||
108 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs new file mode 100644 index 00000000..449c4afe --- /dev/null +++ b/src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition TargetFiles_OptionalData = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.TargetFiles_OptionalData, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.Target), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.IgnoreOffsets), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.IgnoreLengths), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(TargetFiles_OptionalDataTupleFields.RetainOffsets), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(TargetFiles_OptionalDataTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum TargetFiles_OptionalDataTupleFields | ||
27 | { | ||
28 | Target, | ||
29 | FTK, | ||
30 | SymbolPaths, | ||
31 | IgnoreOffsets, | ||
32 | IgnoreLengths, | ||
33 | RetainOffsets, | ||
34 | } | ||
35 | |||
36 | public class TargetFiles_OptionalDataTuple : IntermediateTuple | ||
37 | { | ||
38 | public TargetFiles_OptionalDataTuple() : base(TupleDefinitions.TargetFiles_OptionalData, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public TargetFiles_OptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetFiles_OptionalData, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[TargetFiles_OptionalDataTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string Target | ||
49 | { | ||
50 | get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.Target]?.Value; | ||
51 | set => this.Set((int)TargetFiles_OptionalDataTupleFields.Target, value); | ||
52 | } | ||
53 | |||
54 | public string FTK | ||
55 | { | ||
56 | get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.FTK]?.Value; | ||
57 | set => this.Set((int)TargetFiles_OptionalDataTupleFields.FTK, value); | ||
58 | } | ||
59 | |||
60 | public string SymbolPaths | ||
61 | { | ||
62 | get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.SymbolPaths]?.Value; | ||
63 | set => this.Set((int)TargetFiles_OptionalDataTupleFields.SymbolPaths, value); | ||
64 | } | ||
65 | |||
66 | public string IgnoreOffsets | ||
67 | { | ||
68 | get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets]?.Value; | ||
69 | set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreOffsets, value); | ||
70 | } | ||
71 | |||
72 | public string IgnoreLengths | ||
73 | { | ||
74 | get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.IgnoreLengths]?.Value; | ||
75 | set => this.Set((int)TargetFiles_OptionalDataTupleFields.IgnoreLengths, value); | ||
76 | } | ||
77 | |||
78 | public string RetainOffsets | ||
79 | { | ||
80 | get => (string)this.Fields[(int)TargetFiles_OptionalDataTupleFields.RetainOffsets]?.Value; | ||
81 | set => this.Set((int)TargetFiles_OptionalDataTupleFields.RetainOffsets, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/TargetImagesTuple.cs b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs new file mode 100644 index 00000000..0cb74ec9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TargetImagesTuple.cs | |||
@@ -0,0 +1,92 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition TargetImages = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.TargetImages, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Target), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.MsiPath), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Upgraded), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.Order), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.ProductValidateFlags), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(TargetImagesTupleFields.IgnoreMissingSrcFiles), IntermediateFieldType.Number), | ||
20 | }, | ||
21 | typeof(TargetImagesTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | public enum TargetImagesTupleFields | ||
28 | { | ||
29 | Target, | ||
30 | MsiPath, | ||
31 | SymbolPaths, | ||
32 | Upgraded, | ||
33 | Order, | ||
34 | ProductValidateFlags, | ||
35 | IgnoreMissingSrcFiles, | ||
36 | } | ||
37 | |||
38 | public class TargetImagesTuple : IntermediateTuple | ||
39 | { | ||
40 | public TargetImagesTuple() : base(TupleDefinitions.TargetImages, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public TargetImagesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TargetImages, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[TargetImagesTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string Target | ||
51 | { | ||
52 | get => (string)this.Fields[(int)TargetImagesTupleFields.Target]?.Value; | ||
53 | set => this.Set((int)TargetImagesTupleFields.Target, value); | ||
54 | } | ||
55 | |||
56 | public string MsiPath | ||
57 | { | ||
58 | get => (string)this.Fields[(int)TargetImagesTupleFields.MsiPath]?.Value; | ||
59 | set => this.Set((int)TargetImagesTupleFields.MsiPath, value); | ||
60 | } | ||
61 | |||
62 | public string SymbolPaths | ||
63 | { | ||
64 | get => (string)this.Fields[(int)TargetImagesTupleFields.SymbolPaths]?.Value; | ||
65 | set => this.Set((int)TargetImagesTupleFields.SymbolPaths, value); | ||
66 | } | ||
67 | |||
68 | public string Upgraded | ||
69 | { | ||
70 | get => (string)this.Fields[(int)TargetImagesTupleFields.Upgraded]?.Value; | ||
71 | set => this.Set((int)TargetImagesTupleFields.Upgraded, value); | ||
72 | } | ||
73 | |||
74 | public int Order | ||
75 | { | ||
76 | get => (int)this.Fields[(int)TargetImagesTupleFields.Order]?.Value; | ||
77 | set => this.Set((int)TargetImagesTupleFields.Order, value); | ||
78 | } | ||
79 | |||
80 | public string ProductValidateFlags | ||
81 | { | ||
82 | get => (string)this.Fields[(int)TargetImagesTupleFields.ProductValidateFlags]?.Value; | ||
83 | set => this.Set((int)TargetImagesTupleFields.ProductValidateFlags, value); | ||
84 | } | ||
85 | |||
86 | public int IgnoreMissingSrcFiles | ||
87 | { | ||
88 | get => (int)this.Fields[(int)TargetImagesTupleFields.IgnoreMissingSrcFiles]?.Value; | ||
89 | set => this.Set((int)TargetImagesTupleFields.IgnoreMissingSrcFiles, value); | ||
90 | } | ||
91 | } | ||
92 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/TextStyleTuple.cs b/src/WixToolset.Data/Tuples/TextStyleTuple.cs new file mode 100644 index 00000000..20ec878a --- /dev/null +++ b/src/WixToolset.Data/Tuples/TextStyleTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition TextStyle = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.TextStyle, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(TextStyleTupleFields.TextStyle), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(TextStyleTupleFields.FaceName), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Size), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(TextStyleTupleFields.Color), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(TextStyleTupleFields.StyleBits), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(TextStyleTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum TextStyleTupleFields | ||
26 | { | ||
27 | TextStyle, | ||
28 | FaceName, | ||
29 | Size, | ||
30 | Color, | ||
31 | StyleBits, | ||
32 | } | ||
33 | |||
34 | public class TextStyleTuple : IntermediateTuple | ||
35 | { | ||
36 | public TextStyleTuple() : base(TupleDefinitions.TextStyle, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public TextStyleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TextStyle, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[TextStyleTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string TextStyle | ||
47 | { | ||
48 | get => (string)this.Fields[(int)TextStyleTupleFields.TextStyle]?.Value; | ||
49 | set => this.Set((int)TextStyleTupleFields.TextStyle, value); | ||
50 | } | ||
51 | |||
52 | public string FaceName | ||
53 | { | ||
54 | get => (string)this.Fields[(int)TextStyleTupleFields.FaceName]?.Value; | ||
55 | set => this.Set((int)TextStyleTupleFields.FaceName, value); | ||
56 | } | ||
57 | |||
58 | public int Size | ||
59 | { | ||
60 | get => (int)this.Fields[(int)TextStyleTupleFields.Size]?.Value; | ||
61 | set => this.Set((int)TextStyleTupleFields.Size, value); | ||
62 | } | ||
63 | |||
64 | public int Color | ||
65 | { | ||
66 | get => (int)this.Fields[(int)TextStyleTupleFields.Color]?.Value; | ||
67 | set => this.Set((int)TextStyleTupleFields.Color, value); | ||
68 | } | ||
69 | |||
70 | public int StyleBits | ||
71 | { | ||
72 | get => (int)this.Fields[(int)TextStyleTupleFields.StyleBits]?.Value; | ||
73 | set => this.Set((int)TextStyleTupleFields.StyleBits, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/TupleDefinitions.cs b/src/WixToolset.Data/Tuples/TupleDefinitions.cs new file mode 100644 index 00000000..b9ab2042 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TupleDefinitions.cs | |||
@@ -0,0 +1,815 @@ | |||
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 System; | ||
6 | |||
7 | public enum TupleDefinitionType | ||
8 | { | ||
9 | _Streams, | ||
10 | _SummaryInformation, | ||
11 | _TransformView, | ||
12 | _Validation, | ||
13 | ActionText, | ||
14 | AdminExecuteSequence, | ||
15 | AdminUISequence, | ||
16 | AdvtExecuteSequence, | ||
17 | AppId, | ||
18 | AppSearch, | ||
19 | BBControl, | ||
20 | Billboard, | ||
21 | Binary, | ||
22 | BindImage, | ||
23 | CCPSearch, | ||
24 | CheckBox, | ||
25 | Class, | ||
26 | ComboBox, | ||
27 | CompLocator, | ||
28 | Complus, | ||
29 | Component, | ||
30 | Condition, | ||
31 | Control, | ||
32 | ControlCondition, | ||
33 | ControlEvent, | ||
34 | CreateFolder, | ||
35 | CustomAction, | ||
36 | Dialog, | ||
37 | Directory, | ||
38 | DrLocator, | ||
39 | DuplicateFile, | ||
40 | Environment, | ||
41 | Error, | ||
42 | EventMapping, | ||
43 | Extension, | ||
44 | ExternalFiles, | ||
45 | FamilyFileRanges, | ||
46 | Feature, | ||
47 | FeatureComponents, | ||
48 | File, | ||
49 | FileSFPCatalog, | ||
50 | Font, | ||
51 | Icon, | ||
52 | ImageFamilies, | ||
53 | IniFile, | ||
54 | IniLocator, | ||
55 | InstallExecuteSequence, | ||
56 | InstallUISequence, | ||
57 | IsolatedComponent, | ||
58 | LaunchCondition, | ||
59 | ListBox, | ||
60 | ListView, | ||
61 | LockPermissions, | ||
62 | Media, | ||
63 | MIME, | ||
64 | ModuleAdminExecuteSequence, | ||
65 | ModuleAdminUISequence, | ||
66 | ModuleAdvtExecuteSequence, | ||
67 | ModuleComponents, | ||
68 | ModuleConfiguration, | ||
69 | ModuleDependency, | ||
70 | ModuleExclusion, | ||
71 | ModuleIgnoreTable, | ||
72 | ModuleInstallExecuteSequence, | ||
73 | ModuleInstallUISequence, | ||
74 | ModuleSignature, | ||
75 | ModuleSubstitution, | ||
76 | MoveFile, | ||
77 | MsiAssembly, | ||
78 | MsiAssemblyName, | ||
79 | MsiDigitalCertificate, | ||
80 | MsiDigitalSignature, | ||
81 | MsiEmbeddedChainer, | ||
82 | MsiEmbeddedUI, | ||
83 | MsiFileHash, | ||
84 | MsiLockPermissionsEx, | ||
85 | MsiPackageCertificate, | ||
86 | MsiPatchCertificate, | ||
87 | MsiPatchHeaders, | ||
88 | MsiPatchMetadata, | ||
89 | MsiPatchOldAssemblyFile, | ||
90 | MsiPatchOldAssemblyName, | ||
91 | MsiPatchSequence, | ||
92 | MsiServiceConfig, | ||
93 | MsiServiceConfigFailureActions, | ||
94 | MsiShortcutProperty, | ||
95 | ODBCAttribute, | ||
96 | ODBCDataSource, | ||
97 | ODBCDriver, | ||
98 | ODBCSourceAttribute, | ||
99 | ODBCTranslator, | ||
100 | Patch, | ||
101 | PatchMetadata, | ||
102 | PatchPackage, | ||
103 | PatchSequence, | ||
104 | ProgId, | ||
105 | Properties, | ||
106 | Property, | ||
107 | PublishComponent, | ||
108 | RadioButton, | ||
109 | Registry, | ||
110 | RegLocator, | ||
111 | RemoveFile, | ||
112 | RemoveIniFile, | ||
113 | RemoveRegistry, | ||
114 | ReserveCost, | ||
115 | SelfReg, | ||
116 | ServiceControl, | ||
117 | ServiceInstall, | ||
118 | SFPCatalog, | ||
119 | Shortcut, | ||
120 | Signature, | ||
121 | TargetFiles_OptionalData, | ||
122 | TargetImages, | ||
123 | TextStyle, | ||
124 | TypeLib, | ||
125 | UIText, | ||
126 | Upgrade, | ||
127 | UpgradedFiles_OptionalData, | ||
128 | UpgradedFilesToIgnore, | ||
129 | UpgradedImages, | ||
130 | Verb, | ||
131 | WixAction, | ||
132 | WixApprovedExeForElevation, | ||
133 | WixBBControl, | ||
134 | WixBindUpdatedFiles, | ||
135 | WixBootstrapperApplication, | ||
136 | WixBuildInfo, | ||
137 | WixBundle, | ||
138 | WixBundleCatalog, | ||
139 | WixBundleContainer, | ||
140 | WixBundleExePackage, | ||
141 | WixBundleMsiFeature, | ||
142 | WixBundleMsiPackage, | ||
143 | WixBundleMsiProperty, | ||
144 | WixBundleMspPackage, | ||
145 | WixBundleMsuPackage, | ||
146 | WixBundlePackage, | ||
147 | WixBundlePackageCommandLine, | ||
148 | WixBundlePackageExitCode, | ||
149 | WixBundlePackageGroup, | ||
150 | WixBundlePatchTargetCode, | ||
151 | WixBundlePayload, | ||
152 | WixBundlePayloadGroup, | ||
153 | WixBundleProperties, | ||
154 | WixBundleRelatedPackage, | ||
155 | WixBundleRollbackBoundary, | ||
156 | WixBundleSlipstreamMsp, | ||
157 | WixBundleUpdate, | ||
158 | WixBundleVariable, | ||
159 | WixChain, | ||
160 | WixChainItem, | ||
161 | WixComplexReference, | ||
162 | WixComponentGroup, | ||
163 | WixComponentSearch, | ||
164 | WixControl, | ||
165 | WixCustomRow, | ||
166 | WixCustomTable, | ||
167 | WixDeltaPatchFile, | ||
168 | WixDeltaPatchSymbolPaths, | ||
169 | WixDirectory, | ||
170 | WixEnsureTable, | ||
171 | WixFeatureGroup, | ||
172 | WixFeatureModules, | ||
173 | WixFile, | ||
174 | WixFileSearch, | ||
175 | WixFragment, | ||
176 | WixGroup, | ||
177 | WixInstanceComponent, | ||
178 | WixInstanceTransforms, | ||
179 | WixMedia, | ||
180 | WixMediaTemplate, | ||
181 | WixMerge, | ||
182 | WixOrdering, | ||
183 | WixPackageFeatureInfo, | ||
184 | WixPackageProperties, | ||
185 | WixPatchBaseline, | ||
186 | WixPatchFamilyGroup, | ||
187 | WixPatchId, | ||
188 | WixPatchMetadata, | ||
189 | WixPatchRef, | ||
190 | WixPatchTarget, | ||
191 | WixPayloadProperties, | ||
192 | WixProductSearch, | ||
193 | WixProperty, | ||
194 | WixRegistrySearch, | ||
195 | WixRelatedBundle, | ||
196 | WixSearch, | ||
197 | WixSearchRelation, | ||
198 | WixSimpleReference, | ||
199 | WixSuppressAction, | ||
200 | WixSuppressModularization, | ||
201 | WixUI, | ||
202 | WixUpdateRegistration, | ||
203 | WixVariable, | ||
204 | MustBeFromAnExtension, | ||
205 | } | ||
206 | |||
207 | public static partial class TupleDefinitions | ||
208 | { | ||
209 | public static readonly Version Version = new Version("4.0.0"); | ||
210 | |||
211 | public static IntermediateTupleDefinition ByName(string name) | ||
212 | { | ||
213 | if (!Enum.TryParse(name, out TupleDefinitionType type) || type == TupleDefinitionType.MustBeFromAnExtension) | ||
214 | { | ||
215 | return null; | ||
216 | } | ||
217 | |||
218 | return ByType(type); | ||
219 | } | ||
220 | |||
221 | public static IntermediateTupleDefinition ByType(TupleDefinitionType type) | ||
222 | { | ||
223 | switch (type) | ||
224 | { | ||
225 | case TupleDefinitionType._Streams: | ||
226 | return TupleDefinitions._Streams; | ||
227 | |||
228 | case TupleDefinitionType._SummaryInformation: | ||
229 | return TupleDefinitions._SummaryInformation; | ||
230 | |||
231 | case TupleDefinitionType._TransformView: | ||
232 | return TupleDefinitions._TransformView; | ||
233 | |||
234 | case TupleDefinitionType._Validation: | ||
235 | return TupleDefinitions._Validation; | ||
236 | |||
237 | case TupleDefinitionType.ActionText: | ||
238 | return TupleDefinitions.ActionText; | ||
239 | |||
240 | case TupleDefinitionType.AdminExecuteSequence: | ||
241 | return TupleDefinitions.AdminExecuteSequence; | ||
242 | |||
243 | case TupleDefinitionType.AdminUISequence: | ||
244 | return TupleDefinitions.AdminUISequence; | ||
245 | |||
246 | case TupleDefinitionType.AdvtExecuteSequence: | ||
247 | return TupleDefinitions.AdvtExecuteSequence; | ||
248 | |||
249 | case TupleDefinitionType.AppId: | ||
250 | return TupleDefinitions.AppId; | ||
251 | |||
252 | case TupleDefinitionType.AppSearch: | ||
253 | return TupleDefinitions.AppSearch; | ||
254 | |||
255 | case TupleDefinitionType.BBControl: | ||
256 | return TupleDefinitions.BBControl; | ||
257 | |||
258 | case TupleDefinitionType.Billboard: | ||
259 | return TupleDefinitions.Billboard; | ||
260 | |||
261 | case TupleDefinitionType.Binary: | ||
262 | return TupleDefinitions.Binary; | ||
263 | |||
264 | case TupleDefinitionType.BindImage: | ||
265 | return TupleDefinitions.BindImage; | ||
266 | |||
267 | case TupleDefinitionType.CCPSearch: | ||
268 | return TupleDefinitions.CCPSearch; | ||
269 | |||
270 | case TupleDefinitionType.CheckBox: | ||
271 | return TupleDefinitions.CheckBox; | ||
272 | |||
273 | case TupleDefinitionType.Class: | ||
274 | return TupleDefinitions.Class; | ||
275 | |||
276 | case TupleDefinitionType.ComboBox: | ||
277 | return TupleDefinitions.ComboBox; | ||
278 | |||
279 | case TupleDefinitionType.CompLocator: | ||
280 | return TupleDefinitions.CompLocator; | ||
281 | |||
282 | case TupleDefinitionType.Complus: | ||
283 | return TupleDefinitions.Complus; | ||
284 | |||
285 | case TupleDefinitionType.Component: | ||
286 | return TupleDefinitions.Component; | ||
287 | |||
288 | case TupleDefinitionType.Condition: | ||
289 | return TupleDefinitions.Condition; | ||
290 | |||
291 | case TupleDefinitionType.Control: | ||
292 | return TupleDefinitions.Control; | ||
293 | |||
294 | case TupleDefinitionType.ControlCondition: | ||
295 | return TupleDefinitions.ControlCondition; | ||
296 | |||
297 | case TupleDefinitionType.ControlEvent: | ||
298 | return TupleDefinitions.ControlEvent; | ||
299 | |||
300 | case TupleDefinitionType.CreateFolder: | ||
301 | return TupleDefinitions.CreateFolder; | ||
302 | |||
303 | case TupleDefinitionType.CustomAction: | ||
304 | return TupleDefinitions.CustomAction; | ||
305 | |||
306 | case TupleDefinitionType.Dialog: | ||
307 | return TupleDefinitions.Dialog; | ||
308 | |||
309 | case TupleDefinitionType.Directory: | ||
310 | return TupleDefinitions.Directory; | ||
311 | |||
312 | case TupleDefinitionType.DrLocator: | ||
313 | return TupleDefinitions.DrLocator; | ||
314 | |||
315 | case TupleDefinitionType.DuplicateFile: | ||
316 | return TupleDefinitions.DuplicateFile; | ||
317 | |||
318 | case TupleDefinitionType.Environment: | ||
319 | return TupleDefinitions.Environment; | ||
320 | |||
321 | case TupleDefinitionType.Error: | ||
322 | return TupleDefinitions.Error; | ||
323 | |||
324 | case TupleDefinitionType.EventMapping: | ||
325 | return TupleDefinitions.EventMapping; | ||
326 | |||
327 | case TupleDefinitionType.Extension: | ||
328 | return TupleDefinitions.Extension; | ||
329 | |||
330 | case TupleDefinitionType.ExternalFiles: | ||
331 | return TupleDefinitions.ExternalFiles; | ||
332 | |||
333 | case TupleDefinitionType.FamilyFileRanges: | ||
334 | return TupleDefinitions.FamilyFileRanges; | ||
335 | |||
336 | case TupleDefinitionType.Feature: | ||
337 | return TupleDefinitions.Feature; | ||
338 | |||
339 | case TupleDefinitionType.FeatureComponents: | ||
340 | return TupleDefinitions.FeatureComponents; | ||
341 | |||
342 | case TupleDefinitionType.File: | ||
343 | return TupleDefinitions.File; | ||
344 | |||
345 | case TupleDefinitionType.FileSFPCatalog: | ||
346 | return TupleDefinitions.FileSFPCatalog; | ||
347 | |||
348 | case TupleDefinitionType.Font: | ||
349 | return TupleDefinitions.Font; | ||
350 | |||
351 | case TupleDefinitionType.Icon: | ||
352 | return TupleDefinitions.Icon; | ||
353 | |||
354 | case TupleDefinitionType.ImageFamilies: | ||
355 | return TupleDefinitions.ImageFamilies; | ||
356 | |||
357 | case TupleDefinitionType.IniFile: | ||
358 | return TupleDefinitions.IniFile; | ||
359 | |||
360 | case TupleDefinitionType.IniLocator: | ||
361 | return TupleDefinitions.IniLocator; | ||
362 | |||
363 | case TupleDefinitionType.InstallExecuteSequence: | ||
364 | return TupleDefinitions.InstallExecuteSequence; | ||
365 | |||
366 | case TupleDefinitionType.InstallUISequence: | ||
367 | return TupleDefinitions.InstallUISequence; | ||
368 | |||
369 | case TupleDefinitionType.IsolatedComponent: | ||
370 | return TupleDefinitions.IsolatedComponent; | ||
371 | |||
372 | case TupleDefinitionType.LaunchCondition: | ||
373 | return TupleDefinitions.LaunchCondition; | ||
374 | |||
375 | case TupleDefinitionType.ListBox: | ||
376 | return TupleDefinitions.ListBox; | ||
377 | |||
378 | case TupleDefinitionType.ListView: | ||
379 | return TupleDefinitions.ListView; | ||
380 | |||
381 | case TupleDefinitionType.LockPermissions: | ||
382 | return TupleDefinitions.LockPermissions; | ||
383 | |||
384 | case TupleDefinitionType.Media: | ||
385 | return TupleDefinitions.Media; | ||
386 | |||
387 | case TupleDefinitionType.MIME: | ||
388 | return TupleDefinitions.MIME; | ||
389 | |||
390 | case TupleDefinitionType.ModuleAdminExecuteSequence: | ||
391 | return TupleDefinitions.ModuleAdminExecuteSequence; | ||
392 | |||
393 | case TupleDefinitionType.ModuleAdminUISequence: | ||
394 | return TupleDefinitions.ModuleAdminUISequence; | ||
395 | |||
396 | case TupleDefinitionType.ModuleAdvtExecuteSequence: | ||
397 | return TupleDefinitions.ModuleAdvtExecuteSequence; | ||
398 | |||
399 | case TupleDefinitionType.ModuleComponents: | ||
400 | return TupleDefinitions.ModuleComponents; | ||
401 | |||
402 | case TupleDefinitionType.ModuleConfiguration: | ||
403 | return TupleDefinitions.ModuleConfiguration; | ||
404 | |||
405 | case TupleDefinitionType.ModuleDependency: | ||
406 | return TupleDefinitions.ModuleDependency; | ||
407 | |||
408 | case TupleDefinitionType.ModuleExclusion: | ||
409 | return TupleDefinitions.ModuleExclusion; | ||
410 | |||
411 | case TupleDefinitionType.ModuleIgnoreTable: | ||
412 | return TupleDefinitions.ModuleIgnoreTable; | ||
413 | |||
414 | case TupleDefinitionType.ModuleInstallExecuteSequence: | ||
415 | return TupleDefinitions.ModuleInstallExecuteSequence; | ||
416 | |||
417 | case TupleDefinitionType.ModuleInstallUISequence: | ||
418 | return TupleDefinitions.ModuleInstallUISequence; | ||
419 | |||
420 | case TupleDefinitionType.ModuleSignature: | ||
421 | return TupleDefinitions.ModuleSignature; | ||
422 | |||
423 | case TupleDefinitionType.ModuleSubstitution: | ||
424 | return TupleDefinitions.ModuleSubstitution; | ||
425 | |||
426 | case TupleDefinitionType.MoveFile: | ||
427 | return TupleDefinitions.MoveFile; | ||
428 | |||
429 | case TupleDefinitionType.MsiAssembly: | ||
430 | return TupleDefinitions.MsiAssembly; | ||
431 | |||
432 | case TupleDefinitionType.MsiAssemblyName: | ||
433 | return TupleDefinitions.MsiAssemblyName; | ||
434 | |||
435 | case TupleDefinitionType.MsiDigitalCertificate: | ||
436 | return TupleDefinitions.MsiDigitalCertificate; | ||
437 | |||
438 | case TupleDefinitionType.MsiDigitalSignature: | ||
439 | return TupleDefinitions.MsiDigitalSignature; | ||
440 | |||
441 | case TupleDefinitionType.MsiEmbeddedChainer: | ||
442 | return TupleDefinitions.MsiEmbeddedChainer; | ||
443 | |||
444 | case TupleDefinitionType.MsiEmbeddedUI: | ||
445 | return TupleDefinitions.MsiEmbeddedUI; | ||
446 | |||
447 | case TupleDefinitionType.MsiFileHash: | ||
448 | return TupleDefinitions.MsiFileHash; | ||
449 | |||
450 | case TupleDefinitionType.MsiLockPermissionsEx: | ||
451 | return TupleDefinitions.MsiLockPermissionsEx; | ||
452 | |||
453 | case TupleDefinitionType.MsiPackageCertificate: | ||
454 | return TupleDefinitions.MsiPackageCertificate; | ||
455 | |||
456 | case TupleDefinitionType.MsiPatchCertificate: | ||
457 | return TupleDefinitions.MsiPatchCertificate; | ||
458 | |||
459 | case TupleDefinitionType.MsiPatchHeaders: | ||
460 | return TupleDefinitions.MsiPatchHeaders; | ||
461 | |||
462 | case TupleDefinitionType.MsiPatchMetadata: | ||
463 | return TupleDefinitions.MsiPatchMetadata; | ||
464 | |||
465 | case TupleDefinitionType.MsiPatchOldAssemblyFile: | ||
466 | return TupleDefinitions.MsiPatchOldAssemblyFile; | ||
467 | |||
468 | case TupleDefinitionType.MsiPatchOldAssemblyName: | ||
469 | return TupleDefinitions.MsiPatchOldAssemblyName; | ||
470 | |||
471 | case TupleDefinitionType.MsiPatchSequence: | ||
472 | return TupleDefinitions.MsiPatchSequence; | ||
473 | |||
474 | case TupleDefinitionType.MsiServiceConfig: | ||
475 | return TupleDefinitions.MsiServiceConfig; | ||
476 | |||
477 | case TupleDefinitionType.MsiServiceConfigFailureActions: | ||
478 | return TupleDefinitions.MsiServiceConfigFailureActions; | ||
479 | |||
480 | case TupleDefinitionType.MsiShortcutProperty: | ||
481 | return TupleDefinitions.MsiShortcutProperty; | ||
482 | |||
483 | case TupleDefinitionType.ODBCAttribute: | ||
484 | return TupleDefinitions.ODBCAttribute; | ||
485 | |||
486 | case TupleDefinitionType.ODBCDataSource: | ||
487 | return TupleDefinitions.ODBCDataSource; | ||
488 | |||
489 | case TupleDefinitionType.ODBCDriver: | ||
490 | return TupleDefinitions.ODBCDriver; | ||
491 | |||
492 | case TupleDefinitionType.ODBCSourceAttribute: | ||
493 | return TupleDefinitions.ODBCSourceAttribute; | ||
494 | |||
495 | case TupleDefinitionType.ODBCTranslator: | ||
496 | return TupleDefinitions.ODBCTranslator; | ||
497 | |||
498 | case TupleDefinitionType.Patch: | ||
499 | return TupleDefinitions.Patch; | ||
500 | |||
501 | case TupleDefinitionType.PatchMetadata: | ||
502 | return TupleDefinitions.PatchMetadata; | ||
503 | |||
504 | case TupleDefinitionType.PatchPackage: | ||
505 | return TupleDefinitions.PatchPackage; | ||
506 | |||
507 | case TupleDefinitionType.PatchSequence: | ||
508 | return TupleDefinitions.PatchSequence; | ||
509 | |||
510 | case TupleDefinitionType.ProgId: | ||
511 | return TupleDefinitions.ProgId; | ||
512 | |||
513 | case TupleDefinitionType.Properties: | ||
514 | return TupleDefinitions.Properties; | ||
515 | |||
516 | case TupleDefinitionType.Property: | ||
517 | return TupleDefinitions.Property; | ||
518 | |||
519 | case TupleDefinitionType.PublishComponent: | ||
520 | return TupleDefinitions.PublishComponent; | ||
521 | |||
522 | case TupleDefinitionType.RadioButton: | ||
523 | return TupleDefinitions.RadioButton; | ||
524 | |||
525 | case TupleDefinitionType.Registry: | ||
526 | return TupleDefinitions.Registry; | ||
527 | |||
528 | case TupleDefinitionType.RegLocator: | ||
529 | return TupleDefinitions.RegLocator; | ||
530 | |||
531 | case TupleDefinitionType.RemoveFile: | ||
532 | return TupleDefinitions.RemoveFile; | ||
533 | |||
534 | case TupleDefinitionType.RemoveIniFile: | ||
535 | return TupleDefinitions.RemoveIniFile; | ||
536 | |||
537 | case TupleDefinitionType.RemoveRegistry: | ||
538 | return TupleDefinitions.RemoveRegistry; | ||
539 | |||
540 | case TupleDefinitionType.ReserveCost: | ||
541 | return TupleDefinitions.ReserveCost; | ||
542 | |||
543 | case TupleDefinitionType.SelfReg: | ||
544 | return TupleDefinitions.SelfReg; | ||
545 | |||
546 | case TupleDefinitionType.ServiceControl: | ||
547 | return TupleDefinitions.ServiceControl; | ||
548 | |||
549 | case TupleDefinitionType.ServiceInstall: | ||
550 | return TupleDefinitions.ServiceInstall; | ||
551 | |||
552 | case TupleDefinitionType.SFPCatalog: | ||
553 | return TupleDefinitions.SFPCatalog; | ||
554 | |||
555 | case TupleDefinitionType.Shortcut: | ||
556 | return TupleDefinitions.Shortcut; | ||
557 | |||
558 | case TupleDefinitionType.Signature: | ||
559 | return TupleDefinitions.Signature; | ||
560 | |||
561 | case TupleDefinitionType.TargetFiles_OptionalData: | ||
562 | return TupleDefinitions.TargetFiles_OptionalData; | ||
563 | |||
564 | case TupleDefinitionType.TargetImages: | ||
565 | return TupleDefinitions.TargetImages; | ||
566 | |||
567 | case TupleDefinitionType.TextStyle: | ||
568 | return TupleDefinitions.TextStyle; | ||
569 | |||
570 | case TupleDefinitionType.TypeLib: | ||
571 | return TupleDefinitions.TypeLib; | ||
572 | |||
573 | case TupleDefinitionType.UIText: | ||
574 | return TupleDefinitions.UIText; | ||
575 | |||
576 | case TupleDefinitionType.Upgrade: | ||
577 | return TupleDefinitions.Upgrade; | ||
578 | |||
579 | case TupleDefinitionType.UpgradedFiles_OptionalData: | ||
580 | return TupleDefinitions.UpgradedFiles_OptionalData; | ||
581 | |||
582 | case TupleDefinitionType.UpgradedFilesToIgnore: | ||
583 | return TupleDefinitions.UpgradedFilesToIgnore; | ||
584 | |||
585 | case TupleDefinitionType.UpgradedImages: | ||
586 | return TupleDefinitions.UpgradedImages; | ||
587 | |||
588 | case TupleDefinitionType.Verb: | ||
589 | return TupleDefinitions.Verb; | ||
590 | |||
591 | case TupleDefinitionType.WixAction: | ||
592 | return TupleDefinitions.WixAction; | ||
593 | |||
594 | case TupleDefinitionType.WixApprovedExeForElevation: | ||
595 | return TupleDefinitions.WixApprovedExeForElevation; | ||
596 | |||
597 | case TupleDefinitionType.WixBBControl: | ||
598 | return TupleDefinitions.WixBBControl; | ||
599 | |||
600 | case TupleDefinitionType.WixBindUpdatedFiles: | ||
601 | return TupleDefinitions.WixBindUpdatedFiles; | ||
602 | |||
603 | case TupleDefinitionType.WixBootstrapperApplication: | ||
604 | return TupleDefinitions.WixBootstrapperApplication; | ||
605 | |||
606 | case TupleDefinitionType.WixBuildInfo: | ||
607 | return TupleDefinitions.WixBuildInfo; | ||
608 | |||
609 | case TupleDefinitionType.WixBundle: | ||
610 | return TupleDefinitions.WixBundle; | ||
611 | |||
612 | case TupleDefinitionType.WixBundleCatalog: | ||
613 | return TupleDefinitions.WixBundleCatalog; | ||
614 | |||
615 | case TupleDefinitionType.WixBundleContainer: | ||
616 | return TupleDefinitions.WixBundleContainer; | ||
617 | |||
618 | case TupleDefinitionType.WixBundleExePackage: | ||
619 | return TupleDefinitions.WixBundleExePackage; | ||
620 | |||
621 | case TupleDefinitionType.WixBundleMsiFeature: | ||
622 | return TupleDefinitions.WixBundleMsiFeature; | ||
623 | |||
624 | case TupleDefinitionType.WixBundleMsiPackage: | ||
625 | return TupleDefinitions.WixBundleMsiPackage; | ||
626 | |||
627 | case TupleDefinitionType.WixBundleMsiProperty: | ||
628 | return TupleDefinitions.WixBundleMsiProperty; | ||
629 | |||
630 | case TupleDefinitionType.WixBundleMspPackage: | ||
631 | return TupleDefinitions.WixBundleMspPackage; | ||
632 | |||
633 | case TupleDefinitionType.WixBundleMsuPackage: | ||
634 | return TupleDefinitions.WixBundleMsuPackage; | ||
635 | |||
636 | case TupleDefinitionType.WixBundlePackage: | ||
637 | return TupleDefinitions.WixBundlePackage; | ||
638 | |||
639 | case TupleDefinitionType.WixBundlePackageCommandLine: | ||
640 | return TupleDefinitions.WixBundlePackageCommandLine; | ||
641 | |||
642 | case TupleDefinitionType.WixBundlePackageExitCode: | ||
643 | return TupleDefinitions.WixBundlePackageExitCode; | ||
644 | |||
645 | case TupleDefinitionType.WixBundlePackageGroup: | ||
646 | return TupleDefinitions.WixBundlePackageGroup; | ||
647 | |||
648 | case TupleDefinitionType.WixBundlePatchTargetCode: | ||
649 | return TupleDefinitions.WixBundlePatchTargetCode; | ||
650 | |||
651 | case TupleDefinitionType.WixBundlePayload: | ||
652 | return TupleDefinitions.WixBundlePayload; | ||
653 | |||
654 | case TupleDefinitionType.WixBundlePayloadGroup: | ||
655 | return TupleDefinitions.WixBundlePayloadGroup; | ||
656 | |||
657 | case TupleDefinitionType.WixBundleProperties: | ||
658 | return TupleDefinitions.WixBundleProperties; | ||
659 | |||
660 | case TupleDefinitionType.WixBundleRelatedPackage: | ||
661 | return TupleDefinitions.WixBundleRelatedPackage; | ||
662 | |||
663 | case TupleDefinitionType.WixBundleRollbackBoundary: | ||
664 | return TupleDefinitions.WixBundleRollbackBoundary; | ||
665 | |||
666 | case TupleDefinitionType.WixBundleSlipstreamMsp: | ||
667 | return TupleDefinitions.WixBundleSlipstreamMsp; | ||
668 | |||
669 | case TupleDefinitionType.WixBundleUpdate: | ||
670 | return TupleDefinitions.WixBundleUpdate; | ||
671 | |||
672 | case TupleDefinitionType.WixBundleVariable: | ||
673 | return TupleDefinitions.WixBundleVariable; | ||
674 | |||
675 | case TupleDefinitionType.WixChain: | ||
676 | return TupleDefinitions.WixChain; | ||
677 | |||
678 | case TupleDefinitionType.WixChainItem: | ||
679 | return TupleDefinitions.WixChainItem; | ||
680 | |||
681 | case TupleDefinitionType.WixComplexReference: | ||
682 | return TupleDefinitions.WixComplexReference; | ||
683 | |||
684 | case TupleDefinitionType.WixComponentGroup: | ||
685 | return TupleDefinitions.WixComponentGroup; | ||
686 | |||
687 | case TupleDefinitionType.WixComponentSearch: | ||
688 | return TupleDefinitions.WixComponentSearch; | ||
689 | |||
690 | case TupleDefinitionType.WixControl: | ||
691 | return TupleDefinitions.WixControl; | ||
692 | |||
693 | case TupleDefinitionType.WixCustomRow: | ||
694 | return TupleDefinitions.WixCustomRow; | ||
695 | |||
696 | case TupleDefinitionType.WixCustomTable: | ||
697 | return TupleDefinitions.WixCustomTable; | ||
698 | |||
699 | case TupleDefinitionType.WixDeltaPatchFile: | ||
700 | return TupleDefinitions.WixDeltaPatchFile; | ||
701 | |||
702 | case TupleDefinitionType.WixDeltaPatchSymbolPaths: | ||
703 | return TupleDefinitions.WixDeltaPatchSymbolPaths; | ||
704 | |||
705 | case TupleDefinitionType.WixDirectory: | ||
706 | return TupleDefinitions.WixDirectory; | ||
707 | |||
708 | case TupleDefinitionType.WixEnsureTable: | ||
709 | return TupleDefinitions.WixEnsureTable; | ||
710 | |||
711 | case TupleDefinitionType.WixFeatureGroup: | ||
712 | return TupleDefinitions.WixFeatureGroup; | ||
713 | |||
714 | case TupleDefinitionType.WixFeatureModules: | ||
715 | return TupleDefinitions.WixFeatureModules; | ||
716 | |||
717 | case TupleDefinitionType.WixFile: | ||
718 | return TupleDefinitions.WixFile; | ||
719 | |||
720 | case TupleDefinitionType.WixFileSearch: | ||
721 | return TupleDefinitions.WixFileSearch; | ||
722 | |||
723 | case TupleDefinitionType.WixFragment: | ||
724 | return TupleDefinitions.WixFragment; | ||
725 | |||
726 | case TupleDefinitionType.WixGroup: | ||
727 | return TupleDefinitions.WixGroup; | ||
728 | |||
729 | case TupleDefinitionType.WixInstanceComponent: | ||
730 | return TupleDefinitions.WixInstanceComponent; | ||
731 | |||
732 | case TupleDefinitionType.WixInstanceTransforms: | ||
733 | return TupleDefinitions.WixInstanceTransforms; | ||
734 | |||
735 | case TupleDefinitionType.WixMedia: | ||
736 | return TupleDefinitions.WixMedia; | ||
737 | |||
738 | case TupleDefinitionType.WixMediaTemplate: | ||
739 | return TupleDefinitions.WixMediaTemplate; | ||
740 | |||
741 | case TupleDefinitionType.WixMerge: | ||
742 | return TupleDefinitions.WixMerge; | ||
743 | |||
744 | case TupleDefinitionType.WixOrdering: | ||
745 | return TupleDefinitions.WixOrdering; | ||
746 | |||
747 | case TupleDefinitionType.WixPackageFeatureInfo: | ||
748 | return TupleDefinitions.WixPackageFeatureInfo; | ||
749 | |||
750 | case TupleDefinitionType.WixPackageProperties: | ||
751 | return TupleDefinitions.WixPackageProperties; | ||
752 | |||
753 | case TupleDefinitionType.WixPatchBaseline: | ||
754 | return TupleDefinitions.WixPatchBaseline; | ||
755 | |||
756 | case TupleDefinitionType.WixPatchFamilyGroup: | ||
757 | return TupleDefinitions.WixPatchFamilyGroup; | ||
758 | |||
759 | case TupleDefinitionType.WixPatchId: | ||
760 | return TupleDefinitions.WixPatchId; | ||
761 | |||
762 | case TupleDefinitionType.WixPatchMetadata: | ||
763 | return TupleDefinitions.WixPatchMetadata; | ||
764 | |||
765 | case TupleDefinitionType.WixPatchRef: | ||
766 | return TupleDefinitions.WixPatchRef; | ||
767 | |||
768 | case TupleDefinitionType.WixPatchTarget: | ||
769 | return TupleDefinitions.WixPatchTarget; | ||
770 | |||
771 | case TupleDefinitionType.WixPayloadProperties: | ||
772 | return TupleDefinitions.WixPayloadProperties; | ||
773 | |||
774 | case TupleDefinitionType.WixProductSearch: | ||
775 | return TupleDefinitions.WixProductSearch; | ||
776 | |||
777 | case TupleDefinitionType.WixProperty: | ||
778 | return TupleDefinitions.WixProperty; | ||
779 | |||
780 | case TupleDefinitionType.WixRegistrySearch: | ||
781 | return TupleDefinitions.WixRegistrySearch; | ||
782 | |||
783 | case TupleDefinitionType.WixRelatedBundle: | ||
784 | return TupleDefinitions.WixRelatedBundle; | ||
785 | |||
786 | case TupleDefinitionType.WixSearch: | ||
787 | return TupleDefinitions.WixSearch; | ||
788 | |||
789 | case TupleDefinitionType.WixSearchRelation: | ||
790 | return TupleDefinitions.WixSearchRelation; | ||
791 | |||
792 | case TupleDefinitionType.WixSimpleReference: | ||
793 | return TupleDefinitions.WixSimpleReference; | ||
794 | |||
795 | case TupleDefinitionType.WixSuppressAction: | ||
796 | return TupleDefinitions.WixSuppressAction; | ||
797 | |||
798 | case TupleDefinitionType.WixSuppressModularization: | ||
799 | return TupleDefinitions.WixSuppressModularization; | ||
800 | |||
801 | case TupleDefinitionType.WixUI: | ||
802 | return TupleDefinitions.WixUI; | ||
803 | |||
804 | case TupleDefinitionType.WixUpdateRegistration: | ||
805 | return TupleDefinitions.WixUpdateRegistration; | ||
806 | |||
807 | case TupleDefinitionType.WixVariable: | ||
808 | return TupleDefinitions.WixVariable; | ||
809 | |||
810 | default: | ||
811 | throw new ArgumentOutOfRangeException(nameof(type)); | ||
812 | } | ||
813 | } | ||
814 | } | ||
815 | } | ||
diff --git a/src/WixToolset.Data/Tuples/TypeLibTuple.cs b/src/WixToolset.Data/Tuples/TypeLibTuple.cs new file mode 100644 index 00000000..7bd26bf3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/TypeLibTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition TypeLib = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.TypeLib, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.LibID), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Language), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Component_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Version), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Description), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Directory_), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Feature_), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(TypeLibTupleFields.Cost), IntermediateFieldType.Number), | ||
21 | }, | ||
22 | typeof(TypeLibTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | public enum TypeLibTupleFields | ||
29 | { | ||
30 | LibID, | ||
31 | Language, | ||
32 | Component_, | ||
33 | Version, | ||
34 | Description, | ||
35 | Directory_, | ||
36 | Feature_, | ||
37 | Cost, | ||
38 | } | ||
39 | |||
40 | public class TypeLibTuple : IntermediateTuple | ||
41 | { | ||
42 | public TypeLibTuple() : base(TupleDefinitions.TypeLib, null, null) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public TypeLibTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.TypeLib, sourceLineNumber, id) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public IntermediateField this[TypeLibTupleFields index] => this.Fields[(int)index]; | ||
51 | |||
52 | public string LibID | ||
53 | { | ||
54 | get => (string)this.Fields[(int)TypeLibTupleFields.LibID]?.Value; | ||
55 | set => this.Set((int)TypeLibTupleFields.LibID, value); | ||
56 | } | ||
57 | |||
58 | public int Language | ||
59 | { | ||
60 | get => (int)this.Fields[(int)TypeLibTupleFields.Language]?.Value; | ||
61 | set => this.Set((int)TypeLibTupleFields.Language, value); | ||
62 | } | ||
63 | |||
64 | public string Component_ | ||
65 | { | ||
66 | get => (string)this.Fields[(int)TypeLibTupleFields.Component_]?.Value; | ||
67 | set => this.Set((int)TypeLibTupleFields.Component_, value); | ||
68 | } | ||
69 | |||
70 | public int Version | ||
71 | { | ||
72 | get => (int)this.Fields[(int)TypeLibTupleFields.Version]?.Value; | ||
73 | set => this.Set((int)TypeLibTupleFields.Version, value); | ||
74 | } | ||
75 | |||
76 | public string Description | ||
77 | { | ||
78 | get => (string)this.Fields[(int)TypeLibTupleFields.Description]?.Value; | ||
79 | set => this.Set((int)TypeLibTupleFields.Description, value); | ||
80 | } | ||
81 | |||
82 | public string Directory_ | ||
83 | { | ||
84 | get => (string)this.Fields[(int)TypeLibTupleFields.Directory_]?.Value; | ||
85 | set => this.Set((int)TypeLibTupleFields.Directory_, value); | ||
86 | } | ||
87 | |||
88 | public string Feature_ | ||
89 | { | ||
90 | get => (string)this.Fields[(int)TypeLibTupleFields.Feature_]?.Value; | ||
91 | set => this.Set((int)TypeLibTupleFields.Feature_, value); | ||
92 | } | ||
93 | |||
94 | public int Cost | ||
95 | { | ||
96 | get => (int)this.Fields[(int)TypeLibTupleFields.Cost]?.Value; | ||
97 | set => this.Set((int)TypeLibTupleFields.Cost, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/UITextTuple.cs b/src/WixToolset.Data/Tuples/UITextTuple.cs new file mode 100644 index 00000000..3d5f2933 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UITextTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition UIText = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.UIText, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(UITextTupleFields.Key), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(UITextTupleFields.Text), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(UITextTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum UITextTupleFields | ||
23 | { | ||
24 | Key, | ||
25 | Text, | ||
26 | } | ||
27 | |||
28 | public class UITextTuple : IntermediateTuple | ||
29 | { | ||
30 | public UITextTuple() : base(TupleDefinitions.UIText, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public UITextTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UIText, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[UITextTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Key | ||
41 | { | ||
42 | get => (string)this.Fields[(int)UITextTupleFields.Key]?.Value; | ||
43 | set => this.Set((int)UITextTupleFields.Key, value); | ||
44 | } | ||
45 | |||
46 | public string Text | ||
47 | { | ||
48 | get => (string)this.Fields[(int)UITextTupleFields.Text]?.Value; | ||
49 | set => this.Set((int)UITextTupleFields.Text, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/UpgradeTuple.cs b/src/WixToolset.Data/Tuples/UpgradeTuple.cs new file mode 100644 index 00000000..94fe1231 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradeTuple.cs | |||
@@ -0,0 +1,92 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Upgrade = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Upgrade, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.UpgradeCode), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMin), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.VersionMax), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Language), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Attributes), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.Remove), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(UpgradeTupleFields.ActionProperty), IntermediateFieldType.String), | ||
20 | }, | ||
21 | typeof(UpgradeTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | public enum UpgradeTupleFields | ||
28 | { | ||
29 | UpgradeCode, | ||
30 | VersionMin, | ||
31 | VersionMax, | ||
32 | Language, | ||
33 | Attributes, | ||
34 | Remove, | ||
35 | ActionProperty, | ||
36 | } | ||
37 | |||
38 | public class UpgradeTuple : IntermediateTuple | ||
39 | { | ||
40 | public UpgradeTuple() : base(TupleDefinitions.Upgrade, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public UpgradeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Upgrade, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[UpgradeTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string UpgradeCode | ||
51 | { | ||
52 | get => (string)this.Fields[(int)UpgradeTupleFields.UpgradeCode]?.Value; | ||
53 | set => this.Set((int)UpgradeTupleFields.UpgradeCode, value); | ||
54 | } | ||
55 | |||
56 | public string VersionMin | ||
57 | { | ||
58 | get => (string)this.Fields[(int)UpgradeTupleFields.VersionMin]?.Value; | ||
59 | set => this.Set((int)UpgradeTupleFields.VersionMin, value); | ||
60 | } | ||
61 | |||
62 | public string VersionMax | ||
63 | { | ||
64 | get => (string)this.Fields[(int)UpgradeTupleFields.VersionMax]?.Value; | ||
65 | set => this.Set((int)UpgradeTupleFields.VersionMax, value); | ||
66 | } | ||
67 | |||
68 | public string Language | ||
69 | { | ||
70 | get => (string)this.Fields[(int)UpgradeTupleFields.Language]?.Value; | ||
71 | set => this.Set((int)UpgradeTupleFields.Language, value); | ||
72 | } | ||
73 | |||
74 | public int Attributes | ||
75 | { | ||
76 | get => (int)this.Fields[(int)UpgradeTupleFields.Attributes]?.Value; | ||
77 | set => this.Set((int)UpgradeTupleFields.Attributes, value); | ||
78 | } | ||
79 | |||
80 | public string Remove | ||
81 | { | ||
82 | get => (string)this.Fields[(int)UpgradeTupleFields.Remove]?.Value; | ||
83 | set => this.Set((int)UpgradeTupleFields.Remove, value); | ||
84 | } | ||
85 | |||
86 | public string ActionProperty | ||
87 | { | ||
88 | get => (string)this.Fields[(int)UpgradeTupleFields.ActionProperty]?.Value; | ||
89 | set => this.Set((int)UpgradeTupleFields.ActionProperty, value); | ||
90 | } | ||
91 | } | ||
92 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs new file mode 100644 index 00000000..64ec9229 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition UpgradedFilesToIgnore = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.UpgradedFilesToIgnore, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreTupleFields.Upgraded), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(UpgradedFilesToIgnoreTupleFields.FTK), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(UpgradedFilesToIgnoreTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum UpgradedFilesToIgnoreTupleFields | ||
23 | { | ||
24 | Upgraded, | ||
25 | FTK, | ||
26 | } | ||
27 | |||
28 | public class UpgradedFilesToIgnoreTuple : IntermediateTuple | ||
29 | { | ||
30 | public UpgradedFilesToIgnoreTuple() : base(TupleDefinitions.UpgradedFilesToIgnore, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public UpgradedFilesToIgnoreTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFilesToIgnore, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[UpgradedFilesToIgnoreTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Upgraded | ||
41 | { | ||
42 | get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.Upgraded]?.Value; | ||
43 | set => this.Set((int)UpgradedFilesToIgnoreTupleFields.Upgraded, value); | ||
44 | } | ||
45 | |||
46 | public string FTK | ||
47 | { | ||
48 | get => (string)this.Fields[(int)UpgradedFilesToIgnoreTupleFields.FTK]?.Value; | ||
49 | set => this.Set((int)UpgradedFilesToIgnoreTupleFields.FTK, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs new file mode 100644 index 00000000..09b93fed --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition UpgradedFiles_OptionalData = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.UpgradedFiles_OptionalData, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.Upgraded), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.FTK), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(UpgradedFiles_OptionalDataTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum UpgradedFiles_OptionalDataTupleFields | ||
26 | { | ||
27 | Upgraded, | ||
28 | FTK, | ||
29 | SymbolPaths, | ||
30 | AllowIgnoreOnPatchError, | ||
31 | IncludeWholeFile, | ||
32 | } | ||
33 | |||
34 | public class UpgradedFiles_OptionalDataTuple : IntermediateTuple | ||
35 | { | ||
36 | public UpgradedFiles_OptionalDataTuple() : base(TupleDefinitions.UpgradedFiles_OptionalData, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public UpgradedFiles_OptionalDataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedFiles_OptionalData, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[UpgradedFiles_OptionalDataTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Upgraded | ||
47 | { | ||
48 | get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.Upgraded]?.Value; | ||
49 | set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.Upgraded, value); | ||
50 | } | ||
51 | |||
52 | public string FTK | ||
53 | { | ||
54 | get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.FTK]?.Value; | ||
55 | set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.FTK, value); | ||
56 | } | ||
57 | |||
58 | public string SymbolPaths | ||
59 | { | ||
60 | get => (string)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths]?.Value; | ||
61 | set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.SymbolPaths, value); | ||
62 | } | ||
63 | |||
64 | public int AllowIgnoreOnPatchError | ||
65 | { | ||
66 | get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError]?.Value; | ||
67 | set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.AllowIgnoreOnPatchError, value); | ||
68 | } | ||
69 | |||
70 | public int IncludeWholeFile | ||
71 | { | ||
72 | get => (int)this.Fields[(int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile]?.Value; | ||
73 | set => this.Set((int)UpgradedFiles_OptionalDataTupleFields.IncludeWholeFile, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs new file mode 100644 index 00000000..32170467 --- /dev/null +++ b/src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition UpgradedImages = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.UpgradedImages, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.Upgraded), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.MsiPath), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.PatchMsiPath), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(UpgradedImagesTupleFields.Family), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(UpgradedImagesTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum UpgradedImagesTupleFields | ||
26 | { | ||
27 | Upgraded, | ||
28 | MsiPath, | ||
29 | PatchMsiPath, | ||
30 | SymbolPaths, | ||
31 | Family, | ||
32 | } | ||
33 | |||
34 | public class UpgradedImagesTuple : IntermediateTuple | ||
35 | { | ||
36 | public UpgradedImagesTuple() : base(TupleDefinitions.UpgradedImages, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public UpgradedImagesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.UpgradedImages, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[UpgradedImagesTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Upgraded | ||
47 | { | ||
48 | get => (string)this.Fields[(int)UpgradedImagesTupleFields.Upgraded]?.Value; | ||
49 | set => this.Set((int)UpgradedImagesTupleFields.Upgraded, value); | ||
50 | } | ||
51 | |||
52 | public string MsiPath | ||
53 | { | ||
54 | get => (string)this.Fields[(int)UpgradedImagesTupleFields.MsiPath]?.Value; | ||
55 | set => this.Set((int)UpgradedImagesTupleFields.MsiPath, value); | ||
56 | } | ||
57 | |||
58 | public string PatchMsiPath | ||
59 | { | ||
60 | get => (string)this.Fields[(int)UpgradedImagesTupleFields.PatchMsiPath]?.Value; | ||
61 | set => this.Set((int)UpgradedImagesTupleFields.PatchMsiPath, value); | ||
62 | } | ||
63 | |||
64 | public string SymbolPaths | ||
65 | { | ||
66 | get => (string)this.Fields[(int)UpgradedImagesTupleFields.SymbolPaths]?.Value; | ||
67 | set => this.Set((int)UpgradedImagesTupleFields.SymbolPaths, value); | ||
68 | } | ||
69 | |||
70 | public string Family | ||
71 | { | ||
72 | get => (string)this.Fields[(int)UpgradedImagesTupleFields.Family]?.Value; | ||
73 | set => this.Set((int)UpgradedImagesTupleFields.Family, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/VerbTuple.cs b/src/WixToolset.Data/Tuples/VerbTuple.cs new file mode 100644 index 00000000..4d5c7c03 --- /dev/null +++ b/src/WixToolset.Data/Tuples/VerbTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition Verb = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.Verb, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(VerbTupleFields.Extension_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(VerbTupleFields.Verb), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(VerbTupleFields.Sequence), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(VerbTupleFields.Command), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(VerbTupleFields.Argument), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(VerbTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum VerbTupleFields | ||
26 | { | ||
27 | Extension_, | ||
28 | Verb, | ||
29 | Sequence, | ||
30 | Command, | ||
31 | Argument, | ||
32 | } | ||
33 | |||
34 | public class VerbTuple : IntermediateTuple | ||
35 | { | ||
36 | public VerbTuple() : base(TupleDefinitions.Verb, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public VerbTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.Verb, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[VerbTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Extension_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)VerbTupleFields.Extension_]?.Value; | ||
49 | set => this.Set((int)VerbTupleFields.Extension_, value); | ||
50 | } | ||
51 | |||
52 | public string Verb | ||
53 | { | ||
54 | get => (string)this.Fields[(int)VerbTupleFields.Verb]?.Value; | ||
55 | set => this.Set((int)VerbTupleFields.Verb, value); | ||
56 | } | ||
57 | |||
58 | public int Sequence | ||
59 | { | ||
60 | get => (int)this.Fields[(int)VerbTupleFields.Sequence]?.Value; | ||
61 | set => this.Set((int)VerbTupleFields.Sequence, value); | ||
62 | } | ||
63 | |||
64 | public string Command | ||
65 | { | ||
66 | get => (string)this.Fields[(int)VerbTupleFields.Command]?.Value; | ||
67 | set => this.Set((int)VerbTupleFields.Command, value); | ||
68 | } | ||
69 | |||
70 | public string Argument | ||
71 | { | ||
72 | get => (string)this.Fields[(int)VerbTupleFields.Argument]?.Value; | ||
73 | set => this.Set((int)VerbTupleFields.Argument, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixActionTuple.cs b/src/WixToolset.Data/Tuples/WixActionTuple.cs new file mode 100644 index 00000000..53ea52de --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixActionTuple.cs | |||
@@ -0,0 +1,103 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixAction = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixAction, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.SequenceTable), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.Action), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.Condition), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.Sequence), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.Before), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.After), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixActionTupleFields.Overridable), IntermediateFieldType.Bool), | ||
20 | }, | ||
21 | typeof(WixActionTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | using System; | ||
28 | |||
29 | public enum WixActionTupleFields | ||
30 | { | ||
31 | SequenceTable, | ||
32 | Action, | ||
33 | Condition, | ||
34 | Sequence, | ||
35 | Before, | ||
36 | After, | ||
37 | Overridable, | ||
38 | } | ||
39 | |||
40 | public enum SequenceTable | ||
41 | { | ||
42 | AdminUISequence, | ||
43 | AdminExecuteSequence, | ||
44 | AdvtExecuteSequence, | ||
45 | InstallUISequence, | ||
46 | InstallExecuteSequence | ||
47 | } | ||
48 | |||
49 | public class WixActionTuple : IntermediateTuple | ||
50 | { | ||
51 | public WixActionTuple() : base(TupleDefinitions.WixAction, null, null) | ||
52 | { | ||
53 | } | ||
54 | |||
55 | public WixActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixAction, sourceLineNumber, id) | ||
56 | { | ||
57 | } | ||
58 | |||
59 | public IntermediateField this[WixActionTupleFields index] => this.Fields[(int)index]; | ||
60 | |||
61 | public SequenceTable SequenceTable | ||
62 | { | ||
63 | get => (SequenceTable)Enum.Parse(typeof(SequenceTable), (string)this.Fields[(int)WixActionTupleFields.SequenceTable]?.Value); | ||
64 | set => this.Set((int)WixActionTupleFields.SequenceTable, value.ToString()); | ||
65 | } | ||
66 | |||
67 | public string Action | ||
68 | { | ||
69 | get => (string)this.Fields[(int)WixActionTupleFields.Action]?.Value; | ||
70 | set => this.Set((int)WixActionTupleFields.Action, value); | ||
71 | } | ||
72 | |||
73 | public string Condition | ||
74 | { | ||
75 | get => (string)this.Fields[(int)WixActionTupleFields.Condition]?.Value; | ||
76 | set => this.Set((int)WixActionTupleFields.Condition, value); | ||
77 | } | ||
78 | |||
79 | public int Sequence | ||
80 | { | ||
81 | get => (int)this.Fields[(int)WixActionTupleFields.Sequence]?.Value; | ||
82 | set => this.Set((int)WixActionTupleFields.Sequence, value); | ||
83 | } | ||
84 | |||
85 | public string Before | ||
86 | { | ||
87 | get => (string)this.Fields[(int)WixActionTupleFields.Before]?.Value; | ||
88 | set => this.Set((int)WixActionTupleFields.Before, value); | ||
89 | } | ||
90 | |||
91 | public string After | ||
92 | { | ||
93 | get => (string)this.Fields[(int)WixActionTupleFields.After]?.Value; | ||
94 | set => this.Set((int)WixActionTupleFields.After, value); | ||
95 | } | ||
96 | |||
97 | public bool Overridable | ||
98 | { | ||
99 | get => (bool)this.Fields[(int)WixActionTupleFields.Overridable]?.Value; | ||
100 | set => this.Set((int)WixActionTupleFields.Overridable, value); | ||
101 | } | ||
102 | } | ||
103 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs new file mode 100644 index 00000000..e733e6ab --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixApprovedExeForElevation = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixApprovedExeForElevation, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Id), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Key), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixApprovedExeForElevationTupleFields.Attributes), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(WixApprovedExeForElevationTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixApprovedExeForElevationTupleFields | ||
25 | { | ||
26 | Id, | ||
27 | Key, | ||
28 | Value, | ||
29 | Attributes, | ||
30 | } | ||
31 | |||
32 | public class WixApprovedExeForElevationTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixApprovedExeForElevationTuple() : base(TupleDefinitions.WixApprovedExeForElevation, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixApprovedExeForElevationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixApprovedExeForElevation, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixApprovedExeForElevationTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Id | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Id]?.Value; | ||
47 | set => this.Set((int)WixApprovedExeForElevationTupleFields.Id, value); | ||
48 | } | ||
49 | |||
50 | public string Key | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Key]?.Value; | ||
53 | set => this.Set((int)WixApprovedExeForElevationTupleFields.Key, value); | ||
54 | } | ||
55 | |||
56 | public string Value | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixApprovedExeForElevationTupleFields.Value]?.Value; | ||
59 | set => this.Set((int)WixApprovedExeForElevationTupleFields.Value, value); | ||
60 | } | ||
61 | |||
62 | public int Attributes | ||
63 | { | ||
64 | get => (int)this.Fields[(int)WixApprovedExeForElevationTupleFields.Attributes]?.Value; | ||
65 | set => this.Set((int)WixApprovedExeForElevationTupleFields.Attributes, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBBControlTuple.cs b/src/WixToolset.Data/Tuples/WixBBControlTuple.cs new file mode 100644 index 00000000..4d912c38 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBBControlTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBBControl = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBBControl, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBBControlTupleFields.Billboard_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBBControlTupleFields.BBControl_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBBControlTupleFields.SourceFile), IntermediateFieldType.Path), | ||
16 | }, | ||
17 | typeof(WixBBControlTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixBBControlTupleFields | ||
24 | { | ||
25 | Billboard_, | ||
26 | BBControl_, | ||
27 | SourceFile, | ||
28 | } | ||
29 | |||
30 | public class WixBBControlTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixBBControlTuple() : base(TupleDefinitions.WixBBControl, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixBBControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBBControl, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixBBControlTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Billboard_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixBBControlTupleFields.Billboard_]?.Value; | ||
45 | set => this.Set((int)WixBBControlTupleFields.Billboard_, value); | ||
46 | } | ||
47 | |||
48 | public string BBControl_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixBBControlTupleFields.BBControl_]?.Value; | ||
51 | set => this.Set((int)WixBBControlTupleFields.BBControl_, value); | ||
52 | } | ||
53 | |||
54 | public string SourceFile | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixBBControlTupleFields.SourceFile]?.Value; | ||
57 | set => this.Set((int)WixBBControlTupleFields.SourceFile, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs new file mode 100644 index 00000000..16a2a972 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBindUpdatedFiles = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBindUpdatedFiles, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBindUpdatedFilesTupleFields.File_), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixBindUpdatedFilesTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixBindUpdatedFilesTupleFields | ||
22 | { | ||
23 | File_, | ||
24 | } | ||
25 | |||
26 | public class WixBindUpdatedFilesTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixBindUpdatedFilesTuple() : base(TupleDefinitions.WixBindUpdatedFiles, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixBindUpdatedFilesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBindUpdatedFiles, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixBindUpdatedFilesTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string File_ | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixBindUpdatedFilesTupleFields.File_]?.Value; | ||
41 | set => this.Set((int)WixBindUpdatedFilesTupleFields.File_, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs new file mode 100644 index 00000000..00bf9dae --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBootstrapperApplication = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBootstrapperApplication, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBootstrapperApplicationTupleFields.Id), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixBootstrapperApplicationTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixBootstrapperApplicationTupleFields | ||
22 | { | ||
23 | Id, | ||
24 | } | ||
25 | |||
26 | public class WixBootstrapperApplicationTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixBootstrapperApplicationTuple() : base(TupleDefinitions.WixBootstrapperApplication, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixBootstrapperApplicationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBootstrapperApplication, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixBootstrapperApplicationTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string Id | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixBootstrapperApplicationTupleFields.Id]?.Value; | ||
41 | set => this.Set((int)WixBootstrapperApplicationTupleFields.Id, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs new file mode 100644 index 00000000..d71cbbaf --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBuildInfo = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBuildInfo, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixVersion), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixOutputFile), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixProjectFile), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBuildInfoTupleFields.WixPdbFile), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(WixBuildInfoTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixBuildInfoTupleFields | ||
25 | { | ||
26 | WixVersion, | ||
27 | WixOutputFile, | ||
28 | WixProjectFile, | ||
29 | WixPdbFile, | ||
30 | } | ||
31 | |||
32 | public class WixBuildInfoTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixBuildInfoTuple() : base(TupleDefinitions.WixBuildInfo, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixBuildInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBuildInfo, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixBuildInfoTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string WixVersion | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixVersion]?.Value; | ||
47 | set => this.Set((int)WixBuildInfoTupleFields.WixVersion, value); | ||
48 | } | ||
49 | |||
50 | public string WixOutputFile | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixOutputFile]?.Value; | ||
53 | set => this.Set((int)WixBuildInfoTupleFields.WixOutputFile, value); | ||
54 | } | ||
55 | |||
56 | public string WixProjectFile | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixProjectFile]?.Value; | ||
59 | set => this.Set((int)WixBuildInfoTupleFields.WixProjectFile, value); | ||
60 | } | ||
61 | |||
62 | public string WixPdbFile | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixBuildInfoTupleFields.WixPdbFile]?.Value; | ||
65 | set => this.Set((int)WixBuildInfoTupleFields.WixPdbFile, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs new file mode 100644 index 00000000..4a4cd372 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleCatalog = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleCatalog, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.WixBundleCatalog), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleCatalogTupleFields.Payload_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixBundleCatalogTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixBundleCatalogTupleFields | ||
23 | { | ||
24 | WixBundleCatalog, | ||
25 | Payload_, | ||
26 | } | ||
27 | |||
28 | public class WixBundleCatalogTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixBundleCatalogTuple() : base(TupleDefinitions.WixBundleCatalog, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixBundleCatalogTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleCatalog, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixBundleCatalogTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string WixBundleCatalog | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixBundleCatalogTupleFields.WixBundleCatalog]?.Value; | ||
43 | set => this.Set((int)WixBundleCatalogTupleFields.WixBundleCatalog, value); | ||
44 | } | ||
45 | |||
46 | public string Payload_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixBundleCatalogTupleFields.Payload_]?.Value; | ||
49 | set => this.Set((int)WixBundleCatalogTupleFields.Payload_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs new file mode 100644 index 00000000..d06e029f --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs | |||
@@ -0,0 +1,111 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleContainer = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleContainer, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WixBundleContainer), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Type), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.DownloadUrl), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Size), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Hash), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.AttachedContainerIndex), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WorkingPath), IntermediateFieldType.String), | ||
21 | }, | ||
22 | typeof(WixBundleContainerTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | using System; | ||
29 | |||
30 | public enum WixBundleContainerTupleFields | ||
31 | { | ||
32 | WixBundleContainer, | ||
33 | Name, | ||
34 | Type, | ||
35 | DownloadUrl, | ||
36 | Size, | ||
37 | Hash, | ||
38 | AttachedContainerIndex, | ||
39 | WorkingPath, | ||
40 | } | ||
41 | |||
42 | /// <summary> | ||
43 | /// Types of bundle packages. | ||
44 | /// </summary> | ||
45 | public enum ContainerType | ||
46 | { | ||
47 | Attached, | ||
48 | Detached, | ||
49 | } | ||
50 | |||
51 | public class WixBundleContainerTuple : IntermediateTuple | ||
52 | { | ||
53 | public WixBundleContainerTuple() : base(TupleDefinitions.WixBundleContainer, null, null) | ||
54 | { | ||
55 | } | ||
56 | |||
57 | public WixBundleContainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleContainer, sourceLineNumber, id) | ||
58 | { | ||
59 | } | ||
60 | |||
61 | public IntermediateField this[WixBundleContainerTupleFields index] => this.Fields[(int)index]; | ||
62 | |||
63 | public string WixBundleContainer | ||
64 | { | ||
65 | get => (string)this.Fields[(int)WixBundleContainerTupleFields.WixBundleContainer]?.Value; | ||
66 | set => this.Set((int)WixBundleContainerTupleFields.WixBundleContainer, value); | ||
67 | } | ||
68 | |||
69 | public string Name | ||
70 | { | ||
71 | get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]?.Value; | ||
72 | set => this.Set((int)WixBundleContainerTupleFields.Name, value); | ||
73 | } | ||
74 | |||
75 | public ContainerType Type | ||
76 | { | ||
77 | get => (ContainerType)Enum.Parse(typeof(ContainerType), (string)this.Fields[(int)WixBundleContainerTupleFields.Type]?.Value, true); | ||
78 | set => this.Set((int)WixBundleContainerTupleFields.Type, value.ToString()); | ||
79 | } | ||
80 | |||
81 | public string DownloadUrl | ||
82 | { | ||
83 | get => (string)this.Fields[(int)WixBundleContainerTupleFields.DownloadUrl]?.Value; | ||
84 | set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value); | ||
85 | } | ||
86 | |||
87 | public int Size | ||
88 | { | ||
89 | get => (int)this.Fields[(int)WixBundleContainerTupleFields.Size]?.Value; | ||
90 | set => this.Set((int)WixBundleContainerTupleFields.Size, value); | ||
91 | } | ||
92 | |||
93 | public string Hash | ||
94 | { | ||
95 | get => (string)this.Fields[(int)WixBundleContainerTupleFields.Hash]?.Value; | ||
96 | set => this.Set((int)WixBundleContainerTupleFields.Hash, value); | ||
97 | } | ||
98 | |||
99 | public int AttachedContainerIndex | ||
100 | { | ||
101 | get => (int)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]?.Value; | ||
102 | set => this.Set((int)WixBundleContainerTupleFields.AttachedContainerIndex, value); | ||
103 | } | ||
104 | |||
105 | public string WorkingPath | ||
106 | { | ||
107 | get => (string)this.Fields[(int)WixBundleContainerTupleFields.WorkingPath]?.Value; | ||
108 | set => this.Set((int)WixBundleContainerTupleFields.WorkingPath, value); | ||
109 | } | ||
110 | } | ||
111 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs new file mode 100644 index 00000000..7ba036f3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleExePackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleExePackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.Attributes), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.DetectCondition), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.InstallCommand), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.RepairCommand), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.UninstallCommand), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundleExePackageTupleFields.ExeProtocol), IntermediateFieldType.String), | ||
20 | }, | ||
21 | typeof(WixBundleExePackageTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | using System; | ||
28 | |||
29 | public enum WixBundleExePackageTupleFields | ||
30 | { | ||
31 | WixBundlePackage_, | ||
32 | Attributes, | ||
33 | DetectCondition, | ||
34 | InstallCommand, | ||
35 | RepairCommand, | ||
36 | UninstallCommand, | ||
37 | ExeProtocol, | ||
38 | } | ||
39 | |||
40 | [Flags] | ||
41 | public enum WixBundleExePackageAttributes | ||
42 | { | ||
43 | Repairable = 0x1, | ||
44 | } | ||
45 | |||
46 | public class WixBundleExePackageTuple : IntermediateTuple | ||
47 | { | ||
48 | public WixBundleExePackageTuple() : base(TupleDefinitions.WixBundleExePackage, null, null) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public WixBundleExePackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleExePackage, sourceLineNumber, id) | ||
53 | { | ||
54 | } | ||
55 | |||
56 | public IntermediateField this[WixBundleExePackageTupleFields index] => this.Fields[(int)index]; | ||
57 | |||
58 | public string WixBundlePackage_ | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixBundleExePackageTupleFields.WixBundlePackage_]?.Value; | ||
61 | set => this.Set((int)WixBundleExePackageTupleFields.WixBundlePackage_, value); | ||
62 | } | ||
63 | |||
64 | public WixBundleExePackageAttributes Attributes | ||
65 | { | ||
66 | get => (WixBundleExePackageAttributes)(int)this.Fields[(int)WixBundleExePackageTupleFields.Attributes]?.Value; | ||
67 | set => this.Set((int)WixBundleExePackageTupleFields.Attributes, (int)value); | ||
68 | } | ||
69 | |||
70 | public string DetectCondition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)WixBundleExePackageTupleFields.DetectCondition]?.Value; | ||
73 | set => this.Set((int)WixBundleExePackageTupleFields.DetectCondition, value); | ||
74 | } | ||
75 | |||
76 | public string InstallCommand | ||
77 | { | ||
78 | get => (string)this.Fields[(int)WixBundleExePackageTupleFields.InstallCommand]?.Value; | ||
79 | set => this.Set((int)WixBundleExePackageTupleFields.InstallCommand, value); | ||
80 | } | ||
81 | |||
82 | public string RepairCommand | ||
83 | { | ||
84 | get => (string)this.Fields[(int)WixBundleExePackageTupleFields.RepairCommand]?.Value; | ||
85 | set => this.Set((int)WixBundleExePackageTupleFields.RepairCommand, value); | ||
86 | } | ||
87 | |||
88 | public string UninstallCommand | ||
89 | { | ||
90 | get => (string)this.Fields[(int)WixBundleExePackageTupleFields.UninstallCommand]?.Value; | ||
91 | set => this.Set((int)WixBundleExePackageTupleFields.UninstallCommand, value); | ||
92 | } | ||
93 | |||
94 | public string ExeProtocol | ||
95 | { | ||
96 | get => (string)this.Fields[(int)WixBundleExePackageTupleFields.ExeProtocol]?.Value; | ||
97 | set => this.Set((int)WixBundleExePackageTupleFields.ExeProtocol, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs new file mode 100644 index 00000000..2729205d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs | |||
@@ -0,0 +1,116 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleMsiFeature = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleMsiFeature, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Size), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Parent), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Title), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Description), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Display), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Level), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Directory), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(WixBundleMsiFeatureTupleFields.Attributes), IntermediateFieldType.Number), | ||
23 | }, | ||
24 | typeof(WixBundleMsiFeatureTuple)); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | namespace WixToolset.Data.Tuples | ||
29 | { | ||
30 | public enum WixBundleMsiFeatureTupleFields | ||
31 | { | ||
32 | WixBundlePackage_, | ||
33 | Name, | ||
34 | Size, | ||
35 | Parent, | ||
36 | Title, | ||
37 | Description, | ||
38 | Display, | ||
39 | Level, | ||
40 | Directory, | ||
41 | Attributes, | ||
42 | } | ||
43 | |||
44 | public class WixBundleMsiFeatureTuple : IntermediateTuple | ||
45 | { | ||
46 | public WixBundleMsiFeatureTuple() : base(TupleDefinitions.WixBundleMsiFeature, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public WixBundleMsiFeatureTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiFeature, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[WixBundleMsiFeatureTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string WixBundlePackage_ | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.WixBundlePackage_]?.Value; | ||
59 | set => this.Set((int)WixBundleMsiFeatureTupleFields.WixBundlePackage_, value); | ||
60 | } | ||
61 | |||
62 | public string Name | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Name]?.Value; | ||
65 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Name, value); | ||
66 | } | ||
67 | |||
68 | public int Size | ||
69 | { | ||
70 | get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Size]?.Value; | ||
71 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Size, value); | ||
72 | } | ||
73 | |||
74 | public string Parent | ||
75 | { | ||
76 | get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Parent]?.Value; | ||
77 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Parent, value); | ||
78 | } | ||
79 | |||
80 | public string Title | ||
81 | { | ||
82 | get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Title]?.Value; | ||
83 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Title, value); | ||
84 | } | ||
85 | |||
86 | public string Description | ||
87 | { | ||
88 | get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Description]?.Value; | ||
89 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Description, value); | ||
90 | } | ||
91 | |||
92 | public int Display | ||
93 | { | ||
94 | get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Display]?.Value; | ||
95 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Display, value); | ||
96 | } | ||
97 | |||
98 | public int Level | ||
99 | { | ||
100 | get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Level]?.Value; | ||
101 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Level, value); | ||
102 | } | ||
103 | |||
104 | public string Directory | ||
105 | { | ||
106 | get => (string)this.Fields[(int)WixBundleMsiFeatureTupleFields.Directory]?.Value; | ||
107 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Directory, value); | ||
108 | } | ||
109 | |||
110 | public int Attributes | ||
111 | { | ||
112 | get => (int)this.Fields[(int)WixBundleMsiFeatureTupleFields.Attributes]?.Value; | ||
113 | set => this.Set((int)WixBundleMsiFeatureTupleFields.Attributes, value); | ||
114 | } | ||
115 | } | ||
116 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs new file mode 100644 index 00000000..ce3afc15 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs | |||
@@ -0,0 +1,111 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleMsiPackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleMsiPackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Attributes), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductCode), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.UpgradeCode), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductVersion), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductLanguage), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.ProductName), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundleMsiPackageTupleFields.Manufacturer), IntermediateFieldType.String), | ||
21 | }, | ||
22 | typeof(WixBundleMsiPackageTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | using System; | ||
29 | |||
30 | public enum WixBundleMsiPackageTupleFields | ||
31 | { | ||
32 | WixBundlePackage_, | ||
33 | Attributes, | ||
34 | ProductCode, | ||
35 | UpgradeCode, | ||
36 | ProductVersion, | ||
37 | ProductLanguage, | ||
38 | ProductName, | ||
39 | Manufacturer, | ||
40 | } | ||
41 | |||
42 | [Flags] | ||
43 | public enum WixBundleMsiPackageAttributes | ||
44 | { | ||
45 | DisplayInternalUI = 0x1, | ||
46 | EnableFeatureSelection = 0x4, | ||
47 | ForcePerMachine = 0x2, | ||
48 | SuppressLooseFilePayloadGeneration = 0x8, | ||
49 | } | ||
50 | |||
51 | public class WixBundleMsiPackageTuple : IntermediateTuple | ||
52 | { | ||
53 | public WixBundleMsiPackageTuple() : base(TupleDefinitions.WixBundleMsiPackage, null, null) | ||
54 | { | ||
55 | } | ||
56 | |||
57 | public WixBundleMsiPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiPackage, sourceLineNumber, id) | ||
58 | { | ||
59 | } | ||
60 | |||
61 | public IntermediateField this[WixBundleMsiPackageTupleFields index] => this.Fields[(int)index]; | ||
62 | |||
63 | public string WixBundlePackage_ | ||
64 | { | ||
65 | get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.WixBundlePackage_]?.Value; | ||
66 | set => this.Set((int)WixBundleMsiPackageTupleFields.WixBundlePackage_, value); | ||
67 | } | ||
68 | |||
69 | public WixBundleMsiPackageAttributes Attributes | ||
70 | { | ||
71 | get => (WixBundleMsiPackageAttributes)(int)this.Fields[(int)WixBundleMsiPackageTupleFields.Attributes]?.Value; | ||
72 | set => this.Set((int)WixBundleMsiPackageTupleFields.Attributes, (int)value); | ||
73 | } | ||
74 | |||
75 | public string ProductCode | ||
76 | { | ||
77 | get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductCode]?.Value; | ||
78 | set => this.Set((int)WixBundleMsiPackageTupleFields.ProductCode, value); | ||
79 | } | ||
80 | |||
81 | public string UpgradeCode | ||
82 | { | ||
83 | get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.UpgradeCode]?.Value; | ||
84 | set => this.Set((int)WixBundleMsiPackageTupleFields.UpgradeCode, value); | ||
85 | } | ||
86 | |||
87 | public string ProductVersion | ||
88 | { | ||
89 | get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductVersion]?.Value; | ||
90 | set => this.Set((int)WixBundleMsiPackageTupleFields.ProductVersion, value); | ||
91 | } | ||
92 | |||
93 | public int ProductLanguage | ||
94 | { | ||
95 | get => (int)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductLanguage]?.Value; | ||
96 | set => this.Set((int)WixBundleMsiPackageTupleFields.ProductLanguage, value); | ||
97 | } | ||
98 | |||
99 | public string ProductName | ||
100 | { | ||
101 | get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.ProductName]?.Value; | ||
102 | set => this.Set((int)WixBundleMsiPackageTupleFields.ProductName, value); | ||
103 | } | ||
104 | |||
105 | public string Manufacturer | ||
106 | { | ||
107 | get => (string)this.Fields[(int)WixBundleMsiPackageTupleFields.Manufacturer]?.Value; | ||
108 | set => this.Set((int)WixBundleMsiPackageTupleFields.Manufacturer, value); | ||
109 | } | ||
110 | } | ||
111 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs new file mode 100644 index 00000000..5eea57ea --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleMsiProperty = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleMsiProperty, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Value), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleMsiPropertyTupleFields.Condition), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(WixBundleMsiPropertyTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixBundleMsiPropertyTupleFields | ||
25 | { | ||
26 | WixBundlePackage_, | ||
27 | Name, | ||
28 | Value, | ||
29 | Condition, | ||
30 | } | ||
31 | |||
32 | public class WixBundleMsiPropertyTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixBundleMsiPropertyTuple() : base(TupleDefinitions.WixBundleMsiProperty, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixBundleMsiPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsiProperty, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixBundleMsiPropertyTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string WixBundlePackage_ | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.WixBundlePackage_]?.Value; | ||
47 | set => this.Set((int)WixBundleMsiPropertyTupleFields.WixBundlePackage_, value); | ||
48 | } | ||
49 | |||
50 | public string Name | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Name]?.Value; | ||
53 | set => this.Set((int)WixBundleMsiPropertyTupleFields.Name, value); | ||
54 | } | ||
55 | |||
56 | public string Value | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Value]?.Value; | ||
59 | set => this.Set((int)WixBundleMsiPropertyTupleFields.Value, value); | ||
60 | } | ||
61 | |||
62 | public string Condition | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixBundleMsiPropertyTupleFields.Condition]?.Value; | ||
65 | set => this.Set((int)WixBundleMsiPropertyTupleFields.Condition, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs new file mode 100644 index 00000000..219c7735 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs | |||
@@ -0,0 +1,86 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleMspPackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleMspPackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Attributes), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchCode), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.Manufacturer), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleMspPackageTupleFields.PatchXml), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(WixBundleMspPackageTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | using System; | ||
26 | |||
27 | public enum WixBundleMspPackageTupleFields | ||
28 | { | ||
29 | WixBundlePackage_, | ||
30 | Attributes, | ||
31 | PatchCode, | ||
32 | Manufacturer, | ||
33 | PatchXml, | ||
34 | } | ||
35 | |||
36 | [Flags] | ||
37 | public enum WixBundleMspPackageAttributes | ||
38 | { | ||
39 | DisplayInternalUI = 0x1, | ||
40 | Slipstream = 0x2, | ||
41 | TargetUnspecified = 0x4, | ||
42 | } | ||
43 | |||
44 | public class WixBundleMspPackageTuple : IntermediateTuple | ||
45 | { | ||
46 | public WixBundleMspPackageTuple() : base(TupleDefinitions.WixBundleMspPackage, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public WixBundleMspPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMspPackage, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[WixBundleMspPackageTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string WixBundlePackage_ | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.WixBundlePackage_]?.Value; | ||
59 | set => this.Set((int)WixBundleMspPackageTupleFields.WixBundlePackage_, value); | ||
60 | } | ||
61 | |||
62 | public WixBundleMspPackageAttributes Attributes | ||
63 | { | ||
64 | get => (WixBundleMspPackageAttributes)(int)this.Fields[(int)WixBundleMspPackageTupleFields.Attributes]?.Value; | ||
65 | set => this.Set((int)WixBundleMspPackageTupleFields.Attributes, (int)value); | ||
66 | } | ||
67 | |||
68 | public string PatchCode | ||
69 | { | ||
70 | get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchCode]?.Value; | ||
71 | set => this.Set((int)WixBundleMspPackageTupleFields.PatchCode, value); | ||
72 | } | ||
73 | |||
74 | public string Manufacturer | ||
75 | { | ||
76 | get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.Manufacturer]?.Value; | ||
77 | set => this.Set((int)WixBundleMspPackageTupleFields.Manufacturer, value); | ||
78 | } | ||
79 | |||
80 | public string PatchXml | ||
81 | { | ||
82 | get => (string)this.Fields[(int)WixBundleMspPackageTupleFields.PatchXml]?.Value; | ||
83 | set => this.Set((int)WixBundleMspPackageTupleFields.PatchXml, value); | ||
84 | } | ||
85 | } | ||
86 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs new file mode 100644 index 00000000..f6f71d6d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleMsuPackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleMsuPackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.DetectCondition), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleMsuPackageTupleFields.MsuKB), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(WixBundleMsuPackageTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixBundleMsuPackageTupleFields | ||
24 | { | ||
25 | WixBundlePackage_, | ||
26 | DetectCondition, | ||
27 | MsuKB, | ||
28 | } | ||
29 | |||
30 | public class WixBundleMsuPackageTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixBundleMsuPackageTuple() : base(TupleDefinitions.WixBundleMsuPackage, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixBundleMsuPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleMsuPackage, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixBundleMsuPackageTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixBundlePackage_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.WixBundlePackage_]?.Value; | ||
45 | set => this.Set((int)WixBundleMsuPackageTupleFields.WixBundlePackage_, value); | ||
46 | } | ||
47 | |||
48 | public string DetectCondition | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.DetectCondition]?.Value; | ||
51 | set => this.Set((int)WixBundleMsuPackageTupleFields.DetectCondition, value); | ||
52 | } | ||
53 | |||
54 | public string MsuKB | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixBundleMsuPackageTupleFields.MsuKB]?.Value; | ||
57 | set => this.Set((int)WixBundleMsuPackageTupleFields.MsuKB, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs new file mode 100644 index 00000000..0ca895c0 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePackageCommandLine = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePackageCommandLine, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.InstallArgument), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.UninstallArgument), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.RepairArgument), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundlePackageCommandLineTupleFields.Condition), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(WixBundlePackageCommandLineTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum WixBundlePackageCommandLineTupleFields | ||
26 | { | ||
27 | WixBundlePackage_, | ||
28 | InstallArgument, | ||
29 | UninstallArgument, | ||
30 | RepairArgument, | ||
31 | Condition, | ||
32 | } | ||
33 | |||
34 | public class WixBundlePackageCommandLineTuple : IntermediateTuple | ||
35 | { | ||
36 | public WixBundlePackageCommandLineTuple() : base(TupleDefinitions.WixBundlePackageCommandLine, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public WixBundlePackageCommandLineTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageCommandLine, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[WixBundlePackageCommandLineTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string WixBundlePackage_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_]?.Value; | ||
49 | set => this.Set((int)WixBundlePackageCommandLineTupleFields.WixBundlePackage_, value); | ||
50 | } | ||
51 | |||
52 | public string InstallArgument | ||
53 | { | ||
54 | get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.InstallArgument]?.Value; | ||
55 | set => this.Set((int)WixBundlePackageCommandLineTupleFields.InstallArgument, value); | ||
56 | } | ||
57 | |||
58 | public string UninstallArgument | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.UninstallArgument]?.Value; | ||
61 | set => this.Set((int)WixBundlePackageCommandLineTupleFields.UninstallArgument, value); | ||
62 | } | ||
63 | |||
64 | public string RepairArgument | ||
65 | { | ||
66 | get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.RepairArgument]?.Value; | ||
67 | set => this.Set((int)WixBundlePackageCommandLineTupleFields.RepairArgument, value); | ||
68 | } | ||
69 | |||
70 | public string Condition | ||
71 | { | ||
72 | get => (string)this.Fields[(int)WixBundlePackageCommandLineTupleFields.Condition]?.Value; | ||
73 | set => this.Set((int)WixBundlePackageCommandLineTupleFields.Condition, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
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 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePackageExitCode = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePackageExitCode, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.ChainPackageId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Code), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundlePackageExitCodeTupleFields.Behavior), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(WixBundlePackageExitCodeTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | using System; | ||
24 | |||
25 | public enum WixBundlePackageExitCodeTupleFields | ||
26 | { | ||
27 | ChainPackageId, | ||
28 | Code, | ||
29 | Behavior, | ||
30 | } | ||
31 | |||
32 | public enum ExitCodeBehaviorType | ||
33 | { | ||
34 | NotSet = -1, | ||
35 | Success, | ||
36 | Error, | ||
37 | ScheduleReboot, | ||
38 | ForceReboot, | ||
39 | } | ||
40 | |||
41 | public class WixBundlePackageExitCodeTuple : IntermediateTuple | ||
42 | { | ||
43 | public WixBundlePackageExitCodeTuple() : base(TupleDefinitions.WixBundlePackageExitCode, null, null) | ||
44 | { | ||
45 | } | ||
46 | |||
47 | public WixBundlePackageExitCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageExitCode, sourceLineNumber, id) | ||
48 | { | ||
49 | } | ||
50 | |||
51 | public IntermediateField this[WixBundlePackageExitCodeTupleFields index] => this.Fields[(int)index]; | ||
52 | |||
53 | public string ChainPackageId | ||
54 | { | ||
55 | get => (string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.ChainPackageId]?.Value; | ||
56 | set => this.Set((int)WixBundlePackageExitCodeTupleFields.ChainPackageId, value); | ||
57 | } | ||
58 | |||
59 | public int Code | ||
60 | { | ||
61 | get => (int)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Code]?.Value; | ||
62 | set => this.Set((int)WixBundlePackageExitCodeTupleFields.Code, value); | ||
63 | } | ||
64 | |||
65 | public ExitCodeBehaviorType Behavior | ||
66 | { | ||
67 | get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageExitCodeTupleFields.Behavior]?.Value, true, out ExitCodeBehaviorType value) ? value : ExitCodeBehaviorType.NotSet; | ||
68 | set => this.Set((int)WixBundlePackageExitCodeTupleFields.Behavior, value.ToString()); | ||
69 | } | ||
70 | } | ||
71 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs new file mode 100644 index 00000000..56711155 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePackageGroup = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePackageGroup, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePackageGroupTupleFields.WixBundlePackageGroup), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixBundlePackageGroupTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixBundlePackageGroupTupleFields | ||
22 | { | ||
23 | WixBundlePackageGroup, | ||
24 | } | ||
25 | |||
26 | public class WixBundlePackageGroupTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixBundlePackageGroupTuple() : base(TupleDefinitions.WixBundlePackageGroup, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixBundlePackageGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackageGroup, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixBundlePackageGroupTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixBundlePackageGroup | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup]?.Value; | ||
41 | set => this.Set((int)WixBundlePackageGroupTupleFields.WixBundlePackageGroup, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs new file mode 100644 index 00000000..e0eedce1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs | |||
@@ -0,0 +1,216 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.WixChainItem_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Type), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Payload_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Attributes), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallCondition), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Cache), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.CacheId), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Vital), IntermediateFieldType.Bool), | ||
21 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.PerMachine), IntermediateFieldType.Bool), | ||
22 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.LogPathVariable), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Size), IntermediateFieldType.Number), | ||
25 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.InstallSize), IntermediateFieldType.Number), | ||
26 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Version), IntermediateFieldType.String), | ||
27 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Language), IntermediateFieldType.Number), | ||
28 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.DisplayName), IntermediateFieldType.String), | ||
29 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.Description), IntermediateFieldType.String), | ||
30 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundary_), IntermediateFieldType.String), | ||
31 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.RollbackBoundaryBackward_), IntermediateFieldType.String), | ||
32 | new IntermediateFieldDefinition(nameof(WixBundlePackageTupleFields.x64), IntermediateFieldType.Number), | ||
33 | }, | ||
34 | typeof(WixBundlePackageTuple)); | ||
35 | } | ||
36 | } | ||
37 | |||
38 | namespace WixToolset.Data.Tuples | ||
39 | { | ||
40 | using System; | ||
41 | |||
42 | public enum WixBundlePackageTupleFields | ||
43 | { | ||
44 | WixChainItem_, | ||
45 | Type, | ||
46 | Payload_, | ||
47 | Attributes, | ||
48 | InstallCondition, | ||
49 | Cache, | ||
50 | CacheId, | ||
51 | Vital, | ||
52 | PerMachine, | ||
53 | LogPathVariable, | ||
54 | RollbackLogPathVariable, | ||
55 | Size, | ||
56 | InstallSize, | ||
57 | Version, | ||
58 | Language, | ||
59 | DisplayName, | ||
60 | Description, | ||
61 | RollbackBoundary_, | ||
62 | RollbackBoundaryBackward_, | ||
63 | x64, | ||
64 | } | ||
65 | |||
66 | /// <summary> | ||
67 | /// Types of bundle packages. | ||
68 | /// </summary> | ||
69 | public enum WixBundlePackageType | ||
70 | { | ||
71 | Exe, | ||
72 | Msi, | ||
73 | Msp, | ||
74 | Msu, | ||
75 | } | ||
76 | |||
77 | [Flags] | ||
78 | public enum WixBundlePackageAttributes | ||
79 | { | ||
80 | Permanent = 0x1, | ||
81 | Visible = 0x2, | ||
82 | } | ||
83 | |||
84 | public class WixBundlePackageTuple : IntermediateTuple | ||
85 | { | ||
86 | public WixBundlePackageTuple() : base(TupleDefinitions.WixBundlePackage, null, null) | ||
87 | { | ||
88 | } | ||
89 | |||
90 | public WixBundlePackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePackage, sourceLineNumber, id) | ||
91 | { | ||
92 | } | ||
93 | |||
94 | public IntermediateField this[WixBundlePackageTupleFields index] => this.Fields[(int)index]; | ||
95 | |||
96 | public string WixChainItem_ | ||
97 | { | ||
98 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.WixChainItem_]?.Value; | ||
99 | set => this.Set((int)WixBundlePackageTupleFields.WixChainItem_, value); | ||
100 | } | ||
101 | |||
102 | public WixBundlePackageType Type | ||
103 | { | ||
104 | get => (WixBundlePackageType)Enum.Parse(typeof(WixBundlePackageType), (string)this.Fields[(int)WixBundlePackageTupleFields.Type]?.Value, true); | ||
105 | set => this.Set((int)WixBundlePackageTupleFields.Type, value.ToString()); | ||
106 | } | ||
107 | |||
108 | public string Payload_ | ||
109 | { | ||
110 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.Payload_]?.Value; | ||
111 | set => this.Set((int)WixBundlePackageTupleFields.Payload_, value); | ||
112 | } | ||
113 | |||
114 | public WixBundlePackageAttributes Attributes | ||
115 | { | ||
116 | get => (WixBundlePackageAttributes)(int)this.Fields[(int)WixBundlePackageTupleFields.Attributes]?.Value; | ||
117 | set => this.Set((int)WixBundlePackageTupleFields.Attributes, (int)value); | ||
118 | } | ||
119 | |||
120 | public string InstallCondition | ||
121 | { | ||
122 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.InstallCondition]?.Value; | ||
123 | set => this.Set((int)WixBundlePackageTupleFields.InstallCondition, value); | ||
124 | } | ||
125 | |||
126 | public YesNoAlwaysType Cache | ||
127 | { | ||
128 | get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.Cache]?.Value, true, out YesNoAlwaysType value) ? value : YesNoAlwaysType.NotSet; | ||
129 | set => this.Set((int)WixBundlePackageTupleFields.Cache, value); | ||
130 | } | ||
131 | |||
132 | public string CacheId | ||
133 | { | ||
134 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.CacheId]?.Value; | ||
135 | set => this.Set((int)WixBundlePackageTupleFields.CacheId, value); | ||
136 | } | ||
137 | |||
138 | public bool? Vital | ||
139 | { | ||
140 | get => (bool?)this.Fields[(int)WixBundlePackageTupleFields.Vital]?.Value; | ||
141 | set => this.Set((int)WixBundlePackageTupleFields.Vital, value); | ||
142 | } | ||
143 | |||
144 | public YesNoDefaultType PerMachine | ||
145 | { | ||
146 | get => Enum.TryParse((string)this.Fields[(int)WixBundlePackageTupleFields.PerMachine]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; | ||
147 | set => this.Set((int)WixBundlePackageTupleFields.PerMachine, value); | ||
148 | } | ||
149 | |||
150 | public string LogPathVariable | ||
151 | { | ||
152 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.LogPathVariable]?.Value; | ||
153 | set => this.Set((int)WixBundlePackageTupleFields.LogPathVariable, value); | ||
154 | } | ||
155 | |||
156 | public string RollbackLogPathVariable | ||
157 | { | ||
158 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackLogPathVariable]?.Value; | ||
159 | set => this.Set((int)WixBundlePackageTupleFields.RollbackLogPathVariable, value); | ||
160 | } | ||
161 | |||
162 | public int Size | ||
163 | { | ||
164 | get => (int)this.Fields[(int)WixBundlePackageTupleFields.Size]?.Value; | ||
165 | set => this.Set((int)WixBundlePackageTupleFields.Size, value); | ||
166 | } | ||
167 | |||
168 | public int InstallSize | ||
169 | { | ||
170 | get => (int)this.Fields[(int)WixBundlePackageTupleFields.InstallSize]?.Value; | ||
171 | set => this.Set((int)WixBundlePackageTupleFields.InstallSize, value); | ||
172 | } | ||
173 | |||
174 | public string Version | ||
175 | { | ||
176 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.Version]?.Value; | ||
177 | set => this.Set((int)WixBundlePackageTupleFields.Version, value); | ||
178 | } | ||
179 | |||
180 | public int Language | ||
181 | { | ||
182 | get => (int)this.Fields[(int)WixBundlePackageTupleFields.Language]?.Value; | ||
183 | set => this.Set((int)WixBundlePackageTupleFields.Language, value); | ||
184 | } | ||
185 | |||
186 | public string DisplayName | ||
187 | { | ||
188 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.DisplayName]?.Value; | ||
189 | set => this.Set((int)WixBundlePackageTupleFields.DisplayName, value); | ||
190 | } | ||
191 | |||
192 | public string Description | ||
193 | { | ||
194 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.Description]?.Value; | ||
195 | set => this.Set((int)WixBundlePackageTupleFields.Description, value); | ||
196 | } | ||
197 | |||
198 | public string RollbackBoundary_ | ||
199 | { | ||
200 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundary_]?.Value; | ||
201 | set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundary_, value); | ||
202 | } | ||
203 | |||
204 | public string RollbackBoundaryBackward_ | ||
205 | { | ||
206 | get => (string)this.Fields[(int)WixBundlePackageTupleFields.RollbackBoundaryBackward_]?.Value; | ||
207 | set => this.Set((int)WixBundlePackageTupleFields.RollbackBoundaryBackward_, value); | ||
208 | } | ||
209 | |||
210 | public int x64 | ||
211 | { | ||
212 | get => (int)this.Fields[(int)WixBundlePackageTupleFields.x64]?.Value; | ||
213 | set => this.Set((int)WixBundlePackageTupleFields.x64, value); | ||
214 | } | ||
215 | } | ||
216 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs new file mode 100644 index 00000000..d34c0d2a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePatchTargetCode = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePatchTargetCode, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.PackageId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.TargetCode), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundlePatchTargetCodeTupleFields.Attributes), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(WixBundlePatchTargetCodeTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixBundlePatchTargetCodeTupleFields | ||
24 | { | ||
25 | PackageId, | ||
26 | TargetCode, | ||
27 | Attributes, | ||
28 | } | ||
29 | |||
30 | public class WixBundlePatchTargetCodeTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixBundlePatchTargetCodeTuple() : base(TupleDefinitions.WixBundlePatchTargetCode, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixBundlePatchTargetCodeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePatchTargetCode, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixBundlePatchTargetCodeTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string PackageId | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.PackageId]?.Value; | ||
45 | set => this.Set((int)WixBundlePatchTargetCodeTupleFields.PackageId, value); | ||
46 | } | ||
47 | |||
48 | public string TargetCode | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.TargetCode]?.Value; | ||
51 | set => this.Set((int)WixBundlePatchTargetCodeTupleFields.TargetCode, value); | ||
52 | } | ||
53 | |||
54 | public int Attributes | ||
55 | { | ||
56 | get => (int)this.Fields[(int)WixBundlePatchTargetCodeTupleFields.Attributes]?.Value; | ||
57 | set => this.Set((int)WixBundlePatchTargetCodeTupleFields.Attributes, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs new file mode 100644 index 00000000..c1f0df6a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePayloadGroup = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePayloadGroup, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixBundlePayloadGroupTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixBundlePayloadGroupTupleFields | ||
22 | { | ||
23 | WixBundlePayloadGroup, | ||
24 | } | ||
25 | |||
26 | public class WixBundlePayloadGroupTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixBundlePayloadGroupTuple() : base(TupleDefinitions.WixBundlePayloadGroup, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixBundlePayloadGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePayloadGroup, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixBundlePayloadGroupTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixBundlePayloadGroup | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup]?.Value; | ||
41 | set => this.Set((int)WixBundlePayloadGroupTupleFields.WixBundlePayloadGroup, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs new file mode 100644 index 00000000..d1c02387 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs | |||
@@ -0,0 +1,214 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundlePayload = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundlePayload, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.WixBundlePayload), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Name), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.SourceFile), IntermediateFieldType.Path), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DownloadUrl), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Compressed), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.UnresolvedSourceFile), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.DisplayName), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Description), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EnableSignatureValidation), IntermediateFieldType.Bool), | ||
22 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.FileSize), IntermediateFieldType.Number), | ||
23 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Version), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Hash), IntermediateFieldType.String), | ||
25 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.PublicKey), IntermediateFieldType.String), | ||
26 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Thumbprint), IntermediateFieldType.String), | ||
27 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Catalog_), IntermediateFieldType.String), | ||
28 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Container_), IntermediateFieldType.String), | ||
29 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Package), IntermediateFieldType.String), | ||
30 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ContentFile), IntermediateFieldType.Bool), | ||
31 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.EmbeddedId), IntermediateFieldType.String), | ||
32 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.LayoutOnly), IntermediateFieldType.Number), | ||
33 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.Packaging), IntermediateFieldType.Number), | ||
34 | new IntermediateFieldDefinition(nameof(WixBundlePayloadTupleFields.ParentPackagePayload_), IntermediateFieldType.String), | ||
35 | }, | ||
36 | typeof(WixBundlePayloadTuple)); | ||
37 | } | ||
38 | } | ||
39 | |||
40 | namespace WixToolset.Data.Tuples | ||
41 | { | ||
42 | using System; | ||
43 | |||
44 | public enum WixBundlePayloadTupleFields | ||
45 | { | ||
46 | WixBundlePayload, | ||
47 | Name, | ||
48 | SourceFile, | ||
49 | DownloadUrl, | ||
50 | Compressed, | ||
51 | UnresolvedSourceFile, | ||
52 | DisplayName, | ||
53 | Description, | ||
54 | EnableSignatureValidation, | ||
55 | FileSize, | ||
56 | Version, | ||
57 | Hash, | ||
58 | PublicKey, | ||
59 | Thumbprint, | ||
60 | Catalog_, | ||
61 | Container_, | ||
62 | Package, | ||
63 | ContentFile, | ||
64 | EmbeddedId, | ||
65 | LayoutOnly, | ||
66 | Packaging, | ||
67 | ParentPackagePayload_, | ||
68 | } | ||
69 | |||
70 | public class WixBundlePayloadTuple : IntermediateTuple | ||
71 | { | ||
72 | public WixBundlePayloadTuple() : base(TupleDefinitions.WixBundlePayload, null, null) | ||
73 | { | ||
74 | } | ||
75 | |||
76 | public WixBundlePayloadTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundlePayload, sourceLineNumber, id) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | public IntermediateField this[WixBundlePayloadTupleFields index] => this.Fields[(int)index]; | ||
81 | |||
82 | public string WixBundlePayload | ||
83 | { | ||
84 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.WixBundlePayload]?.Value; | ||
85 | set => this.Set((int)WixBundlePayloadTupleFields.WixBundlePayload, value); | ||
86 | } | ||
87 | |||
88 | public string Name | ||
89 | { | ||
90 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Name]?.Value; | ||
91 | set => this.Set((int)WixBundlePayloadTupleFields.Name, value); | ||
92 | } | ||
93 | |||
94 | public string SourceFile | ||
95 | { | ||
96 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.SourceFile]?.Value; | ||
97 | set => this.Set((int)WixBundlePayloadTupleFields.SourceFile, value); | ||
98 | } | ||
99 | |||
100 | public string DownloadUrl | ||
101 | { | ||
102 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DownloadUrl]?.Value; | ||
103 | set => this.Set((int)WixBundlePayloadTupleFields.DownloadUrl, value); | ||
104 | } | ||
105 | |||
106 | public YesNoDefaultType Compressed | ||
107 | { | ||
108 | get => Enum.TryParse((string)this.Fields[(int)WixBundlePayloadTupleFields.Compressed]?.Value, true, out YesNoDefaultType value) ? value : YesNoDefaultType.NotSet; | ||
109 | set => this.Set((int)WixBundlePayloadTupleFields.Compressed, value); | ||
110 | } | ||
111 | |||
112 | public string UnresolvedSourceFile | ||
113 | { | ||
114 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.UnresolvedSourceFile]?.Value; | ||
115 | set => this.Set((int)WixBundlePayloadTupleFields.UnresolvedSourceFile, value); | ||
116 | } | ||
117 | |||
118 | public string DisplayName | ||
119 | { | ||
120 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.DisplayName]?.Value; | ||
121 | set => this.Set((int)WixBundlePayloadTupleFields.DisplayName, value); | ||
122 | } | ||
123 | |||
124 | public string Description | ||
125 | { | ||
126 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Description]?.Value; | ||
127 | set => this.Set((int)WixBundlePayloadTupleFields.Description, value); | ||
128 | } | ||
129 | |||
130 | public bool EnableSignatureValidation | ||
131 | { | ||
132 | get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.EnableSignatureValidation]?.Value; | ||
133 | set => this.Set((int)WixBundlePayloadTupleFields.EnableSignatureValidation, value); | ||
134 | } | ||
135 | |||
136 | public int FileSize | ||
137 | { | ||
138 | get => (int)this.Fields[(int)WixBundlePayloadTupleFields.FileSize]?.Value; | ||
139 | set => this.Set((int)WixBundlePayloadTupleFields.FileSize, value); | ||
140 | } | ||
141 | |||
142 | public string Version | ||
143 | { | ||
144 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Version]?.Value; | ||
145 | set => this.Set((int)WixBundlePayloadTupleFields.Version, value); | ||
146 | } | ||
147 | |||
148 | public string Hash | ||
149 | { | ||
150 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Hash]?.Value; | ||
151 | set => this.Set((int)WixBundlePayloadTupleFields.Hash, value); | ||
152 | } | ||
153 | |||
154 | public string PublicKey | ||
155 | { | ||
156 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.PublicKey]?.Value; | ||
157 | set => this.Set((int)WixBundlePayloadTupleFields.PublicKey, value); | ||
158 | } | ||
159 | |||
160 | public string Thumbprint | ||
161 | { | ||
162 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Thumbprint]?.Value; | ||
163 | set => this.Set((int)WixBundlePayloadTupleFields.Thumbprint, value); | ||
164 | } | ||
165 | |||
166 | public string Catalog_ | ||
167 | { | ||
168 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Catalog_]?.Value; | ||
169 | set => this.Set((int)WixBundlePayloadTupleFields.Catalog_, value); | ||
170 | } | ||
171 | |||
172 | public string Container_ | ||
173 | { | ||
174 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Container_]?.Value; | ||
175 | set => this.Set((int)WixBundlePayloadTupleFields.Container_, value); | ||
176 | } | ||
177 | |||
178 | public string Package | ||
179 | { | ||
180 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.Package]?.Value; | ||
181 | set => this.Set((int)WixBundlePayloadTupleFields.Package, value); | ||
182 | } | ||
183 | |||
184 | public bool ContentFile | ||
185 | { | ||
186 | get => (bool)this.Fields[(int)WixBundlePayloadTupleFields.ContentFile]?.Value; | ||
187 | set => this.Set((int)WixBundlePayloadTupleFields.ContentFile, value); | ||
188 | } | ||
189 | |||
190 | public string EmbeddedId | ||
191 | { | ||
192 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.EmbeddedId]?.Value; | ||
193 | set => this.Set((int)WixBundlePayloadTupleFields.EmbeddedId, value); | ||
194 | } | ||
195 | |||
196 | public int LayoutOnly | ||
197 | { | ||
198 | get => (int)this.Fields[(int)WixBundlePayloadTupleFields.LayoutOnly]?.Value; | ||
199 | set => this.Set((int)WixBundlePayloadTupleFields.LayoutOnly, value); | ||
200 | } | ||
201 | |||
202 | public int Packaging | ||
203 | { | ||
204 | get => (int)this.Fields[(int)WixBundlePayloadTupleFields.Packaging]?.Value; | ||
205 | set => this.Set((int)WixBundlePayloadTupleFields.Packaging, value); | ||
206 | } | ||
207 | |||
208 | public string ParentPackagePayload_ | ||
209 | { | ||
210 | get => (string)this.Fields[(int)WixBundlePayloadTupleFields.ParentPackagePayload_]?.Value; | ||
211 | set => this.Set((int)WixBundlePayloadTupleFields.ParentPackagePayload_, value); | ||
212 | } | ||
213 | } | ||
214 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs new file mode 100644 index 00000000..8a42c3c6 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleProperties = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleProperties, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.DisplayName), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Compressed), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.Id), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundlePropertiesTupleFields.PerMachine), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(WixBundlePropertiesTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum WixBundlePropertiesTupleFields | ||
27 | { | ||
28 | DisplayName, | ||
29 | LogPathVariable, | ||
30 | Compressed, | ||
31 | Id, | ||
32 | UpgradeCode, | ||
33 | PerMachine, | ||
34 | } | ||
35 | |||
36 | public class WixBundlePropertiesTuple : IntermediateTuple | ||
37 | { | ||
38 | public WixBundlePropertiesTuple() : base(TupleDefinitions.WixBundleProperties, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public WixBundlePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleProperties, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[WixBundlePropertiesTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string DisplayName | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.DisplayName]?.Value; | ||
51 | set => this.Set((int)WixBundlePropertiesTupleFields.DisplayName, value); | ||
52 | } | ||
53 | |||
54 | public string LogPathVariable | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.LogPathVariable]?.Value; | ||
57 | set => this.Set((int)WixBundlePropertiesTupleFields.LogPathVariable, value); | ||
58 | } | ||
59 | |||
60 | public string Compressed | ||
61 | { | ||
62 | get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Compressed]?.Value; | ||
63 | set => this.Set((int)WixBundlePropertiesTupleFields.Compressed, value); | ||
64 | } | ||
65 | |||
66 | public string Id | ||
67 | { | ||
68 | get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.Id]?.Value; | ||
69 | set => this.Set((int)WixBundlePropertiesTupleFields.Id, value); | ||
70 | } | ||
71 | |||
72 | public string UpgradeCode | ||
73 | { | ||
74 | get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.UpgradeCode]?.Value; | ||
75 | set => this.Set((int)WixBundlePropertiesTupleFields.UpgradeCode, value); | ||
76 | } | ||
77 | |||
78 | public string PerMachine | ||
79 | { | ||
80 | get => (string)this.Fields[(int)WixBundlePropertiesTupleFields.PerMachine]?.Value; | ||
81 | set => this.Set((int)WixBundlePropertiesTupleFields.PerMachine, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs new file mode 100644 index 00000000..d3e1069a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs | |||
@@ -0,0 +1,108 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleRelatedPackage = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleRelatedPackage, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Id), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinVersion), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxVersion), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.Languages), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MinInclusive), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.MaxInclusive), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.LangInclusive), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageTupleFields.OnlyDetect), IntermediateFieldType.Number), | ||
22 | }, | ||
23 | typeof(WixBundleRelatedPackageTuple)); | ||
24 | } | ||
25 | } | ||
26 | |||
27 | namespace WixToolset.Data.Tuples | ||
28 | { | ||
29 | public enum WixBundleRelatedPackageTupleFields | ||
30 | { | ||
31 | WixBundlePackage_, | ||
32 | Id, | ||
33 | MinVersion, | ||
34 | MaxVersion, | ||
35 | Languages, | ||
36 | MinInclusive, | ||
37 | MaxInclusive, | ||
38 | LangInclusive, | ||
39 | OnlyDetect, | ||
40 | } | ||
41 | |||
42 | public class WixBundleRelatedPackageTuple : IntermediateTuple | ||
43 | { | ||
44 | public WixBundleRelatedPackageTuple() : base(TupleDefinitions.WixBundleRelatedPackage, null, null) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public WixBundleRelatedPackageTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleRelatedPackage, sourceLineNumber, id) | ||
49 | { | ||
50 | } | ||
51 | |||
52 | public IntermediateField this[WixBundleRelatedPackageTupleFields index] => this.Fields[(int)index]; | ||
53 | |||
54 | public string WixBundlePackage_ | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.WixBundlePackage_]?.Value; | ||
57 | set => this.Set((int)WixBundleRelatedPackageTupleFields.WixBundlePackage_, value); | ||
58 | } | ||
59 | |||
60 | public string Id | ||
61 | { | ||
62 | get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Id]?.Value; | ||
63 | set => this.Set((int)WixBundleRelatedPackageTupleFields.Id, value); | ||
64 | } | ||
65 | |||
66 | public string MinVersion | ||
67 | { | ||
68 | get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinVersion]?.Value; | ||
69 | set => this.Set((int)WixBundleRelatedPackageTupleFields.MinVersion, value); | ||
70 | } | ||
71 | |||
72 | public string MaxVersion | ||
73 | { | ||
74 | get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxVersion]?.Value; | ||
75 | set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxVersion, value); | ||
76 | } | ||
77 | |||
78 | public string Languages | ||
79 | { | ||
80 | get => (string)this.Fields[(int)WixBundleRelatedPackageTupleFields.Languages]?.Value; | ||
81 | set => this.Set((int)WixBundleRelatedPackageTupleFields.Languages, value); | ||
82 | } | ||
83 | |||
84 | public int MinInclusive | ||
85 | { | ||
86 | get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MinInclusive]?.Value; | ||
87 | set => this.Set((int)WixBundleRelatedPackageTupleFields.MinInclusive, value); | ||
88 | } | ||
89 | |||
90 | public int MaxInclusive | ||
91 | { | ||
92 | get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.MaxInclusive]?.Value; | ||
93 | set => this.Set((int)WixBundleRelatedPackageTupleFields.MaxInclusive, value); | ||
94 | } | ||
95 | |||
96 | public int LangInclusive | ||
97 | { | ||
98 | get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.LangInclusive]?.Value; | ||
99 | set => this.Set((int)WixBundleRelatedPackageTupleFields.LangInclusive, value); | ||
100 | } | ||
101 | |||
102 | public int OnlyDetect | ||
103 | { | ||
104 | get => (int)this.Fields[(int)WixBundleRelatedPackageTupleFields.OnlyDetect]?.Value; | ||
105 | set => this.Set((int)WixBundleRelatedPackageTupleFields.OnlyDetect, value); | ||
106 | } | ||
107 | } | ||
108 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs new file mode 100644 index 00000000..d08f0eb9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleRollbackBoundary = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleRollbackBoundary, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.WixChainItem_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Vital), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleRollbackBoundaryTupleFields.Transaction), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(WixBundleRollbackBoundaryTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixBundleRollbackBoundaryTupleFields | ||
24 | { | ||
25 | WixChainItem_, | ||
26 | Vital, | ||
27 | Transaction, | ||
28 | } | ||
29 | |||
30 | public class WixBundleRollbackBoundaryTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixBundleRollbackBoundaryTuple() : base(TupleDefinitions.WixBundleRollbackBoundary, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixBundleRollbackBoundaryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleRollbackBoundary, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixBundleRollbackBoundaryTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixChainItem_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.WixChainItem_]?.Value; | ||
45 | set => this.Set((int)WixBundleRollbackBoundaryTupleFields.WixChainItem_, value); | ||
46 | } | ||
47 | |||
48 | public bool? Vital | ||
49 | { | ||
50 | get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Vital]?.Value; | ||
51 | set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Vital, value); | ||
52 | } | ||
53 | |||
54 | public bool? Transaction | ||
55 | { | ||
56 | get => (bool?)this.Fields[(int)WixBundleRollbackBoundaryTupleFields.Transaction]?.Value; | ||
57 | set => this.Set((int)WixBundleRollbackBoundaryTupleFields.Transaction, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs new file mode 100644 index 00000000..c0ab124d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleSlipstreamMsp = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleSlipstreamMsp, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackage_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixBundleSlipstreamMspTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixBundleSlipstreamMspTupleFields | ||
23 | { | ||
24 | WixBundlePackage_, | ||
25 | WixBundlePackage_Msp, | ||
26 | } | ||
27 | |||
28 | public class WixBundleSlipstreamMspTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixBundleSlipstreamMspTuple() : base(TupleDefinitions.WixBundleSlipstreamMsp, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixBundleSlipstreamMspTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleSlipstreamMsp, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixBundleSlipstreamMspTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string WixBundlePackage_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_]?.Value; | ||
43 | set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_, value); | ||
44 | } | ||
45 | |||
46 | public string WixBundlePackage_Msp | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp]?.Value; | ||
49 | set => this.Set((int)WixBundleSlipstreamMspTupleFields.WixBundlePackage_Msp, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleTuple.cs b/src/WixToolset.Data/Tuples/WixBundleTuple.cs new file mode 100644 index 00000000..4647347b --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleTuple.cs | |||
@@ -0,0 +1,220 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundle = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundle, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Version), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Copyright), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Name), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.AboutUrl), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableModify), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRemove), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.DisableRepair), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpTelephone), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.HelpUrl), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Manufacturer), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpdateUrl), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Compressed), IntermediateFieldType.Number), | ||
25 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.LogPrefixAndExtension), IntermediateFieldType.String), | ||
26 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.IconSourceFile), IntermediateFieldType.Path), | ||
27 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.SplashScreenSourceFile), IntermediateFieldType.Path), | ||
28 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Condition), IntermediateFieldType.String), | ||
29 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Tag), IntermediateFieldType.String), | ||
30 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.Platform), IntermediateFieldType.String), | ||
31 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ParentName), IntermediateFieldType.String), | ||
32 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.UpgradeCode), IntermediateFieldType.String), | ||
33 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.BundleId), IntermediateFieldType.String), | ||
34 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.ProviderKey), IntermediateFieldType.String), | ||
35 | new IntermediateFieldDefinition(nameof(WixBundleTupleFields.PerMachine), IntermediateFieldType.Number), | ||
36 | }, | ||
37 | typeof(WixBundleTuple)); | ||
38 | } | ||
39 | } | ||
40 | |||
41 | namespace WixToolset.Data.Tuples | ||
42 | { | ||
43 | public enum WixBundleTupleFields | ||
44 | { | ||
45 | Version, | ||
46 | Copyright, | ||
47 | Name, | ||
48 | AboutUrl, | ||
49 | DisableModify, | ||
50 | DisableRemove, | ||
51 | DisableRepair, | ||
52 | HelpTelephone, | ||
53 | HelpUrl, | ||
54 | Manufacturer, | ||
55 | UpdateUrl, | ||
56 | Compressed, | ||
57 | LogPrefixAndExtension, | ||
58 | IconSourceFile, | ||
59 | SplashScreenSourceFile, | ||
60 | Condition, | ||
61 | Tag, | ||
62 | Platform, | ||
63 | ParentName, | ||
64 | UpgradeCode, | ||
65 | BundleId, | ||
66 | ProviderKey, | ||
67 | PerMachine, | ||
68 | } | ||
69 | |||
70 | public class WixBundleTuple : IntermediateTuple | ||
71 | { | ||
72 | public WixBundleTuple() : base(TupleDefinitions.WixBundle, null, null) | ||
73 | { | ||
74 | } | ||
75 | |||
76 | public WixBundleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundle, sourceLineNumber, id) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | public IntermediateField this[WixBundleTupleFields index] => this.Fields[(int)index]; | ||
81 | |||
82 | public string Version | ||
83 | { | ||
84 | get => (string)this.Fields[(int)WixBundleTupleFields.Version]?.Value; | ||
85 | set => this.Set((int)WixBundleTupleFields.Version, value); | ||
86 | } | ||
87 | |||
88 | public string Copyright | ||
89 | { | ||
90 | get => (string)this.Fields[(int)WixBundleTupleFields.Copyright]?.Value; | ||
91 | set => this.Set((int)WixBundleTupleFields.Copyright, value); | ||
92 | } | ||
93 | |||
94 | public string Name | ||
95 | { | ||
96 | get => (string)this.Fields[(int)WixBundleTupleFields.Name]?.Value; | ||
97 | set => this.Set((int)WixBundleTupleFields.Name, value); | ||
98 | } | ||
99 | |||
100 | public string AboutUrl | ||
101 | { | ||
102 | get => (string)this.Fields[(int)WixBundleTupleFields.AboutUrl]?.Value; | ||
103 | set => this.Set((int)WixBundleTupleFields.AboutUrl, value); | ||
104 | } | ||
105 | |||
106 | public int DisableModify | ||
107 | { | ||
108 | get => (int)this.Fields[(int)WixBundleTupleFields.DisableModify]?.Value; | ||
109 | set => this.Set((int)WixBundleTupleFields.DisableModify, value); | ||
110 | } | ||
111 | |||
112 | public int DisableRemove | ||
113 | { | ||
114 | get => (int)this.Fields[(int)WixBundleTupleFields.DisableRemove]?.Value; | ||
115 | set => this.Set((int)WixBundleTupleFields.DisableRemove, value); | ||
116 | } | ||
117 | |||
118 | public int DisableRepair | ||
119 | { | ||
120 | get => (int)this.Fields[(int)WixBundleTupleFields.DisableRepair]?.Value; | ||
121 | set => this.Set((int)WixBundleTupleFields.DisableRepair, value); | ||
122 | } | ||
123 | |||
124 | public string HelpTelephone | ||
125 | { | ||
126 | get => (string)this.Fields[(int)WixBundleTupleFields.HelpTelephone]?.Value; | ||
127 | set => this.Set((int)WixBundleTupleFields.HelpTelephone, value); | ||
128 | } | ||
129 | |||
130 | public string HelpUrl | ||
131 | { | ||
132 | get => (string)this.Fields[(int)WixBundleTupleFields.HelpUrl]?.Value; | ||
133 | set => this.Set((int)WixBundleTupleFields.HelpUrl, value); | ||
134 | } | ||
135 | |||
136 | public string Manufacturer | ||
137 | { | ||
138 | get => (string)this.Fields[(int)WixBundleTupleFields.Manufacturer]?.Value; | ||
139 | set => this.Set((int)WixBundleTupleFields.Manufacturer, value); | ||
140 | } | ||
141 | |||
142 | public string UpdateUrl | ||
143 | { | ||
144 | get => (string)this.Fields[(int)WixBundleTupleFields.UpdateUrl]?.Value; | ||
145 | set => this.Set((int)WixBundleTupleFields.UpdateUrl, value); | ||
146 | } | ||
147 | |||
148 | public int Compressed | ||
149 | { | ||
150 | get => (int)this.Fields[(int)WixBundleTupleFields.Compressed]?.Value; | ||
151 | set => this.Set((int)WixBundleTupleFields.Compressed, value); | ||
152 | } | ||
153 | |||
154 | public string LogPrefixAndExtension | ||
155 | { | ||
156 | get => (string)this.Fields[(int)WixBundleTupleFields.LogPrefixAndExtension]?.Value; | ||
157 | set => this.Set((int)WixBundleTupleFields.LogPrefixAndExtension, value); | ||
158 | } | ||
159 | |||
160 | public string IconSourceFile | ||
161 | { | ||
162 | get => (string)this.Fields[(int)WixBundleTupleFields.IconSourceFile]?.Value; | ||
163 | set => this.Set((int)WixBundleTupleFields.IconSourceFile, value); | ||
164 | } | ||
165 | |||
166 | public string SplashScreenSourceFile | ||
167 | { | ||
168 | get => (string)this.Fields[(int)WixBundleTupleFields.SplashScreenSourceFile]?.Value; | ||
169 | set => this.Set((int)WixBundleTupleFields.SplashScreenSourceFile, value); | ||
170 | } | ||
171 | |||
172 | public string Condition | ||
173 | { | ||
174 | get => (string)this.Fields[(int)WixBundleTupleFields.Condition]?.Value; | ||
175 | set => this.Set((int)WixBundleTupleFields.Condition, value); | ||
176 | } | ||
177 | |||
178 | public string Tag | ||
179 | { | ||
180 | get => (string)this.Fields[(int)WixBundleTupleFields.Tag]?.Value; | ||
181 | set => this.Set((int)WixBundleTupleFields.Tag, value); | ||
182 | } | ||
183 | |||
184 | public string Platform | ||
185 | { | ||
186 | get => (string)this.Fields[(int)WixBundleTupleFields.Platform]?.Value; | ||
187 | set => this.Set((int)WixBundleTupleFields.Platform, value); | ||
188 | } | ||
189 | |||
190 | public string ParentName | ||
191 | { | ||
192 | get => (string)this.Fields[(int)WixBundleTupleFields.ParentName]?.Value; | ||
193 | set => this.Set((int)WixBundleTupleFields.ParentName, value); | ||
194 | } | ||
195 | |||
196 | public string UpgradeCode | ||
197 | { | ||
198 | get => (string)this.Fields[(int)WixBundleTupleFields.UpgradeCode]?.Value; | ||
199 | set => this.Set((int)WixBundleTupleFields.UpgradeCode, value); | ||
200 | } | ||
201 | |||
202 | public string BundleId | ||
203 | { | ||
204 | get => (string)this.Fields[(int)WixBundleTupleFields.BundleId]?.Value; | ||
205 | set => this.Set((int)WixBundleTupleFields.BundleId, value); | ||
206 | } | ||
207 | |||
208 | public string ProviderKey | ||
209 | { | ||
210 | get => (string)this.Fields[(int)WixBundleTupleFields.ProviderKey]?.Value; | ||
211 | set => this.Set((int)WixBundleTupleFields.ProviderKey, value); | ||
212 | } | ||
213 | |||
214 | public int PerMachine | ||
215 | { | ||
216 | get => (int)this.Fields[(int)WixBundleTupleFields.PerMachine]?.Value; | ||
217 | set => this.Set((int)WixBundleTupleFields.PerMachine, value); | ||
218 | } | ||
219 | } | ||
220 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs new file mode 100644 index 00000000..2398b1da --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleUpdate = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleUpdate, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleUpdateTupleFields.Location), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleUpdateTupleFields.Attributes), IntermediateFieldType.Number), | ||
15 | }, | ||
16 | typeof(WixBundleUpdateTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixBundleUpdateTupleFields | ||
23 | { | ||
24 | Location, | ||
25 | Attributes, | ||
26 | } | ||
27 | |||
28 | public class WixBundleUpdateTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixBundleUpdateTuple() : base(TupleDefinitions.WixBundleUpdate, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixBundleUpdateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleUpdate,sourceLineNumber,id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixBundleUpdateTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Location | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixBundleUpdateTupleFields.Location]?.Value; | ||
43 | set => this.Set((int)WixBundleUpdateTupleFields.Location, value); | ||
44 | } | ||
45 | |||
46 | public int Attributes | ||
47 | { | ||
48 | get => (int)this.Fields[(int)WixBundleUpdateTupleFields.Attributes]?.Value; | ||
49 | set => this.Set((int)WixBundleUpdateTupleFields.Attributes, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs new file mode 100644 index 00000000..c5724e6c --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixBundleVariable = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixBundleVariable, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.WixBundleVariable), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Value), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Type), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Hidden), IntermediateFieldType.Bool), | ||
17 | new IntermediateFieldDefinition(nameof(WixBundleVariableTupleFields.Persisted), IntermediateFieldType.Bool), | ||
18 | }, | ||
19 | typeof(WixBundleVariableTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum WixBundleVariableTupleFields | ||
26 | { | ||
27 | WixBundleVariable, | ||
28 | Value, | ||
29 | Type, | ||
30 | Hidden, | ||
31 | Persisted, | ||
32 | } | ||
33 | |||
34 | public class WixBundleVariableTuple : IntermediateTuple | ||
35 | { | ||
36 | public WixBundleVariableTuple() : base(TupleDefinitions.WixBundleVariable, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public WixBundleVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleVariable, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[WixBundleVariableTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string WixBundleVariable | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixBundleVariableTupleFields.WixBundleVariable]?.Value; | ||
49 | set => this.Set((int)WixBundleVariableTupleFields.WixBundleVariable, value); | ||
50 | } | ||
51 | |||
52 | public string Value | ||
53 | { | ||
54 | get => (string)this.Fields[(int)WixBundleVariableTupleFields.Value]?.Value; | ||
55 | set => this.Set((int)WixBundleVariableTupleFields.Value, value); | ||
56 | } | ||
57 | |||
58 | public string Type | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixBundleVariableTupleFields.Type]?.Value; | ||
61 | set => this.Set((int)WixBundleVariableTupleFields.Type, value); | ||
62 | } | ||
63 | |||
64 | public bool Hidden | ||
65 | { | ||
66 | get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Hidden]?.Value; | ||
67 | set => this.Set((int)WixBundleVariableTupleFields.Hidden, value); | ||
68 | } | ||
69 | |||
70 | public bool Persisted | ||
71 | { | ||
72 | get => (bool)this.Fields[(int)WixBundleVariableTupleFields.Persisted]?.Value; | ||
73 | set => this.Set((int)WixBundleVariableTupleFields.Persisted, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixChainItemTuple.cs b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs new file mode 100644 index 00000000..c77bd038 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixChainItemTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixChainItem = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixChainItem, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixChainItemTupleFields.Id), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixChainItemTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixChainItemTupleFields | ||
22 | { | ||
23 | Id, | ||
24 | } | ||
25 | |||
26 | public class WixChainItemTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixChainItemTuple() : base(TupleDefinitions.WixChainItem, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixChainItemTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixChainItem, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixChainItemTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string Id | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixChainItemTupleFields.Id]?.Value; | ||
41 | set => this.Set((int)WixChainItemTupleFields.Id, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixChainTuple.cs b/src/WixToolset.Data/Tuples/WixChainTuple.cs new file mode 100644 index 00000000..d3ae2f4a --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixChainTuple.cs | |||
@@ -0,0 +1,55 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixChain = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixChain, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixChainTupleFields.Attributes), IntermediateFieldType.Number), | ||
14 | }, | ||
15 | typeof(WixChainTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | using System; | ||
22 | |||
23 | public enum WixChainTupleFields | ||
24 | { | ||
25 | Attributes, | ||
26 | } | ||
27 | |||
28 | [Flags] | ||
29 | public enum WixChainAttributes | ||
30 | { | ||
31 | None = 0x0, | ||
32 | DisableRollback = 0x1, | ||
33 | DisableSystemRestore = 0x2, | ||
34 | ParallelCache = 0x4, | ||
35 | } | ||
36 | |||
37 | public class WixChainTuple : IntermediateTuple | ||
38 | { | ||
39 | public WixChainTuple() : base(TupleDefinitions.WixChain, null, null) | ||
40 | { | ||
41 | } | ||
42 | |||
43 | public WixChainTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixChain, sourceLineNumber, id) | ||
44 | { | ||
45 | } | ||
46 | |||
47 | public IntermediateField this[WixChainTupleFields index] => this.Fields[(int)index]; | ||
48 | |||
49 | public WixChainAttributes Attributes | ||
50 | { | ||
51 | get => (WixChainAttributes)(int)this.Fields[(int)WixChainTupleFields.Attributes]?.Value; | ||
52 | set => this.Set((int)WixChainTupleFields.Attributes, (int)value); | ||
53 | } | ||
54 | } | ||
55 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs new file mode 100644 index 00000000..46de9aa9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs | |||
@@ -0,0 +1,86 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixComplexReference = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixComplexReference, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Parent), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ParentAttributes), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ParentLanguage), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Child), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.ChildAttributes), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixComplexReferenceTupleFields.Attributes), IntermediateFieldType.Bool), | ||
19 | }, | ||
20 | typeof(WixComplexReferenceTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | using System; | ||
27 | |||
28 | public enum WixComplexReferenceTupleFields | ||
29 | { | ||
30 | Parent, | ||
31 | ParentAttributes, | ||
32 | ParentLanguage, | ||
33 | Child, | ||
34 | ChildAttributes, | ||
35 | Attributes, | ||
36 | } | ||
37 | |||
38 | public class WixComplexReferenceTuple : IntermediateTuple | ||
39 | { | ||
40 | public WixComplexReferenceTuple() : base(TupleDefinitions.WixComplexReference, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public WixComplexReferenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComplexReference, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[WixComplexReferenceTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string Parent | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Parent]?.Value; | ||
53 | set => this.Set((int)WixComplexReferenceTupleFields.Parent, value); | ||
54 | } | ||
55 | |||
56 | public ComplexReferenceParentType ParentType | ||
57 | { | ||
58 | get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentAttributes]?.Value, true); | ||
59 | set => this.Set((int)WixComplexReferenceTupleFields.ParentAttributes, value.ToString()); | ||
60 | } | ||
61 | |||
62 | public string ParentLanguage | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixComplexReferenceTupleFields.ParentLanguage]?.Value; | ||
65 | set => this.Set((int)WixComplexReferenceTupleFields.ParentLanguage, value); | ||
66 | } | ||
67 | |||
68 | public string Child | ||
69 | { | ||
70 | get => (string)this.Fields[(int)WixComplexReferenceTupleFields.Child]?.Value; | ||
71 | set => this.Set((int)WixComplexReferenceTupleFields.Child, value); | ||
72 | } | ||
73 | |||
74 | public ComplexReferenceChildType ChildType | ||
75 | { | ||
76 | get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixComplexReferenceTupleFields.ChildAttributes]?.Value, true); | ||
77 | set => this.Set((int)WixComplexReferenceTupleFields.ChildAttributes, value.ToString()); | ||
78 | } | ||
79 | |||
80 | public bool IsPrimary | ||
81 | { | ||
82 | get => (bool)this.Fields[(int)WixComplexReferenceTupleFields.Attributes]?.Value; | ||
83 | set => this.Set((int)WixComplexReferenceTupleFields.Attributes, value); | ||
84 | } | ||
85 | } | ||
86 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs new file mode 100644 index 00000000..f4118277 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixComponentGroup = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixComponentGroup, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixComponentGroupTupleFields.WixComponentGroup), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixComponentGroupTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixComponentGroupTupleFields | ||
22 | { | ||
23 | WixComponentGroup, | ||
24 | } | ||
25 | |||
26 | public class WixComponentGroupTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixComponentGroupTuple() : base(TupleDefinitions.WixComponentGroup, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixComponentGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComponentGroup, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixComponentGroupTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixComponentGroup | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixComponentGroupTupleFields.WixComponentGroup]?.Value; | ||
41 | set => this.Set((int)WixComponentGroupTupleFields.WixComponentGroup, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs new file mode 100644 index 00000000..7aad13d2 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixComponentSearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixComponentSearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.WixSearch_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Guid), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.ProductCode), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixComponentSearchTupleFields.Attributes), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(WixComponentSearchTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixComponentSearchTupleFields | ||
25 | { | ||
26 | WixSearch_, | ||
27 | Guid, | ||
28 | ProductCode, | ||
29 | Attributes, | ||
30 | } | ||
31 | |||
32 | public class WixComponentSearchTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixComponentSearchTuple() : base(TupleDefinitions.WixComponentSearch, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixComponentSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixComponentSearch, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixComponentSearchTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string WixSearch_ | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixComponentSearchTupleFields.WixSearch_]?.Value; | ||
47 | set => this.Set((int)WixComponentSearchTupleFields.WixSearch_, value); | ||
48 | } | ||
49 | |||
50 | public string Guid | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixComponentSearchTupleFields.Guid]?.Value; | ||
53 | set => this.Set((int)WixComponentSearchTupleFields.Guid, value); | ||
54 | } | ||
55 | |||
56 | public string ProductCode | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixComponentSearchTupleFields.ProductCode]?.Value; | ||
59 | set => this.Set((int)WixComponentSearchTupleFields.ProductCode, value); | ||
60 | } | ||
61 | |||
62 | public int Attributes | ||
63 | { | ||
64 | get => (int)this.Fields[(int)WixComponentSearchTupleFields.Attributes]?.Value; | ||
65 | set => this.Set((int)WixComponentSearchTupleFields.Attributes, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixControlTuple.cs b/src/WixToolset.Data/Tuples/WixControlTuple.cs new file mode 100644 index 00000000..c86490fb --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixControlTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixControl = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixControl, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixControlTupleFields.Dialog_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixControlTupleFields.Control_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixControlTupleFields.SourceFile), IntermediateFieldType.Path), | ||
16 | }, | ||
17 | typeof(WixControlTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixControlTupleFields | ||
24 | { | ||
25 | Dialog_, | ||
26 | Control_, | ||
27 | SourceFile, | ||
28 | } | ||
29 | |||
30 | public class WixControlTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixControlTuple() : base(TupleDefinitions.WixControl, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixControlTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixControl, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixControlTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Dialog_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixControlTupleFields.Dialog_]?.Value; | ||
45 | set => this.Set((int)WixControlTupleFields.Dialog_, value); | ||
46 | } | ||
47 | |||
48 | public string Control_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixControlTupleFields.Control_]?.Value; | ||
51 | set => this.Set((int)WixControlTupleFields.Control_, value); | ||
52 | } | ||
53 | |||
54 | public string SourceFile | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixControlTupleFields.SourceFile]?.Value; | ||
57 | set => this.Set((int)WixControlTupleFields.SourceFile, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs new file mode 100644 index 00000000..c7ab0b0b --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixCustomRowTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixCustomRow = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixCustomRow, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixCustomRowTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixCustomRowTupleFields.FieldData), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixCustomRowTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixCustomRowTupleFields | ||
23 | { | ||
24 | Table, | ||
25 | FieldData, | ||
26 | } | ||
27 | |||
28 | public class WixCustomRowTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixCustomRowTuple() : base(TupleDefinitions.WixCustomRow, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixCustomRowTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomRow, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixCustomRowTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Table | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixCustomRowTupleFields.Table]?.Value; | ||
43 | set => this.Set((int)WixCustomRowTupleFields.Table, value); | ||
44 | } | ||
45 | |||
46 | public string FieldData | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixCustomRowTupleFields.FieldData]?.Value; | ||
49 | set => this.Set((int)WixCustomRowTupleFields.FieldData, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs new file mode 100644 index 00000000..58266aff --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixCustomTableTuple.cs | |||
@@ -0,0 +1,148 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixCustomTable = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixCustomTable, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnCount), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnNames), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.ColumnTypes), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.PrimaryKeys), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.MinValues), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.MaxValues), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.KeyTables), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.KeyColumns), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Categories), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Sets), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Descriptions), IntermediateFieldType.String), | ||
25 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.Modularizations), IntermediateFieldType.String), | ||
26 | new IntermediateFieldDefinition(nameof(WixCustomTableTupleFields.BootstrapperApplicationData), IntermediateFieldType.Number), | ||
27 | }, | ||
28 | typeof(WixCustomTableTuple)); | ||
29 | } | ||
30 | } | ||
31 | |||
32 | namespace WixToolset.Data.Tuples | ||
33 | { | ||
34 | public enum WixCustomTableTupleFields | ||
35 | { | ||
36 | Table, | ||
37 | ColumnCount, | ||
38 | ColumnNames, | ||
39 | ColumnTypes, | ||
40 | PrimaryKeys, | ||
41 | MinValues, | ||
42 | MaxValues, | ||
43 | KeyTables, | ||
44 | KeyColumns, | ||
45 | Categories, | ||
46 | Sets, | ||
47 | Descriptions, | ||
48 | Modularizations, | ||
49 | BootstrapperApplicationData, | ||
50 | } | ||
51 | |||
52 | public class WixCustomTableTuple : IntermediateTuple | ||
53 | { | ||
54 | public WixCustomTableTuple() : base(TupleDefinitions.WixCustomTable, null, null) | ||
55 | { | ||
56 | } | ||
57 | |||
58 | public WixCustomTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTable, sourceLineNumber, id) | ||
59 | { | ||
60 | } | ||
61 | |||
62 | public IntermediateField this[WixCustomTableTupleFields index] => this.Fields[(int)index]; | ||
63 | |||
64 | public string Table | ||
65 | { | ||
66 | get => (string)this.Fields[(int)WixCustomTableTupleFields.Table]?.Value; | ||
67 | set => this.Set((int)WixCustomTableTupleFields.Table, value); | ||
68 | } | ||
69 | |||
70 | public int ColumnCount | ||
71 | { | ||
72 | get => (int)this.Fields[(int)WixCustomTableTupleFields.ColumnCount]?.Value; | ||
73 | set => this.Set((int)WixCustomTableTupleFields.ColumnCount, value); | ||
74 | } | ||
75 | |||
76 | public string ColumnNames | ||
77 | { | ||
78 | get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnNames]?.Value; | ||
79 | set => this.Set((int)WixCustomTableTupleFields.ColumnNames, value); | ||
80 | } | ||
81 | |||
82 | public string ColumnTypes | ||
83 | { | ||
84 | get => (string)this.Fields[(int)WixCustomTableTupleFields.ColumnTypes]?.Value; | ||
85 | set => this.Set((int)WixCustomTableTupleFields.ColumnTypes, value); | ||
86 | } | ||
87 | |||
88 | public string PrimaryKeys | ||
89 | { | ||
90 | get => (string)this.Fields[(int)WixCustomTableTupleFields.PrimaryKeys]?.Value; | ||
91 | set => this.Set((int)WixCustomTableTupleFields.PrimaryKeys, value); | ||
92 | } | ||
93 | |||
94 | public string MinValues | ||
95 | { | ||
96 | get => (string)this.Fields[(int)WixCustomTableTupleFields.MinValues]?.Value; | ||
97 | set => this.Set((int)WixCustomTableTupleFields.MinValues, value); | ||
98 | } | ||
99 | |||
100 | public string MaxValues | ||
101 | { | ||
102 | get => (string)this.Fields[(int)WixCustomTableTupleFields.MaxValues]?.Value; | ||
103 | set => this.Set((int)WixCustomTableTupleFields.MaxValues, value); | ||
104 | } | ||
105 | |||
106 | public string KeyTables | ||
107 | { | ||
108 | get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyTables]?.Value; | ||
109 | set => this.Set((int)WixCustomTableTupleFields.KeyTables, value); | ||
110 | } | ||
111 | |||
112 | public string KeyColumns | ||
113 | { | ||
114 | get => (string)this.Fields[(int)WixCustomTableTupleFields.KeyColumns]?.Value; | ||
115 | set => this.Set((int)WixCustomTableTupleFields.KeyColumns, value); | ||
116 | } | ||
117 | |||
118 | public string Categories | ||
119 | { | ||
120 | get => (string)this.Fields[(int)WixCustomTableTupleFields.Categories]?.Value; | ||
121 | set => this.Set((int)WixCustomTableTupleFields.Categories, value); | ||
122 | } | ||
123 | |||
124 | public string Sets | ||
125 | { | ||
126 | get => (string)this.Fields[(int)WixCustomTableTupleFields.Sets]?.Value; | ||
127 | set => this.Set((int)WixCustomTableTupleFields.Sets, value); | ||
128 | } | ||
129 | |||
130 | public string Descriptions | ||
131 | { | ||
132 | get => (string)this.Fields[(int)WixCustomTableTupleFields.Descriptions]?.Value; | ||
133 | set => this.Set((int)WixCustomTableTupleFields.Descriptions, value); | ||
134 | } | ||
135 | |||
136 | public string Modularizations | ||
137 | { | ||
138 | get => (string)this.Fields[(int)WixCustomTableTupleFields.Modularizations]?.Value; | ||
139 | set => this.Set((int)WixCustomTableTupleFields.Modularizations, value); | ||
140 | } | ||
141 | |||
142 | public int BootstrapperApplicationData | ||
143 | { | ||
144 | get => (int)this.Fields[(int)WixCustomTableTupleFields.BootstrapperApplicationData]?.Value; | ||
145 | set => this.Set((int)WixCustomTableTupleFields.BootstrapperApplicationData, value); | ||
146 | } | ||
147 | } | ||
148 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs new file mode 100644 index 00000000..68f327f4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs | |||
@@ -0,0 +1,84 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixDeltaPatchFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixDeltaPatchFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainLengths), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreOffsets), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.IgnoreLengths), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.RetainOffsets), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixDeltaPatchFileTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
19 | }, | ||
20 | typeof(WixDeltaPatchFileTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | public enum WixDeltaPatchFileTupleFields | ||
27 | { | ||
28 | File_, | ||
29 | RetainLengths, | ||
30 | IgnoreOffsets, | ||
31 | IgnoreLengths, | ||
32 | RetainOffsets, | ||
33 | SymbolPaths, | ||
34 | } | ||
35 | |||
36 | public class WixDeltaPatchFileTuple : IntermediateTuple | ||
37 | { | ||
38 | public WixDeltaPatchFileTuple() : base(TupleDefinitions.WixDeltaPatchFile, null, null) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public WixDeltaPatchFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchFile, sourceLineNumber, id) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public IntermediateField this[WixDeltaPatchFileTupleFields index] => this.Fields[(int)index]; | ||
47 | |||
48 | public string File_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.File_]?.Value; | ||
51 | set => this.Set((int)WixDeltaPatchFileTupleFields.File_, value); | ||
52 | } | ||
53 | |||
54 | public string RetainLengths | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainLengths]?.Value; | ||
57 | set => this.Set((int)WixDeltaPatchFileTupleFields.RetainLengths, value); | ||
58 | } | ||
59 | |||
60 | public string IgnoreOffsets | ||
61 | { | ||
62 | get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreOffsets]?.Value; | ||
63 | set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreOffsets, value); | ||
64 | } | ||
65 | |||
66 | public string IgnoreLengths | ||
67 | { | ||
68 | get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.IgnoreLengths]?.Value; | ||
69 | set => this.Set((int)WixDeltaPatchFileTupleFields.IgnoreLengths, value); | ||
70 | } | ||
71 | |||
72 | public string RetainOffsets | ||
73 | { | ||
74 | get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.RetainOffsets]?.Value; | ||
75 | set => this.Set((int)WixDeltaPatchFileTupleFields.RetainOffsets, value); | ||
76 | } | ||
77 | |||
78 | public string SymbolPaths | ||
79 | { | ||
80 | get => (string)this.Fields[(int)WixDeltaPatchFileTupleFields.SymbolPaths]?.Value; | ||
81 | set => this.Set((int)WixDeltaPatchFileTupleFields.SymbolPaths, value); | ||
82 | } | ||
83 | } | ||
84 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs new file mode 100644 index 00000000..39747be5 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs | |||
@@ -0,0 +1,75 @@ | |||
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 | using System; | ||
4 | |||
5 | namespace WixToolset.Data | ||
6 | { | ||
7 | using WixToolset.Data.Tuples; | ||
8 | |||
9 | public static partial class TupleDefinitions | ||
10 | { | ||
11 | public static readonly IntermediateTupleDefinition WixDeltaPatchSymbolPaths = new IntermediateTupleDefinition( | ||
12 | TupleDefinitionType.WixDeltaPatchSymbolPaths, | ||
13 | new[] | ||
14 | { | ||
15 | new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.Id), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.Type), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixDeltaPatchSymbolPathsTupleFields.SymbolPaths), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(WixDeltaPatchSymbolPathsTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum WixDeltaPatchSymbolPathsTupleFields | ||
26 | { | ||
27 | Id, | ||
28 | Type, | ||
29 | SymbolPaths, | ||
30 | } | ||
31 | |||
32 | /// <summary> | ||
33 | /// The types that the WixDeltaPatchSymbolPaths table can hold. | ||
34 | /// </summary> | ||
35 | /// <remarks>The order of these values is important since WixDeltaPatchSymbolPaths are sorted by this type.</remarks> | ||
36 | public enum SymbolPathType | ||
37 | { | ||
38 | File, | ||
39 | Component, | ||
40 | Directory, | ||
41 | Media, | ||
42 | Product | ||
43 | }; | ||
44 | |||
45 | public class WixDeltaPatchSymbolPathsTuple : IntermediateTuple | ||
46 | { | ||
47 | public WixDeltaPatchSymbolPathsTuple() : base(TupleDefinitions.WixDeltaPatchSymbolPaths, null, null) | ||
48 | { | ||
49 | } | ||
50 | |||
51 | public WixDeltaPatchSymbolPathsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDeltaPatchSymbolPaths, sourceLineNumber, id) | ||
52 | { | ||
53 | } | ||
54 | |||
55 | public IntermediateField this[WixDeltaPatchSymbolPathsTupleFields index] => this.Fields[(int)index]; | ||
56 | |||
57 | public string Id | ||
58 | { | ||
59 | get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Id]?.Value; | ||
60 | set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Id, value); | ||
61 | } | ||
62 | |||
63 | public SymbolPathType Type | ||
64 | { | ||
65 | get => (SymbolPathType)Enum.Parse(typeof(SymbolPathType), (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.Type]?.Value, true); | ||
66 | set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.Type, value.ToString()); | ||
67 | } | ||
68 | |||
69 | public string SymbolPaths | ||
70 | { | ||
71 | get => (string)this.Fields[(int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths]?.Value; | ||
72 | set => this.Set((int)WixDeltaPatchSymbolPathsTupleFields.SymbolPaths, value); | ||
73 | } | ||
74 | } | ||
75 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs b/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs new file mode 100644 index 00000000..ce706dc4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixDirectoryTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixDirectory = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixDirectory, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixDirectoryTupleFields.Directory_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixDirectoryTupleFields.ComponentGuidGenerationSeed), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixDirectoryTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixDirectoryTupleFields | ||
23 | { | ||
24 | Directory_, | ||
25 | ComponentGuidGenerationSeed, | ||
26 | } | ||
27 | |||
28 | public class WixDirectoryTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixDirectoryTuple() : base(TupleDefinitions.WixDirectory, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixDirectoryTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixDirectory, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixDirectoryTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Directory_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixDirectoryTupleFields.Directory_]?.Value; | ||
43 | set => this.Set((int)WixDirectoryTupleFields.Directory_, value); | ||
44 | } | ||
45 | |||
46 | public string ComponentGuidGenerationSeed | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixDirectoryTupleFields.ComponentGuidGenerationSeed]?.Value; | ||
49 | set => this.Set((int)WixDirectoryTupleFields.ComponentGuidGenerationSeed, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs new file mode 100644 index 00000000..cc80a5d9 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixEnsureTable = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixEnsureTable, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixEnsureTableTupleFields.Table), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixEnsureTableTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixEnsureTableTupleFields | ||
22 | { | ||
23 | Table, | ||
24 | } | ||
25 | |||
26 | public class WixEnsureTableTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixEnsureTableTuple() : base(TupleDefinitions.WixEnsureTable, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixEnsureTableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixEnsureTable, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixEnsureTableTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string Table | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixEnsureTableTupleFields.Table]?.Value; | ||
41 | set => this.Set((int)WixEnsureTableTupleFields.Table, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs new file mode 100644 index 00000000..20e88ce8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixFeatureGroup = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixFeatureGroup, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixFeatureGroupTupleFields.WixFeatureGroup), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixFeatureGroupTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixFeatureGroupTupleFields | ||
22 | { | ||
23 | WixFeatureGroup, | ||
24 | } | ||
25 | |||
26 | public class WixFeatureGroupTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixFeatureGroupTuple() : base(TupleDefinitions.WixFeatureGroup, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixFeatureGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFeatureGroup, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixFeatureGroupTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixFeatureGroup | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixFeatureGroupTupleFields.WixFeatureGroup]?.Value; | ||
41 | set => this.Set((int)WixFeatureGroupTupleFields.WixFeatureGroup, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs new file mode 100644 index 00000000..23524b1d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixFeatureModules = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixFeatureModules, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.Feature_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixFeatureModulesTupleFields.WixMerge_), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixFeatureModulesTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixFeatureModulesTupleFields | ||
23 | { | ||
24 | Feature_, | ||
25 | WixMerge_, | ||
26 | } | ||
27 | |||
28 | public class WixFeatureModulesTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixFeatureModulesTuple() : base(TupleDefinitions.WixFeatureModules, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixFeatureModulesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFeatureModules, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixFeatureModulesTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Feature_ | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixFeatureModulesTupleFields.Feature_]?.Value; | ||
43 | set => this.Set((int)WixFeatureModulesTupleFields.Feature_, value); | ||
44 | } | ||
45 | |||
46 | public string WixMerge_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixFeatureModulesTupleFields.WixMerge_]?.Value; | ||
49 | set => this.Set((int)WixFeatureModulesTupleFields.WixMerge_, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs new file mode 100644 index 00000000..62d19ec8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFileSearchTuple.cs | |||
@@ -0,0 +1,116 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixFileSearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixFileSearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.WixSearch_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Path), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinVersion), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxVersion), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinSize), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxSize), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MinDate), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.MaxDate), IntermediateFieldType.Number), | ||
21 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Languages), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(WixFileSearchTupleFields.Attributes), IntermediateFieldType.Number), | ||
23 | }, | ||
24 | typeof(WixFileSearchTuple)); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | namespace WixToolset.Data.Tuples | ||
29 | { | ||
30 | public enum WixFileSearchTupleFields | ||
31 | { | ||
32 | WixSearch_, | ||
33 | Path, | ||
34 | MinVersion, | ||
35 | MaxVersion, | ||
36 | MinSize, | ||
37 | MaxSize, | ||
38 | MinDate, | ||
39 | MaxDate, | ||
40 | Languages, | ||
41 | Attributes, | ||
42 | } | ||
43 | |||
44 | public class WixFileSearchTuple : IntermediateTuple | ||
45 | { | ||
46 | public WixFileSearchTuple() : base(TupleDefinitions.WixFileSearch, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public WixFileSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFileSearch, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[WixFileSearchTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string WixSearch_ | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixFileSearchTupleFields.WixSearch_]?.Value; | ||
59 | set => this.Set((int)WixFileSearchTupleFields.WixSearch_, value); | ||
60 | } | ||
61 | |||
62 | public string Path | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixFileSearchTupleFields.Path]?.Value; | ||
65 | set => this.Set((int)WixFileSearchTupleFields.Path, value); | ||
66 | } | ||
67 | |||
68 | public string MinVersion | ||
69 | { | ||
70 | get => (string)this.Fields[(int)WixFileSearchTupleFields.MinVersion]?.Value; | ||
71 | set => this.Set((int)WixFileSearchTupleFields.MinVersion, value); | ||
72 | } | ||
73 | |||
74 | public string MaxVersion | ||
75 | { | ||
76 | get => (string)this.Fields[(int)WixFileSearchTupleFields.MaxVersion]?.Value; | ||
77 | set => this.Set((int)WixFileSearchTupleFields.MaxVersion, value); | ||
78 | } | ||
79 | |||
80 | public int MinSize | ||
81 | { | ||
82 | get => (int)this.Fields[(int)WixFileSearchTupleFields.MinSize]?.Value; | ||
83 | set => this.Set((int)WixFileSearchTupleFields.MinSize, value); | ||
84 | } | ||
85 | |||
86 | public int MaxSize | ||
87 | { | ||
88 | get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxSize]?.Value; | ||
89 | set => this.Set((int)WixFileSearchTupleFields.MaxSize, value); | ||
90 | } | ||
91 | |||
92 | public int MinDate | ||
93 | { | ||
94 | get => (int)this.Fields[(int)WixFileSearchTupleFields.MinDate]?.Value; | ||
95 | set => this.Set((int)WixFileSearchTupleFields.MinDate, value); | ||
96 | } | ||
97 | |||
98 | public int MaxDate | ||
99 | { | ||
100 | get => (int)this.Fields[(int)WixFileSearchTupleFields.MaxDate]?.Value; | ||
101 | set => this.Set((int)WixFileSearchTupleFields.MaxDate, value); | ||
102 | } | ||
103 | |||
104 | public string Languages | ||
105 | { | ||
106 | get => (string)this.Fields[(int)WixFileSearchTupleFields.Languages]?.Value; | ||
107 | set => this.Set((int)WixFileSearchTupleFields.Languages, value); | ||
108 | } | ||
109 | |||
110 | public int Attributes | ||
111 | { | ||
112 | get => (int)this.Fields[(int)WixFileSearchTupleFields.Attributes]?.Value; | ||
113 | set => this.Set((int)WixFileSearchTupleFields.Attributes, value); | ||
114 | } | ||
115 | } | ||
116 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixFileTuple.cs b/src/WixToolset.Data/Tuples/WixFileTuple.cs new file mode 100644 index 00000000..5ffc5d7f --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFileTuple.cs | |||
@@ -0,0 +1,170 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixFile = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixFile, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyType), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyManifest), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyApplication), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.Directory_), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.DiskId), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.Source), IntermediateFieldType.Path), | ||
20 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.ProcessorArchitecture), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchGroup), IntermediateFieldType.Number), | ||
22 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.Attributes), IntermediateFieldType.Number), | ||
23 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchAttributes), IntermediateFieldType.Number), | ||
24 | new IntermediateFieldDefinition(nameof(WixFileTupleFields.DeltaPatchHeaderSource), IntermediateFieldType.String), | ||
25 | }, | ||
26 | typeof(WixFileTuple)); | ||
27 | } | ||
28 | } | ||
29 | |||
30 | namespace WixToolset.Data.Tuples | ||
31 | { | ||
32 | using System; | ||
33 | |||
34 | public enum WixFileTupleFields | ||
35 | { | ||
36 | File_, | ||
37 | AssemblyType, | ||
38 | File_AssemblyManifest, | ||
39 | File_AssemblyApplication, | ||
40 | Directory_, | ||
41 | DiskId, | ||
42 | Source, | ||
43 | ProcessorArchitecture, | ||
44 | PatchGroup, | ||
45 | Attributes, | ||
46 | PatchAttributes, | ||
47 | DeltaPatchHeaderSource, | ||
48 | } | ||
49 | |||
50 | /// <summary> | ||
51 | /// Every file row has an assembly type. | ||
52 | /// </summary> | ||
53 | public enum FileAssemblyType | ||
54 | { | ||
55 | /// <summary>File is not an assembly.</summary> | ||
56 | NotAnAssembly, | ||
57 | |||
58 | /// <summary>File is a Common Language Runtime Assembly.</summary> | ||
59 | DotNetAssembly, | ||
60 | |||
61 | /// <summary>File is Win32 SxS assembly.</summary> | ||
62 | Win32Assembly, | ||
63 | } | ||
64 | |||
65 | /// <summary> | ||
66 | /// PatchAttribute values | ||
67 | /// </summary> | ||
68 | [Flags] | ||
69 | public enum PatchAttributeType | ||
70 | { | ||
71 | None = 0, | ||
72 | |||
73 | /// <summary>Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images.</summary> | ||
74 | Ignore = 1, | ||
75 | |||
76 | /// <summary>Set if the entire file should be installed rather than creating a binary patch.</summary> | ||
77 | IncludeWholeFile = 2, | ||
78 | |||
79 | /// <summary>Set to indicate that the patch is non-vital.</summary> | ||
80 | AllowIgnoreOnError = 4, | ||
81 | |||
82 | /// <summary>Allowed bits.</summary> | ||
83 | Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError | ||
84 | } | ||
85 | |||
86 | public class WixFileTuple : IntermediateTuple | ||
87 | { | ||
88 | public WixFileTuple() : base(TupleDefinitions.WixFile, null, null) | ||
89 | { | ||
90 | } | ||
91 | |||
92 | public WixFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFile, sourceLineNumber, id) | ||
93 | { | ||
94 | } | ||
95 | |||
96 | public IntermediateField this[WixFileTupleFields index] => this.Fields[(int)index]; | ||
97 | |||
98 | public string File_ | ||
99 | { | ||
100 | get => (string)this.Fields[(int)WixFileTupleFields.File_]?.Value; | ||
101 | set => this.Set((int)WixFileTupleFields.File_, value); | ||
102 | } | ||
103 | |||
104 | public FileAssemblyType AssemblyType | ||
105 | { | ||
106 | get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]?.Value; | ||
107 | set => this.Set((int)WixFileTupleFields.AssemblyType, (int)value); | ||
108 | } | ||
109 | |||
110 | public string File_AssemblyManifest | ||
111 | { | ||
112 | get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyManifest]?.Value; | ||
113 | set => this.Set((int)WixFileTupleFields.File_AssemblyManifest, value); | ||
114 | } | ||
115 | |||
116 | public string File_AssemblyApplication | ||
117 | { | ||
118 | get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyApplication]?.Value; | ||
119 | set => this.Set((int)WixFileTupleFields.File_AssemblyApplication, value); | ||
120 | } | ||
121 | |||
122 | public string Directory_ | ||
123 | { | ||
124 | get => (string)this.Fields[(int)WixFileTupleFields.Directory_]?.Value; | ||
125 | set => this.Set((int)WixFileTupleFields.Directory_, value); | ||
126 | } | ||
127 | |||
128 | public int DiskId | ||
129 | { | ||
130 | get => (int)this.Fields[(int)WixFileTupleFields.DiskId]?.Value; | ||
131 | set => this.Set((int)WixFileTupleFields.DiskId, value); | ||
132 | } | ||
133 | |||
134 | public string Source | ||
135 | { | ||
136 | get => (string)this.Fields[(int)WixFileTupleFields.Source]?.Value; | ||
137 | set => this.Set((int)WixFileTupleFields.Source, value); | ||
138 | } | ||
139 | |||
140 | public string ProcessorArchitecture | ||
141 | { | ||
142 | get => (string)this.Fields[(int)WixFileTupleFields.ProcessorArchitecture]?.Value; | ||
143 | set => this.Set((int)WixFileTupleFields.ProcessorArchitecture, value); | ||
144 | } | ||
145 | |||
146 | public int PatchGroup | ||
147 | { | ||
148 | get => (int)this.Fields[(int)WixFileTupleFields.PatchGroup]?.Value; | ||
149 | set => this.Set((int)WixFileTupleFields.PatchGroup, value); | ||
150 | } | ||
151 | |||
152 | public int Attributes | ||
153 | { | ||
154 | get => (int)this.Fields[(int)WixFileTupleFields.Attributes]?.Value; | ||
155 | set => this.Set((int)WixFileTupleFields.Attributes, value); | ||
156 | } | ||
157 | |||
158 | public PatchAttributeType PatchAttributes | ||
159 | { | ||
160 | get => (PatchAttributeType)(int)this.Fields[(int)WixFileTupleFields.PatchAttributes]?.Value; | ||
161 | set => this.Set((int)WixFileTupleFields.PatchAttributes, (int)value); | ||
162 | } | ||
163 | |||
164 | public string DeltaPatchHeaderSource | ||
165 | { | ||
166 | get => (string)this.Fields[(int)WixFileTupleFields.DeltaPatchHeaderSource]?.Value; | ||
167 | set => this.Set((int)WixFileTupleFields.DeltaPatchHeaderSource, value); | ||
168 | } | ||
169 | } | ||
170 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixFragmentTuple.cs b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs new file mode 100644 index 00000000..a5a59962 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixFragmentTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixFragment = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixFragment, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixFragmentTupleFields.WixFragment), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixFragmentTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixFragmentTupleFields | ||
22 | { | ||
23 | WixFragment, | ||
24 | } | ||
25 | |||
26 | public class WixFragmentTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixFragmentTuple() : base(TupleDefinitions.WixFragment, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixFragmentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFragment, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixFragmentTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixFragment | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixFragmentTupleFields.WixFragment]?.Value; | ||
41 | set => this.Set((int)WixFragmentTupleFields.WixFragment, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixGroupTuple.cs b/src/WixToolset.Data/Tuples/WixGroupTuple.cs new file mode 100644 index 00000000..be6bf7a4 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixGroupTuple.cs | |||
@@ -0,0 +1,70 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixGroup = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixGroup, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ParentId), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ParentType), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ChildId), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixGroupTupleFields.ChildType), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(WixGroupTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | using System; | ||
25 | |||
26 | public enum WixGroupTupleFields | ||
27 | { | ||
28 | ParentId, | ||
29 | ParentType, | ||
30 | ChildId, | ||
31 | ChildType, | ||
32 | } | ||
33 | |||
34 | public class WixGroupTuple : IntermediateTuple | ||
35 | { | ||
36 | public WixGroupTuple() : base(TupleDefinitions.WixGroup, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public WixGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixGroup, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[WixGroupTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string ParentId | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixGroupTupleFields.ParentId]?.Value; | ||
49 | set => this.Set((int)WixGroupTupleFields.ParentId, value); | ||
50 | } | ||
51 | |||
52 | public ComplexReferenceParentType ParentType | ||
53 | { | ||
54 | get => (ComplexReferenceParentType)Enum.Parse(typeof(ComplexReferenceParentType), (string)this.Fields[(int)WixGroupTupleFields.ParentType]?.Value, true); | ||
55 | set => this.Set((int)WixGroupTupleFields.ParentType, value.ToString()); | ||
56 | } | ||
57 | |||
58 | public string ChildId | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixGroupTupleFields.ChildId]?.Value; | ||
61 | set => this.Set((int)WixGroupTupleFields.ChildId, value); | ||
62 | } | ||
63 | |||
64 | public ComplexReferenceChildType ChildType | ||
65 | { | ||
66 | get => (ComplexReferenceChildType)Enum.Parse(typeof(ComplexReferenceChildType), (string)this.Fields[(int)WixGroupTupleFields.ChildType]?.Value, true); | ||
67 | set => this.Set((int)WixGroupTupleFields.ChildType, value.ToString()); | ||
68 | } | ||
69 | } | ||
70 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs new file mode 100644 index 00000000..b2fd18ca --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixInstanceComponent = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixInstanceComponent, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixInstanceComponentTupleFields.Component_), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixInstanceComponentTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixInstanceComponentTupleFields | ||
22 | { | ||
23 | Component_, | ||
24 | } | ||
25 | |||
26 | public class WixInstanceComponentTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixInstanceComponentTuple() : base(TupleDefinitions.WixInstanceComponent, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixInstanceComponentTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixInstanceComponent, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixInstanceComponentTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string Component_ | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixInstanceComponentTupleFields.Component_]?.Value; | ||
41 | set => this.Set((int)WixInstanceComponentTupleFields.Component_, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs new file mode 100644 index 00000000..4f152ac6 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixInstanceTransforms = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixInstanceTransforms, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.Id), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.PropertyId), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductCode), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.ProductName), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixInstanceTransformsTupleFields.UpgradeCode), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(WixInstanceTransformsTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum WixInstanceTransformsTupleFields | ||
26 | { | ||
27 | Id, | ||
28 | PropertyId, | ||
29 | ProductCode, | ||
30 | ProductName, | ||
31 | UpgradeCode, | ||
32 | } | ||
33 | |||
34 | public class WixInstanceTransformsTuple : IntermediateTuple | ||
35 | { | ||
36 | public WixInstanceTransformsTuple() : base(TupleDefinitions.WixInstanceTransforms, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public WixInstanceTransformsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixInstanceTransforms, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[WixInstanceTransformsTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Id | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.Id]?.Value; | ||
49 | set => this.Set((int)WixInstanceTransformsTupleFields.Id, value); | ||
50 | } | ||
51 | |||
52 | public string PropertyId | ||
53 | { | ||
54 | get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.PropertyId]?.Value; | ||
55 | set => this.Set((int)WixInstanceTransformsTupleFields.PropertyId, value); | ||
56 | } | ||
57 | |||
58 | public string ProductCode | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductCode]?.Value; | ||
61 | set => this.Set((int)WixInstanceTransformsTupleFields.ProductCode, value); | ||
62 | } | ||
63 | |||
64 | public string ProductName | ||
65 | { | ||
66 | get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.ProductName]?.Value; | ||
67 | set => this.Set((int)WixInstanceTransformsTupleFields.ProductName, value); | ||
68 | } | ||
69 | |||
70 | public string UpgradeCode | ||
71 | { | ||
72 | get => (string)this.Fields[(int)WixInstanceTransformsTupleFields.UpgradeCode]?.Value; | ||
73 | set => this.Set((int)WixInstanceTransformsTupleFields.UpgradeCode, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs new file mode 100644 index 00000000..bc8d2515 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs | |||
@@ -0,0 +1,86 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixMediaTemplate = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixMediaTemplate, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CabinetTemplate), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.CompressionLevel), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.DiskPrompt), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.VolumeLabel), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumUncompressedMediaSize), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting), IntermediateFieldType.Number), | ||
19 | }, | ||
20 | typeof(WixMediaTemplateTuple)); | ||
21 | } | ||
22 | } | ||
23 | |||
24 | namespace WixToolset.Data.Tuples | ||
25 | { | ||
26 | using System; | ||
27 | |||
28 | public enum WixMediaTemplateTupleFields | ||
29 | { | ||
30 | CabinetTemplate, | ||
31 | CompressionLevel, | ||
32 | DiskPrompt, | ||
33 | VolumeLabel, | ||
34 | MaximumUncompressedMediaSize, | ||
35 | MaximumCabinetSizeForLargeFileSplitting, | ||
36 | } | ||
37 | |||
38 | public class WixMediaTemplateTuple : IntermediateTuple | ||
39 | { | ||
40 | public WixMediaTemplateTuple() : base(TupleDefinitions.WixMediaTemplate, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public WixMediaTemplateTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMediaTemplate, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[WixMediaTemplateTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string CabinetTemplate | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixMediaTemplateTupleFields.CabinetTemplate]?.Value; | ||
53 | set => this.Set((int)WixMediaTemplateTupleFields.CabinetTemplate, value); | ||
54 | } | ||
55 | |||
56 | public CompressionLevel CompressionLevel | ||
57 | { | ||
58 | get => (CompressionLevel)Enum.Parse(typeof(CompressionLevel), (string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]?.Value, true); | ||
59 | set => this.Set((int)WixMediaTupleFields.CompressionLevel, value.ToString()); | ||
60 | } | ||
61 | |||
62 | public string DiskPrompt | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixMediaTemplateTupleFields.DiskPrompt]?.Value; | ||
65 | set => this.Set((int)WixMediaTemplateTupleFields.DiskPrompt, value); | ||
66 | } | ||
67 | |||
68 | public string VolumeLabel | ||
69 | { | ||
70 | get => (string)this.Fields[(int)WixMediaTemplateTupleFields.VolumeLabel]?.Value; | ||
71 | set => this.Set((int)WixMediaTemplateTupleFields.VolumeLabel, value); | ||
72 | } | ||
73 | |||
74 | public int MaximumUncompressedMediaSize | ||
75 | { | ||
76 | get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize]?.Value; | ||
77 | set => this.Set((int)WixMediaTemplateTupleFields.MaximumUncompressedMediaSize, value); | ||
78 | } | ||
79 | |||
80 | public int MaximumCabinetSizeForLargeFileSplitting | ||
81 | { | ||
82 | get => (int)this.Fields[(int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting]?.Value; | ||
83 | set => this.Set((int)WixMediaTemplateTupleFields.MaximumCabinetSizeForLargeFileSplitting, value); | ||
84 | } | ||
85 | } | ||
86 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixMediaTuple.cs b/src/WixToolset.Data/Tuples/WixMediaTuple.cs new file mode 100644 index 00000000..4da11de1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixMediaTuple.cs | |||
@@ -0,0 +1,62 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixMedia = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixMedia, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixMediaTupleFields.DiskId_), IntermediateFieldType.Number), | ||
14 | new IntermediateFieldDefinition(nameof(WixMediaTupleFields.CompressionLevel), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixMediaTupleFields.Layout), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(WixMediaTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | using System; | ||
24 | |||
25 | public enum WixMediaTupleFields | ||
26 | { | ||
27 | DiskId_, | ||
28 | CompressionLevel, | ||
29 | Layout, | ||
30 | } | ||
31 | |||
32 | public class WixMediaTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixMediaTuple() : base(TupleDefinitions.WixMedia, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixMediaTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMedia, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixMediaTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public int DiskId_ | ||
45 | { | ||
46 | get => (int)this.Fields[(int)WixMediaTupleFields.DiskId_]?.Value; | ||
47 | set => this.Set((int)WixMediaTupleFields.DiskId_, value); | ||
48 | } | ||
49 | |||
50 | public CompressionLevel? CompressionLevel | ||
51 | { | ||
52 | get => Enum.TryParse((string)this.Fields[(int)WixMediaTupleFields.CompressionLevel]?.Value, true, out CompressionLevel value) ? value : (CompressionLevel?)null; | ||
53 | set => this.Set((int)WixMediaTupleFields.CompressionLevel, value?.ToString()); | ||
54 | } | ||
55 | |||
56 | public string Layout | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixMediaTupleFields.Layout]?.Value; | ||
59 | set => this.Set((int)WixMediaTupleFields.Layout, value); | ||
60 | } | ||
61 | } | ||
62 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixMergeTuple.cs b/src/WixToolset.Data/Tuples/WixMergeTuple.cs new file mode 100644 index 00000000..602acc0e --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixMergeTuple.cs | |||
@@ -0,0 +1,100 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixMerge = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixMerge, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.WixMerge), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Language), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Directory_), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.SourceFile), IntermediateFieldType.Path), | ||
17 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.DiskId), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.FileCompression), IntermediateFieldType.Number), | ||
19 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.ConfigurationData), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixMergeTupleFields.Feature_), IntermediateFieldType.String), | ||
21 | }, | ||
22 | typeof(WixMergeTuple)); | ||
23 | } | ||
24 | } | ||
25 | |||
26 | namespace WixToolset.Data.Tuples | ||
27 | { | ||
28 | public enum WixMergeTupleFields | ||
29 | { | ||
30 | WixMerge, | ||
31 | Language, | ||
32 | Directory_, | ||
33 | SourceFile, | ||
34 | DiskId, | ||
35 | FileCompression, | ||
36 | ConfigurationData, | ||
37 | Feature_, | ||
38 | } | ||
39 | |||
40 | public class WixMergeTuple : IntermediateTuple | ||
41 | { | ||
42 | public WixMergeTuple() : base(TupleDefinitions.WixMerge, null, null) | ||
43 | { | ||
44 | } | ||
45 | |||
46 | public WixMergeTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixMerge, sourceLineNumber, id) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public IntermediateField this[WixMergeTupleFields index] => this.Fields[(int)index]; | ||
51 | |||
52 | public string WixMerge | ||
53 | { | ||
54 | get => (string)this.Fields[(int)WixMergeTupleFields.WixMerge]?.Value; | ||
55 | set => this.Set((int)WixMergeTupleFields.WixMerge, value); | ||
56 | } | ||
57 | |||
58 | public int Language | ||
59 | { | ||
60 | get => (int)this.Fields[(int)WixMergeTupleFields.Language]?.Value; | ||
61 | set => this.Set((int)WixMergeTupleFields.Language, value); | ||
62 | } | ||
63 | |||
64 | public string Directory_ | ||
65 | { | ||
66 | get => (string)this.Fields[(int)WixMergeTupleFields.Directory_]?.Value; | ||
67 | set => this.Set((int)WixMergeTupleFields.Directory_, value); | ||
68 | } | ||
69 | |||
70 | public string SourceFile | ||
71 | { | ||
72 | get => (string)this.Fields[(int)WixMergeTupleFields.SourceFile]?.Value; | ||
73 | set => this.Set((int)WixMergeTupleFields.SourceFile, value); | ||
74 | } | ||
75 | |||
76 | public int DiskId | ||
77 | { | ||
78 | get => (int)this.Fields[(int)WixMergeTupleFields.DiskId]?.Value; | ||
79 | set => this.Set((int)WixMergeTupleFields.DiskId, value); | ||
80 | } | ||
81 | |||
82 | public int FileCompression | ||
83 | { | ||
84 | get => (int)this.Fields[(int)WixMergeTupleFields.FileCompression]?.Value; | ||
85 | set => this.Set((int)WixMergeTupleFields.FileCompression, value); | ||
86 | } | ||
87 | |||
88 | public string ConfigurationData | ||
89 | { | ||
90 | get => (string)this.Fields[(int)WixMergeTupleFields.ConfigurationData]?.Value; | ||
91 | set => this.Set((int)WixMergeTupleFields.ConfigurationData, value); | ||
92 | } | ||
93 | |||
94 | public string Feature_ | ||
95 | { | ||
96 | get => (string)this.Fields[(int)WixMergeTupleFields.Feature_]?.Value; | ||
97 | set => this.Set((int)WixMergeTupleFields.Feature_, value); | ||
98 | } | ||
99 | } | ||
100 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixOrderingTuple.cs b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs new file mode 100644 index 00000000..fde295c1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixOrderingTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixOrdering = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixOrdering, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemType), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.ItemId_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnType), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixOrderingTupleFields.DependsOnId_), IntermediateFieldType.String), | ||
17 | }, | ||
18 | typeof(WixOrderingTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixOrderingTupleFields | ||
25 | { | ||
26 | ItemType, | ||
27 | ItemId_, | ||
28 | DependsOnType, | ||
29 | DependsOnId_, | ||
30 | } | ||
31 | |||
32 | public class WixOrderingTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixOrderingTuple() : base(TupleDefinitions.WixOrdering, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixOrderingTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixOrdering, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixOrderingTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string ItemType | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixOrderingTupleFields.ItemType]?.Value; | ||
47 | set => this.Set((int)WixOrderingTupleFields.ItemType, value); | ||
48 | } | ||
49 | |||
50 | public string ItemId_ | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixOrderingTupleFields.ItemId_]?.Value; | ||
53 | set => this.Set((int)WixOrderingTupleFields.ItemId_, value); | ||
54 | } | ||
55 | |||
56 | public string DependsOnType | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnType]?.Value; | ||
59 | set => this.Set((int)WixOrderingTupleFields.DependsOnType, value); | ||
60 | } | ||
61 | |||
62 | public string DependsOnId_ | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixOrderingTupleFields.DependsOnId_]?.Value; | ||
65 | set => this.Set((int)WixOrderingTupleFields.DependsOnId_, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs new file mode 100644 index 00000000..03948efb --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs | |||
@@ -0,0 +1,116 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPackageFeatureInfo = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPackageFeatureInfo, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Package), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Feature), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Size), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Parent), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Title), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Description), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Display), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Level), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Directory), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(WixPackageFeatureInfoTupleFields.Attributes), IntermediateFieldType.String), | ||
23 | }, | ||
24 | typeof(WixPackageFeatureInfoTuple)); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | namespace WixToolset.Data.Tuples | ||
29 | { | ||
30 | public enum WixPackageFeatureInfoTupleFields | ||
31 | { | ||
32 | Package, | ||
33 | Feature, | ||
34 | Size, | ||
35 | Parent, | ||
36 | Title, | ||
37 | Description, | ||
38 | Display, | ||
39 | Level, | ||
40 | Directory, | ||
41 | Attributes, | ||
42 | } | ||
43 | |||
44 | public class WixPackageFeatureInfoTuple : IntermediateTuple | ||
45 | { | ||
46 | public WixPackageFeatureInfoTuple() : base(TupleDefinitions.WixPackageFeatureInfo, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public WixPackageFeatureInfoTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageFeatureInfo, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[WixPackageFeatureInfoTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string Package | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Package]?.Value; | ||
59 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Package, value); | ||
60 | } | ||
61 | |||
62 | public string Feature | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Feature]?.Value; | ||
65 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Feature, value); | ||
66 | } | ||
67 | |||
68 | public string Size | ||
69 | { | ||
70 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Size]?.Value; | ||
71 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Size, value); | ||
72 | } | ||
73 | |||
74 | public string Parent | ||
75 | { | ||
76 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Parent]?.Value; | ||
77 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Parent, value); | ||
78 | } | ||
79 | |||
80 | public string Title | ||
81 | { | ||
82 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Title]?.Value; | ||
83 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Title, value); | ||
84 | } | ||
85 | |||
86 | public string Description | ||
87 | { | ||
88 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Description]?.Value; | ||
89 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Description, value); | ||
90 | } | ||
91 | |||
92 | public string Display | ||
93 | { | ||
94 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Display]?.Value; | ||
95 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Display, value); | ||
96 | } | ||
97 | |||
98 | public string Level | ||
99 | { | ||
100 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Level]?.Value; | ||
101 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Level, value); | ||
102 | } | ||
103 | |||
104 | public string Directory | ||
105 | { | ||
106 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Directory]?.Value; | ||
107 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Directory, value); | ||
108 | } | ||
109 | |||
110 | public string Attributes | ||
111 | { | ||
112 | get => (string)this.Fields[(int)WixPackageFeatureInfoTupleFields.Attributes]?.Value; | ||
113 | set => this.Set((int)WixPackageFeatureInfoTupleFields.Attributes, value); | ||
114 | } | ||
115 | } | ||
116 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs new file mode 100644 index 00000000..4823409d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs | |||
@@ -0,0 +1,180 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPackageProperties = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPackageProperties, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Package), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Vital), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayName), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Description), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DownloadSize), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageSize), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstalledSize), IntermediateFieldType.String), | ||
20 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.PackageType), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Permanent), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.LogPathVariable), IntermediateFieldType.String), | ||
23 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.RollbackLogPathVariable), IntermediateFieldType.String), | ||
24 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Compressed), IntermediateFieldType.String), | ||
25 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.DisplayInternalUI), IntermediateFieldType.String), | ||
26 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.ProductCode), IntermediateFieldType.String), | ||
27 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.UpgradeCode), IntermediateFieldType.String), | ||
28 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Version), IntermediateFieldType.String), | ||
29 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.InstallCondition), IntermediateFieldType.String), | ||
30 | new IntermediateFieldDefinition(nameof(WixPackagePropertiesTupleFields.Cache), IntermediateFieldType.String), | ||
31 | }, | ||
32 | typeof(WixPackagePropertiesTuple)); | ||
33 | } | ||
34 | } | ||
35 | |||
36 | namespace WixToolset.Data.Tuples | ||
37 | { | ||
38 | public enum WixPackagePropertiesTupleFields | ||
39 | { | ||
40 | Package, | ||
41 | Vital, | ||
42 | DisplayName, | ||
43 | Description, | ||
44 | DownloadSize, | ||
45 | PackageSize, | ||
46 | InstalledSize, | ||
47 | PackageType, | ||
48 | Permanent, | ||
49 | LogPathVariable, | ||
50 | RollbackLogPathVariable, | ||
51 | Compressed, | ||
52 | DisplayInternalUI, | ||
53 | ProductCode, | ||
54 | UpgradeCode, | ||
55 | Version, | ||
56 | InstallCondition, | ||
57 | Cache, | ||
58 | } | ||
59 | |||
60 | public class WixPackagePropertiesTuple : IntermediateTuple | ||
61 | { | ||
62 | public WixPackagePropertiesTuple() : base(TupleDefinitions.WixPackageProperties, null, null) | ||
63 | { | ||
64 | } | ||
65 | |||
66 | public WixPackagePropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPackageProperties, sourceLineNumber, id) | ||
67 | { | ||
68 | } | ||
69 | |||
70 | public IntermediateField this[WixPackagePropertiesTupleFields index] => this.Fields[(int)index]; | ||
71 | |||
72 | public string Package | ||
73 | { | ||
74 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Package]?.Value; | ||
75 | set => this.Set((int)WixPackagePropertiesTupleFields.Package, value); | ||
76 | } | ||
77 | |||
78 | public string Vital | ||
79 | { | ||
80 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Vital]?.Value; | ||
81 | set => this.Set((int)WixPackagePropertiesTupleFields.Vital, value); | ||
82 | } | ||
83 | |||
84 | public string DisplayName | ||
85 | { | ||
86 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayName]?.Value; | ||
87 | set => this.Set((int)WixPackagePropertiesTupleFields.DisplayName, value); | ||
88 | } | ||
89 | |||
90 | public string Description | ||
91 | { | ||
92 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Description]?.Value; | ||
93 | set => this.Set((int)WixPackagePropertiesTupleFields.Description, value); | ||
94 | } | ||
95 | |||
96 | public string DownloadSize | ||
97 | { | ||
98 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DownloadSize]?.Value; | ||
99 | set => this.Set((int)WixPackagePropertiesTupleFields.DownloadSize, value); | ||
100 | } | ||
101 | |||
102 | public string PackageSize | ||
103 | { | ||
104 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageSize]?.Value; | ||
105 | set => this.Set((int)WixPackagePropertiesTupleFields.PackageSize, value); | ||
106 | } | ||
107 | |||
108 | public string InstalledSize | ||
109 | { | ||
110 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstalledSize]?.Value; | ||
111 | set => this.Set((int)WixPackagePropertiesTupleFields.InstalledSize, value); | ||
112 | } | ||
113 | |||
114 | public string PackageType | ||
115 | { | ||
116 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.PackageType]?.Value; | ||
117 | set => this.Set((int)WixPackagePropertiesTupleFields.PackageType, value); | ||
118 | } | ||
119 | |||
120 | public string Permanent | ||
121 | { | ||
122 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Permanent]?.Value; | ||
123 | set => this.Set((int)WixPackagePropertiesTupleFields.Permanent, value); | ||
124 | } | ||
125 | |||
126 | public string LogPathVariable | ||
127 | { | ||
128 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.LogPathVariable]?.Value; | ||
129 | set => this.Set((int)WixPackagePropertiesTupleFields.LogPathVariable, value); | ||
130 | } | ||
131 | |||
132 | public string RollbackLogPathVariable | ||
133 | { | ||
134 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.RollbackLogPathVariable]?.Value; | ||
135 | set => this.Set((int)WixPackagePropertiesTupleFields.RollbackLogPathVariable, value); | ||
136 | } | ||
137 | |||
138 | public string Compressed | ||
139 | { | ||
140 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Compressed]?.Value; | ||
141 | set => this.Set((int)WixPackagePropertiesTupleFields.Compressed, value); | ||
142 | } | ||
143 | |||
144 | public string DisplayInternalUI | ||
145 | { | ||
146 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.DisplayInternalUI]?.Value; | ||
147 | set => this.Set((int)WixPackagePropertiesTupleFields.DisplayInternalUI, value); | ||
148 | } | ||
149 | |||
150 | public string ProductCode | ||
151 | { | ||
152 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.ProductCode]?.Value; | ||
153 | set => this.Set((int)WixPackagePropertiesTupleFields.ProductCode, value); | ||
154 | } | ||
155 | |||
156 | public string UpgradeCode | ||
157 | { | ||
158 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.UpgradeCode]?.Value; | ||
159 | set => this.Set((int)WixPackagePropertiesTupleFields.UpgradeCode, value); | ||
160 | } | ||
161 | |||
162 | public string Version | ||
163 | { | ||
164 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Version]?.Value; | ||
165 | set => this.Set((int)WixPackagePropertiesTupleFields.Version, value); | ||
166 | } | ||
167 | |||
168 | public string InstallCondition | ||
169 | { | ||
170 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.InstallCondition]?.Value; | ||
171 | set => this.Set((int)WixPackagePropertiesTupleFields.InstallCondition, value); | ||
172 | } | ||
173 | |||
174 | public string Cache | ||
175 | { | ||
176 | get => (string)this.Fields[(int)WixPackagePropertiesTupleFields.Cache]?.Value; | ||
177 | set => this.Set((int)WixPackagePropertiesTupleFields.Cache, value); | ||
178 | } | ||
179 | } | ||
180 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs new file mode 100644 index 00000000..0610adac --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPatchBaseline = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPatchBaseline, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.WixPatchBaseline), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.DiskId), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixPatchBaselineTupleFields.ValidationFlags), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(WixPatchBaselineTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixPatchBaselineTupleFields | ||
24 | { | ||
25 | WixPatchBaseline, | ||
26 | DiskId, | ||
27 | ValidationFlags, | ||
28 | } | ||
29 | |||
30 | public class WixPatchBaselineTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixPatchBaselineTuple() : base(TupleDefinitions.WixPatchBaseline, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixPatchBaselineTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchBaseline, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixPatchBaselineTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixPatchBaseline | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixPatchBaselineTupleFields.WixPatchBaseline]?.Value; | ||
45 | set => this.Set((int)WixPatchBaselineTupleFields.WixPatchBaseline, value); | ||
46 | } | ||
47 | |||
48 | public int DiskId | ||
49 | { | ||
50 | get => (int)this.Fields[(int)WixPatchBaselineTupleFields.DiskId]?.Value; | ||
51 | set => this.Set((int)WixPatchBaselineTupleFields.DiskId, value); | ||
52 | } | ||
53 | |||
54 | public int ValidationFlags | ||
55 | { | ||
56 | get => (int)this.Fields[(int)WixPatchBaselineTupleFields.ValidationFlags]?.Value; | ||
57 | set => this.Set((int)WixPatchBaselineTupleFields.ValidationFlags, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs new file mode 100644 index 00000000..0683ba9d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPatchFamilyGroup = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPatchFamilyGroup, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixPatchFamilyGroupTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixPatchFamilyGroupTupleFields | ||
22 | { | ||
23 | WixPatchFamilyGroup, | ||
24 | } | ||
25 | |||
26 | public class WixPatchFamilyGroupTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixPatchFamilyGroupTuple() : base(TupleDefinitions.WixPatchFamilyGroup, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixPatchFamilyGroupTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchFamilyGroup, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixPatchFamilyGroupTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixPatchFamilyGroup | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup]?.Value; | ||
41 | set => this.Set((int)WixPatchFamilyGroupTupleFields.WixPatchFamilyGroup, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs new file mode 100644 index 00000000..81b9573d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchIdTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPatchId = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPatchId, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ProductCode), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ClientPatchId), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles), IntermediateFieldType.Number), | ||
16 | new IntermediateFieldDefinition(nameof(WixPatchIdTupleFields.ApiPatchingSymbolFlags), IntermediateFieldType.Number), | ||
17 | }, | ||
18 | typeof(WixPatchIdTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixPatchIdTupleFields | ||
25 | { | ||
26 | ProductCode, | ||
27 | ClientPatchId, | ||
28 | OptimizePatchSizeForLargeFiles, | ||
29 | ApiPatchingSymbolFlags, | ||
30 | } | ||
31 | |||
32 | public class WixPatchIdTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixPatchIdTuple() : base(TupleDefinitions.WixPatchId, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixPatchIdTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchId, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixPatchIdTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string ProductCode | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixPatchIdTupleFields.ProductCode]?.Value; | ||
47 | set => this.Set((int)WixPatchIdTupleFields.ProductCode, value); | ||
48 | } | ||
49 | |||
50 | public string ClientPatchId | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixPatchIdTupleFields.ClientPatchId]?.Value; | ||
53 | set => this.Set((int)WixPatchIdTupleFields.ClientPatchId, value); | ||
54 | } | ||
55 | |||
56 | public int OptimizePatchSizeForLargeFiles | ||
57 | { | ||
58 | get => (int)this.Fields[(int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles]?.Value; | ||
59 | set => this.Set((int)WixPatchIdTupleFields.OptimizePatchSizeForLargeFiles, value); | ||
60 | } | ||
61 | |||
62 | public int ApiPatchingSymbolFlags | ||
63 | { | ||
64 | get => (int)this.Fields[(int)WixPatchIdTupleFields.ApiPatchingSymbolFlags]?.Value; | ||
65 | set => this.Set((int)WixPatchIdTupleFields.ApiPatchingSymbolFlags, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs new file mode 100644 index 00000000..c00031a5 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPatchMetadata = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPatchMetadata, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Property), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPatchMetadataTupleFields.Value), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixPatchMetadataTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixPatchMetadataTupleFields | ||
23 | { | ||
24 | Property, | ||
25 | Value, | ||
26 | } | ||
27 | |||
28 | public class WixPatchMetadataTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixPatchMetadataTuple() : base(TupleDefinitions.WixPatchMetadata, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixPatchMetadataTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchMetadata, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixPatchMetadataTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Property | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Property]?.Value; | ||
43 | set => this.Set((int)WixPatchMetadataTupleFields.Property, value); | ||
44 | } | ||
45 | |||
46 | public string Value | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixPatchMetadataTupleFields.Value]?.Value; | ||
49 | set => this.Set((int)WixPatchMetadataTupleFields.Value, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs new file mode 100644 index 00000000..63528439 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchRefTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPatchRef = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPatchRef, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPatchRefTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPatchRefTupleFields.PrimaryKeys), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixPatchRefTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixPatchRefTupleFields | ||
23 | { | ||
24 | Table, | ||
25 | PrimaryKeys, | ||
26 | } | ||
27 | |||
28 | public class WixPatchRefTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixPatchRefTuple() : base(TupleDefinitions.WixPatchRef, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixPatchRefTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchRef, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixPatchRefTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Table | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixPatchRefTupleFields.Table]?.Value; | ||
43 | set => this.Set((int)WixPatchRefTupleFields.Table, value); | ||
44 | } | ||
45 | |||
46 | public string PrimaryKeys | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixPatchRefTupleFields.PrimaryKeys]?.Value; | ||
49 | set => this.Set((int)WixPatchRefTupleFields.PrimaryKeys, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs new file mode 100644 index 00000000..8940c0c6 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPatchTarget = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPatchTarget, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPatchTargetTupleFields.ProductCode), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixPatchTargetTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixPatchTargetTupleFields | ||
22 | { | ||
23 | ProductCode, | ||
24 | } | ||
25 | |||
26 | public class WixPatchTargetTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixPatchTargetTuple() : base(TupleDefinitions.WixPatchTarget, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixPatchTargetTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPatchTarget, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixPatchTargetTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string ProductCode | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixPatchTargetTupleFields.ProductCode]?.Value; | ||
41 | set => this.Set((int)WixPatchTargetTupleFields.ProductCode, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs new file mode 100644 index 00000000..3c437a58 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs | |||
@@ -0,0 +1,92 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixPayloadProperties = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixPayloadProperties, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Payload), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Package), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Container), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Name), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.Size), IntermediateFieldType.String), | ||
18 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.DownloadUrl), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(WixPayloadPropertiesTupleFields.LayoutOnly), IntermediateFieldType.String), | ||
20 | }, | ||
21 | typeof(WixPayloadPropertiesTuple)); | ||
22 | } | ||
23 | } | ||
24 | |||
25 | namespace WixToolset.Data.Tuples | ||
26 | { | ||
27 | public enum WixPayloadPropertiesTupleFields | ||
28 | { | ||
29 | Payload, | ||
30 | Package, | ||
31 | Container, | ||
32 | Name, | ||
33 | Size, | ||
34 | DownloadUrl, | ||
35 | LayoutOnly, | ||
36 | } | ||
37 | |||
38 | public class WixPayloadPropertiesTuple : IntermediateTuple | ||
39 | { | ||
40 | public WixPayloadPropertiesTuple() : base(TupleDefinitions.WixPayloadProperties, null, null) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public WixPayloadPropertiesTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixPayloadProperties, sourceLineNumber, id) | ||
45 | { | ||
46 | } | ||
47 | |||
48 | public IntermediateField this[WixPayloadPropertiesTupleFields index] => this.Fields[(int)index]; | ||
49 | |||
50 | public string Payload | ||
51 | { | ||
52 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Payload]?.Value; | ||
53 | set => this.Set((int)WixPayloadPropertiesTupleFields.Payload, value); | ||
54 | } | ||
55 | |||
56 | public string Package | ||
57 | { | ||
58 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Package]?.Value; | ||
59 | set => this.Set((int)WixPayloadPropertiesTupleFields.Package, value); | ||
60 | } | ||
61 | |||
62 | public string Container | ||
63 | { | ||
64 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Container]?.Value; | ||
65 | set => this.Set((int)WixPayloadPropertiesTupleFields.Container, value); | ||
66 | } | ||
67 | |||
68 | public string Name | ||
69 | { | ||
70 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Name]?.Value; | ||
71 | set => this.Set((int)WixPayloadPropertiesTupleFields.Name, value); | ||
72 | } | ||
73 | |||
74 | public string Size | ||
75 | { | ||
76 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.Size]?.Value; | ||
77 | set => this.Set((int)WixPayloadPropertiesTupleFields.Size, value); | ||
78 | } | ||
79 | |||
80 | public string DownloadUrl | ||
81 | { | ||
82 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.DownloadUrl]?.Value; | ||
83 | set => this.Set((int)WixPayloadPropertiesTupleFields.DownloadUrl, value); | ||
84 | } | ||
85 | |||
86 | public string LayoutOnly | ||
87 | { | ||
88 | get => (string)this.Fields[(int)WixPayloadPropertiesTupleFields.LayoutOnly]?.Value; | ||
89 | set => this.Set((int)WixPayloadPropertiesTupleFields.LayoutOnly, value); | ||
90 | } | ||
91 | } | ||
92 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs new file mode 100644 index 00000000..40065f55 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixProductSearchTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixProductSearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixProductSearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.WixSearch_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Guid), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixProductSearchTupleFields.Attributes), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(WixProductSearchTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixProductSearchTupleFields | ||
24 | { | ||
25 | WixSearch_, | ||
26 | Guid, | ||
27 | Attributes, | ||
28 | } | ||
29 | |||
30 | public class WixProductSearchTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixProductSearchTuple() : base(TupleDefinitions.WixProductSearch, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixProductSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixProductSearch, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixProductSearchTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixSearch_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixProductSearchTupleFields.WixSearch_]?.Value; | ||
45 | set => this.Set((int)WixProductSearchTupleFields.WixSearch_, value); | ||
46 | } | ||
47 | |||
48 | public string Guid | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixProductSearchTupleFields.Guid]?.Value; | ||
51 | set => this.Set((int)WixProductSearchTupleFields.Guid, value); | ||
52 | } | ||
53 | |||
54 | public int Attributes | ||
55 | { | ||
56 | get => (int)this.Fields[(int)WixProductSearchTupleFields.Attributes]?.Value; | ||
57 | set => this.Set((int)WixProductSearchTupleFields.Attributes, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixPropertyTuple.cs b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs new file mode 100644 index 00000000..74e17d18 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixPropertyTuple.cs | |||
@@ -0,0 +1,68 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixProperty = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixProperty, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Property_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Admin), IntermediateFieldType.Bool), | ||
15 | new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Hidden), IntermediateFieldType.Bool), | ||
16 | new IntermediateFieldDefinition(nameof(WixPropertyTupleFields.Secure), IntermediateFieldType.Bool), | ||
17 | }, | ||
18 | typeof(WixPropertyTuple)); | ||
19 | } | ||
20 | } | ||
21 | |||
22 | namespace WixToolset.Data.Tuples | ||
23 | { | ||
24 | public enum WixPropertyTupleFields | ||
25 | { | ||
26 | Property_, | ||
27 | Admin, | ||
28 | Hidden, | ||
29 | Secure, | ||
30 | } | ||
31 | |||
32 | public class WixPropertyTuple : IntermediateTuple | ||
33 | { | ||
34 | public WixPropertyTuple() : base(TupleDefinitions.WixProperty, null, null) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public WixPropertyTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixProperty, sourceLineNumber, id) | ||
39 | { | ||
40 | } | ||
41 | |||
42 | public IntermediateField this[WixPropertyTupleFields index] => this.Fields[(int)index]; | ||
43 | |||
44 | public string Property_ | ||
45 | { | ||
46 | get => (string)this.Fields[(int)WixPropertyTupleFields.Property_]?.Value; | ||
47 | set => this.Set((int)WixPropertyTupleFields.Property_, value); | ||
48 | } | ||
49 | |||
50 | public bool Admin | ||
51 | { | ||
52 | get => (bool)this.Fields[(int)WixPropertyTupleFields.Admin]?.Value; | ||
53 | set => this.Set((int)WixPropertyTupleFields.Admin, value); | ||
54 | } | ||
55 | |||
56 | public bool Hidden | ||
57 | { | ||
58 | get => (bool)this.Fields[(int)WixPropertyTupleFields.Hidden]?.Value; | ||
59 | set => this.Set((int)WixPropertyTupleFields.Hidden, value); | ||
60 | } | ||
61 | |||
62 | public bool Secure | ||
63 | { | ||
64 | get => (bool)this.Fields[(int)WixPropertyTupleFields.Secure]?.Value; | ||
65 | set => this.Set((int)WixPropertyTupleFields.Secure, value); | ||
66 | } | ||
67 | } | ||
68 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs new file mode 100644 index 00000000..c23bf957 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixRegistrySearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixRegistrySearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.WixSearch_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Root), IntermediateFieldType.Number), | ||
15 | new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Key), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Value), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixRegistrySearchTupleFields.Attributes), IntermediateFieldType.Number), | ||
18 | }, | ||
19 | typeof(WixRegistrySearchTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum WixRegistrySearchTupleFields | ||
26 | { | ||
27 | WixSearch_, | ||
28 | Root, | ||
29 | Key, | ||
30 | Value, | ||
31 | Attributes, | ||
32 | } | ||
33 | |||
34 | public class WixRegistrySearchTuple : IntermediateTuple | ||
35 | { | ||
36 | public WixRegistrySearchTuple() : base(TupleDefinitions.WixRegistrySearch, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public WixRegistrySearchTuple(SourceLineNumber sourceLineNumber , Identifier id = null) : base(TupleDefinitions.WixRegistrySearch, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[WixRegistrySearchTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string WixSearch_ | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixRegistrySearchTupleFields.WixSearch_]?.Value; | ||
49 | set => this.Set((int)WixRegistrySearchTupleFields.WixSearch_, value); | ||
50 | } | ||
51 | |||
52 | public int Root | ||
53 | { | ||
54 | get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Root]?.Value; | ||
55 | set => this.Set((int)WixRegistrySearchTupleFields.Root, value); | ||
56 | } | ||
57 | |||
58 | public string Key | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Key]?.Value; | ||
61 | set => this.Set((int)WixRegistrySearchTupleFields.Key, value); | ||
62 | } | ||
63 | |||
64 | public string Value | ||
65 | { | ||
66 | get => (string)this.Fields[(int)WixRegistrySearchTupleFields.Value]?.Value; | ||
67 | set => this.Set((int)WixRegistrySearchTupleFields.Value, value); | ||
68 | } | ||
69 | |||
70 | public int Attributes | ||
71 | { | ||
72 | get => (int)this.Fields[(int)WixRegistrySearchTupleFields.Attributes]?.Value; | ||
73 | set => this.Set((int)WixRegistrySearchTupleFields.Attributes, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs new file mode 100644 index 00000000..491e9aa1 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixRelatedBundle = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixRelatedBundle, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixRelatedBundleTupleFields.Id), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixRelatedBundleTupleFields.Action), IntermediateFieldType.Number), | ||
15 | }, | ||
16 | typeof(WixRelatedBundleTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixRelatedBundleTupleFields | ||
23 | { | ||
24 | Id, | ||
25 | Action, | ||
26 | } | ||
27 | |||
28 | public class WixRelatedBundleTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixRelatedBundleTuple() : base(TupleDefinitions.WixRelatedBundle, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixRelatedBundleTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixRelatedBundle, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixRelatedBundleTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Id | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixRelatedBundleTupleFields.Id]?.Value; | ||
43 | set => this.Set((int)WixRelatedBundleTupleFields.Id, value); | ||
44 | } | ||
45 | |||
46 | public int Action | ||
47 | { | ||
48 | get => (int)this.Fields[(int)WixRelatedBundleTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)WixRelatedBundleTupleFields.Action, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs new file mode 100644 index 00000000..05021a11 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixSearchRelation = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixSearchRelation, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.WixSearch_), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.ParentId_), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixSearchRelationTupleFields.Attributes), IntermediateFieldType.Number), | ||
16 | }, | ||
17 | typeof(WixSearchRelationTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixSearchRelationTupleFields | ||
24 | { | ||
25 | WixSearch_, | ||
26 | ParentId_, | ||
27 | Attributes, | ||
28 | } | ||
29 | |||
30 | public class WixSearchRelationTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixSearchRelationTuple() : base(TupleDefinitions.WixSearchRelation, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixSearchRelationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSearchRelation, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixSearchRelationTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixSearch_ | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixSearchRelationTupleFields.WixSearch_]?.Value; | ||
45 | set => this.Set((int)WixSearchRelationTupleFields.WixSearch_, value); | ||
46 | } | ||
47 | |||
48 | public string ParentId_ | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixSearchRelationTupleFields.ParentId_]?.Value; | ||
51 | set => this.Set((int)WixSearchRelationTupleFields.ParentId_, value); | ||
52 | } | ||
53 | |||
54 | public int Attributes | ||
55 | { | ||
56 | get => (int)this.Fields[(int)WixSearchRelationTupleFields.Attributes]?.Value; | ||
57 | set => this.Set((int)WixSearchRelationTupleFields.Attributes, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixSearchTuple.cs b/src/WixToolset.Data/Tuples/WixSearchTuple.cs new file mode 100644 index 00000000..887a7b0d --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSearchTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixSearch = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixSearch, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixSearchTupleFields.WixSearch), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Variable), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixSearchTupleFields.Condition), IntermediateFieldType.String), | ||
16 | }, | ||
17 | typeof(WixSearchTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixSearchTupleFields | ||
24 | { | ||
25 | WixSearch, | ||
26 | Variable, | ||
27 | Condition, | ||
28 | } | ||
29 | |||
30 | public class WixSearchTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixSearchTuple() : base(TupleDefinitions.WixSearch, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixSearchTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSearch, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixSearchTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixSearch | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixSearchTupleFields.WixSearch]?.Value; | ||
45 | set => this.Set((int)WixSearchTupleFields.WixSearch, value); | ||
46 | } | ||
47 | |||
48 | public string Variable | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixSearchTupleFields.Variable]?.Value; | ||
51 | set => this.Set((int)WixSearchTupleFields.Variable, value); | ||
52 | } | ||
53 | |||
54 | public string Condition | ||
55 | { | ||
56 | get => (string)this.Fields[(int)WixSearchTupleFields.Condition]?.Value; | ||
57 | set => this.Set((int)WixSearchTupleFields.Condition, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs new file mode 100644 index 00000000..5641f2b3 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixSimpleReference = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixSimpleReference, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixSimpleReferenceTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixSimpleReferenceTupleFields.PrimaryKeys), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixSimpleReferenceTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | using System; | ||
23 | |||
24 | public enum WixSimpleReferenceTupleFields | ||
25 | { | ||
26 | Table, | ||
27 | PrimaryKeys, | ||
28 | } | ||
29 | |||
30 | public class WixSimpleReferenceTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixSimpleReferenceTuple() : base(TupleDefinitions.WixSimpleReference, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixSimpleReferenceTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSimpleReference, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixSimpleReferenceTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string Table | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.Table]?.Value; | ||
45 | set => this.Set((int)WixSimpleReferenceTupleFields.Table, value); | ||
46 | } | ||
47 | |||
48 | public string PrimaryKeys | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixSimpleReferenceTupleFields.PrimaryKeys]?.Value; | ||
51 | set => this.Set((int)WixSimpleReferenceTupleFields.PrimaryKeys, value); | ||
52 | } | ||
53 | |||
54 | /// <summary> | ||
55 | /// Gets the symbolic name. | ||
56 | /// </summary> | ||
57 | /// <value>Symbolic name.</value> | ||
58 | public string SymbolicName => String.Concat(this.Table, ":", this.PrimaryKeys); | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs new file mode 100644 index 00000000..ad8b443e --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixSuppressAction = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixSuppressAction, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixSuppressActionTupleFields.SequenceTable), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixSuppressActionTupleFields.Action), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(WixSuppressActionTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum WixSuppressActionTupleFields | ||
23 | { | ||
24 | SequenceTable, | ||
25 | Action, | ||
26 | } | ||
27 | |||
28 | public class WixSuppressActionTuple : IntermediateTuple | ||
29 | { | ||
30 | public WixSuppressActionTuple() : base(TupleDefinitions.WixSuppressAction, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public WixSuppressActionTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSuppressAction, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[WixSuppressActionTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string SequenceTable | ||
41 | { | ||
42 | get => (string)this.Fields[(int)WixSuppressActionTupleFields.SequenceTable]?.Value; | ||
43 | set => this.Set((int)WixSuppressActionTupleFields.SequenceTable, value); | ||
44 | } | ||
45 | |||
46 | public string Action | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixSuppressActionTupleFields.Action]?.Value; | ||
49 | set => this.Set((int)WixSuppressActionTupleFields.Action, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs new file mode 100644 index 00000000..c6f42eac --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixSuppressModularization = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixSuppressModularization, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixSuppressModularizationTupleFields.WixSuppressModularization), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixSuppressModularizationTuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixSuppressModularizationTupleFields | ||
22 | { | ||
23 | WixSuppressModularization, | ||
24 | } | ||
25 | |||
26 | public class WixSuppressModularizationTuple : IntermediateTuple | ||
27 | { | ||
28 | public WixSuppressModularizationTuple() : base(TupleDefinitions.WixSuppressModularization, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixSuppressModularizationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixSuppressModularization, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixSuppressModularizationTupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixSuppressModularization | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixSuppressModularizationTupleFields.WixSuppressModularization]?.Value; | ||
41 | set => this.Set((int)WixSuppressModularizationTupleFields.WixSuppressModularization, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixUITuple.cs b/src/WixToolset.Data/Tuples/WixUITuple.cs new file mode 100644 index 00000000..99e19300 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixUITuple.cs | |||
@@ -0,0 +1,44 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixUI = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixUI, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixUITupleFields.WixUI), IntermediateFieldType.String), | ||
14 | }, | ||
15 | typeof(WixUITuple)); | ||
16 | } | ||
17 | } | ||
18 | |||
19 | namespace WixToolset.Data.Tuples | ||
20 | { | ||
21 | public enum WixUITupleFields | ||
22 | { | ||
23 | WixUI, | ||
24 | } | ||
25 | |||
26 | public class WixUITuple : IntermediateTuple | ||
27 | { | ||
28 | public WixUITuple() : base(TupleDefinitions.WixUI, null, null) | ||
29 | { | ||
30 | } | ||
31 | |||
32 | public WixUITuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixUI, sourceLineNumber, id) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public IntermediateField this[WixUITupleFields index] => this.Fields[(int)index]; | ||
37 | |||
38 | public string WixUI | ||
39 | { | ||
40 | get => (string)this.Fields[(int)WixUITupleFields.WixUI]?.Value; | ||
41 | set => this.Set((int)WixUITupleFields.WixUI, value); | ||
42 | } | ||
43 | } | ||
44 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs new file mode 100644 index 00000000..64043ffe --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixUpdateRegistration = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixUpdateRegistration, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Manufacturer), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Department), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.ProductFamily), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Name), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(WixUpdateRegistrationTupleFields.Classification), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(WixUpdateRegistrationTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum WixUpdateRegistrationTupleFields | ||
26 | { | ||
27 | Manufacturer, | ||
28 | Department, | ||
29 | ProductFamily, | ||
30 | Name, | ||
31 | Classification, | ||
32 | } | ||
33 | |||
34 | public class WixUpdateRegistrationTuple : IntermediateTuple | ||
35 | { | ||
36 | public WixUpdateRegistrationTuple() : base(TupleDefinitions.WixUpdateRegistration, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public WixUpdateRegistrationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixUpdateRegistration, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[WixUpdateRegistrationTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Manufacturer | ||
47 | { | ||
48 | get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Manufacturer]?.Value; | ||
49 | set => this.Set((int)WixUpdateRegistrationTupleFields.Manufacturer, value); | ||
50 | } | ||
51 | |||
52 | public string Department | ||
53 | { | ||
54 | get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Department]?.Value; | ||
55 | set => this.Set((int)WixUpdateRegistrationTupleFields.Department, value); | ||
56 | } | ||
57 | |||
58 | public string ProductFamily | ||
59 | { | ||
60 | get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.ProductFamily]?.Value; | ||
61 | set => this.Set((int)WixUpdateRegistrationTupleFields.ProductFamily, value); | ||
62 | } | ||
63 | |||
64 | public string Name | ||
65 | { | ||
66 | get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Name]?.Value; | ||
67 | set => this.Set((int)WixUpdateRegistrationTupleFields.Name, value); | ||
68 | } | ||
69 | |||
70 | public string Classification | ||
71 | { | ||
72 | get => (string)this.Fields[(int)WixUpdateRegistrationTupleFields.Classification]?.Value; | ||
73 | set => this.Set((int)WixUpdateRegistrationTupleFields.Classification, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/WixVariableTuple.cs b/src/WixToolset.Data/Tuples/WixVariableTuple.cs new file mode 100644 index 00000000..6b6e7354 --- /dev/null +++ b/src/WixToolset.Data/Tuples/WixVariableTuple.cs | |||
@@ -0,0 +1,60 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition WixVariable = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType.WixVariable, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(WixVariableTupleFields.WixVariable), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Value), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(WixVariableTupleFields.Overridable), IntermediateFieldType.Bool), | ||
16 | }, | ||
17 | typeof(WixVariableTuple)); | ||
18 | } | ||
19 | } | ||
20 | |||
21 | namespace WixToolset.Data.Tuples | ||
22 | { | ||
23 | public enum WixVariableTupleFields | ||
24 | { | ||
25 | WixVariable, | ||
26 | Value, | ||
27 | Overridable, | ||
28 | } | ||
29 | |||
30 | public class WixVariableTuple : IntermediateTuple | ||
31 | { | ||
32 | public WixVariableTuple() : base(TupleDefinitions.WixVariable, null, null) | ||
33 | { | ||
34 | } | ||
35 | |||
36 | public WixVariableTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixVariable, sourceLineNumber, id) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public IntermediateField this[WixVariableTupleFields index] => this.Fields[(int)index]; | ||
41 | |||
42 | public string WixVariable | ||
43 | { | ||
44 | get => (string)this.Fields[(int)WixVariableTupleFields.WixVariable]?.Value; | ||
45 | set => this.Set((int)WixVariableTupleFields.WixVariable, value); | ||
46 | } | ||
47 | |||
48 | public string Value | ||
49 | { | ||
50 | get => (string)this.Fields[(int)WixVariableTupleFields.Value]?.Value; | ||
51 | set => this.Set((int)WixVariableTupleFields.Value, value); | ||
52 | } | ||
53 | |||
54 | public bool Overridable | ||
55 | { | ||
56 | get => (bool)this.Fields[(int)WixVariableTupleFields.Overridable]?.Value; | ||
57 | set => this.Set((int)WixVariableTupleFields.Overridable, value); | ||
58 | } | ||
59 | } | ||
60 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs b/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs new file mode 100644 index 00000000..0e8fe8e7 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs | |||
@@ -0,0 +1,55 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition ComponentOriginal = new IntermediateTupleDefinition(TupleDefinitionType.Component, new[] | ||
10 | { | ||
11 | new IntermediateFieldDefinition("Guid", IntermediateFieldType.String), | ||
12 | new IntermediateFieldDefinition("Directory", IntermediateFieldType.String), | ||
13 | new IntermediateFieldDefinition("Condition", IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition("KeyPath", IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition("LocalOnly", IntermediateFieldType.Bool), | ||
16 | new IntermediateFieldDefinition("SourceOnly", IntermediateFieldType.Bool), | ||
17 | new IntermediateFieldDefinition("Optional", IntermediateFieldType.Bool), | ||
18 | new IntermediateFieldDefinition("RegistryKeyPath", IntermediateFieldType.Bool), | ||
19 | new IntermediateFieldDefinition("SharedDllRefCount", IntermediateFieldType.Bool), | ||
20 | new IntermediateFieldDefinition("Permanent", IntermediateFieldType.Bool), | ||
21 | new IntermediateFieldDefinition("OdbcDataSource", IntermediateFieldType.Bool), | ||
22 | new IntermediateFieldDefinition("Transitive", IntermediateFieldType.Bool), | ||
23 | new IntermediateFieldDefinition("NeverOverwrite", IntermediateFieldType.Bool), | ||
24 | new IntermediateFieldDefinition("x64", IntermediateFieldType.Bool), | ||
25 | new IntermediateFieldDefinition("DisableRegistryReflection", IntermediateFieldType.Bool), | ||
26 | new IntermediateFieldDefinition("UnisntallOnSupersedence", IntermediateFieldType.Bool), | ||
27 | new IntermediateFieldDefinition("Shared", IntermediateFieldType.Bool), | ||
28 | }, typeof(ComponentTuple)); | ||
29 | } | ||
30 | } | ||
31 | |||
32 | namespace WixToolset.Data.Tuples | ||
33 | { | ||
34 | using System; | ||
35 | |||
36 | public class ComponentTupleOriginal : IntermediateTuple | ||
37 | { | ||
38 | public ComponentTupleOriginal(IntermediateTupleDefinition definition) : base(definition, null, null) | ||
39 | { | ||
40 | if (definition != TupleDefinitions.ComponentOriginal) throw new ArgumentException(nameof(definition)); | ||
41 | } | ||
42 | |||
43 | public string Guid | ||
44 | { | ||
45 | get => (string)this[0]?.Value; | ||
46 | set => this.Set(0, value); | ||
47 | } | ||
48 | |||
49 | public string Directory | ||
50 | { | ||
51 | get => (string)this[1]?.Value; | ||
52 | set => this.Set(1, value); | ||
53 | } | ||
54 | } | ||
55 | } | ||
diff --git a/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs b/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs new file mode 100644 index 00000000..79fb31e5 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ByHandFileTuple.cs | |||
@@ -0,0 +1,88 @@ | |||
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.Tuples; | ||
6 | |||
7 | //public static partial class TupleDefinitionNames | ||
8 | //{ | ||
9 | // public const string File = nameof(TupleDefinitionNames.File); | ||
10 | //} | ||
11 | |||
12 | /* | ||
13 | [ | ||
14 | { | ||
15 | "File" : [ | ||
16 | { "Component" : "string" }, | ||
17 | { "Name" : "string" }, | ||
18 | { "Compressed" : "bool" }, | ||
19 | ] | ||
20 | }, | ||
21 | { | ||
22 | "Component": [ | ||
23 | { "Guid" : "string" }, | ||
24 | ] | ||
25 | }, | ||
26 | ] | ||
27 | */ | ||
28 | |||
29 | public static partial class TupleDefinitions | ||
30 | { | ||
31 | public static readonly IntermediateTupleDefinition FileOriginal = new IntermediateTupleDefinition( | ||
32 | TupleDefinitionType.File, | ||
33 | new[] | ||
34 | { | ||
35 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Component), IntermediateFieldType.String), | ||
36 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Name), IntermediateFieldType.String), | ||
37 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ShortName), IntermediateFieldType.String), | ||
38 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Size), IntermediateFieldType.Number), | ||
39 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Version), IntermediateFieldType.String), | ||
40 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Language), IntermediateFieldType.String), | ||
41 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.ReadOnly), IntermediateFieldType.Bool), | ||
42 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Hidden), IntermediateFieldType.Bool), | ||
43 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.System), IntermediateFieldType.Bool), | ||
44 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Vital), IntermediateFieldType.Bool), | ||
45 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Checksum), IntermediateFieldType.Bool), | ||
46 | new IntermediateFieldDefinition(nameof(FileTupleFieldsOriginal.Compressed), IntermediateFieldType.Bool), | ||
47 | }, | ||
48 | typeof(FileTuple)); | ||
49 | } | ||
50 | } | ||
51 | |||
52 | namespace WixToolset.Data.Tuples | ||
53 | { | ||
54 | public enum FileTupleFieldsOriginal | ||
55 | { | ||
56 | Component, | ||
57 | Name, | ||
58 | ShortName, | ||
59 | Size, | ||
60 | Version, | ||
61 | Language, | ||
62 | ReadOnly, | ||
63 | Hidden, | ||
64 | System, | ||
65 | Vital, | ||
66 | Checksum, | ||
67 | Compressed, | ||
68 | } | ||
69 | |||
70 | public class FileTupleOriginal : IntermediateTuple | ||
71 | { | ||
72 | public FileTupleOriginal() : base(TupleDefinitions.File, null, null) | ||
73 | { | ||
74 | } | ||
75 | |||
76 | public FileTupleOriginal(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.File, sourceLineNumber, id) | ||
77 | { | ||
78 | } | ||
79 | |||
80 | public IntermediateField this[FileTupleFields index] => this.Fields[(int)index]; | ||
81 | |||
82 | public string Component | ||
83 | { | ||
84 | get => (string)this.Fields[(int)FileTupleFieldsOriginal.Component]?.Value; | ||
85 | set => this.Set((int)FileTupleFieldsOriginal.Component, value); | ||
86 | } | ||
87 | } | ||
88 | } | ||
diff --git a/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs b/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs new file mode 100644 index 00000000..0cb0feeb --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs | |||
@@ -0,0 +1,55 @@ | |||
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 | #if false | ||
4 | namespace WixToolset.Data.Tuples | ||
5 | { | ||
6 | using System; | ||
7 | |||
8 | //public enum TupleDefinitionType | ||
9 | //{ | ||
10 | // Component, | ||
11 | // File, | ||
12 | // MustBeFromAnExtension, | ||
13 | //} | ||
14 | |||
15 | public static partial class TupleDefinitionsOriginal | ||
16 | { | ||
17 | public static readonly Version Version = new Version("4.0.0"); | ||
18 | |||
19 | public static IntermediateTupleDefinition ByName(string name) | ||
20 | { | ||
21 | if (!Enum.TryParse(name, out TupleDefinitionType type) || type == TupleDefinitionType.MustBeFromAnExtension) | ||
22 | { | ||
23 | return null; | ||
24 | } | ||
25 | |||
26 | return ByType(type); | ||
27 | } | ||
28 | |||
29 | public static IntermediateTupleDefinition ByType(TupleDefinitionType type) | ||
30 | { | ||
31 | switch (type) | ||
32 | { | ||
33 | //case TupleDefinitionType.Component: | ||
34 | // return TupleDefinitions.Component; | ||
35 | |||
36 | //case TupleDefinitionType.File: | ||
37 | // return TupleDefinitions.File; | ||
38 | |||
39 | default: | ||
40 | throw new ArgumentOutOfRangeException(nameof(type)); | ||
41 | } | ||
42 | } | ||
43 | |||
44 | //public static T CreateTuple<T>() where T : IntermediateTuple | ||
45 | //{ | ||
46 | // if (TypeToName.TryGetValue(typeof(T), out var name)) | ||
47 | // { | ||
48 | // return ByName(name)?.CreateTuple<T>(); | ||
49 | // } | ||
50 | |||
51 | // return null; | ||
52 | //} | ||
53 | } | ||
54 | } | ||
55 | #endif | ||
diff --git a/src/WixToolset.Data/Tuples/_StreamsTuple.cs b/src/WixToolset.Data/Tuples/_StreamsTuple.cs new file mode 100644 index 00000000..1f9d75e8 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_StreamsTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition _Streams = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType._Streams, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(_StreamsTupleFields.Name), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(_StreamsTupleFields.Data), IntermediateFieldType.Path), | ||
15 | }, | ||
16 | typeof(_StreamsTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum _StreamsTupleFields | ||
23 | { | ||
24 | Name, | ||
25 | Data, | ||
26 | } | ||
27 | |||
28 | public class _StreamsTuple : IntermediateTuple | ||
29 | { | ||
30 | public _StreamsTuple() : base(TupleDefinitions._Streams, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public _StreamsTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._Streams, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[_StreamsTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public string Name | ||
41 | { | ||
42 | get => (string)this.Fields[(int)_StreamsTupleFields.Name]?.Value; | ||
43 | set => this.Set((int)_StreamsTupleFields.Name, value); | ||
44 | } | ||
45 | |||
46 | public string Data | ||
47 | { | ||
48 | get => (string)this.Fields[(int)_StreamsTupleFields.Data]?.Value; | ||
49 | set => this.Set((int)_StreamsTupleFields.Data, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs new file mode 100644 index 00000000..4ce3b63f --- /dev/null +++ b/src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs | |||
@@ -0,0 +1,52 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition _SummaryInformation = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType._SummaryInformation, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(_SummaryInformationTupleFields.PropertyId), IntermediateFieldType.Number), | ||
14 | new IntermediateFieldDefinition(nameof(_SummaryInformationTupleFields.Value), IntermediateFieldType.String), | ||
15 | }, | ||
16 | typeof(_SummaryInformationTuple)); | ||
17 | } | ||
18 | } | ||
19 | |||
20 | namespace WixToolset.Data.Tuples | ||
21 | { | ||
22 | public enum _SummaryInformationTupleFields | ||
23 | { | ||
24 | PropertyId, | ||
25 | Value, | ||
26 | } | ||
27 | |||
28 | public class _SummaryInformationTuple : IntermediateTuple | ||
29 | { | ||
30 | public _SummaryInformationTuple() : base(TupleDefinitions._SummaryInformation, null, null) | ||
31 | { | ||
32 | } | ||
33 | |||
34 | public _SummaryInformationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._SummaryInformation, sourceLineNumber, id) | ||
35 | { | ||
36 | } | ||
37 | |||
38 | public IntermediateField this[_SummaryInformationTupleFields index] => this.Fields[(int)index]; | ||
39 | |||
40 | public int PropertyId | ||
41 | { | ||
42 | get => (int)this.Fields[(int)_SummaryInformationTupleFields.PropertyId]?.Value; | ||
43 | set => this.Set((int)_SummaryInformationTupleFields.PropertyId, value); | ||
44 | } | ||
45 | |||
46 | public string Value | ||
47 | { | ||
48 | get => (string)this.Fields[(int)_SummaryInformationTupleFields.Value]?.Value; | ||
49 | set => this.Set((int)_SummaryInformationTupleFields.Value, value); | ||
50 | } | ||
51 | } | ||
52 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/_TransformViewTuple.cs b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs new file mode 100644 index 00000000..e3355062 --- /dev/null +++ b/src/WixToolset.Data/Tuples/_TransformViewTuple.cs | |||
@@ -0,0 +1,76 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition _TransformView = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType._TransformView, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Column), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Row), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Data), IntermediateFieldType.String), | ||
17 | new IntermediateFieldDefinition(nameof(_TransformViewTupleFields.Current), IntermediateFieldType.String), | ||
18 | }, | ||
19 | typeof(_TransformViewTuple)); | ||
20 | } | ||
21 | } | ||
22 | |||
23 | namespace WixToolset.Data.Tuples | ||
24 | { | ||
25 | public enum _TransformViewTupleFields | ||
26 | { | ||
27 | Table, | ||
28 | Column, | ||
29 | Row, | ||
30 | Data, | ||
31 | Current, | ||
32 | } | ||
33 | |||
34 | public class _TransformViewTuple : IntermediateTuple | ||
35 | { | ||
36 | public _TransformViewTuple() : base(TupleDefinitions._TransformView, null, null) | ||
37 | { | ||
38 | } | ||
39 | |||
40 | public _TransformViewTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._TransformView, sourceLineNumber, id) | ||
41 | { | ||
42 | } | ||
43 | |||
44 | public IntermediateField this[_TransformViewTupleFields index] => this.Fields[(int)index]; | ||
45 | |||
46 | public string Table | ||
47 | { | ||
48 | get => (string)this.Fields[(int)_TransformViewTupleFields.Table]?.Value; | ||
49 | set => this.Set((int)_TransformViewTupleFields.Table, value); | ||
50 | } | ||
51 | |||
52 | public string Column | ||
53 | { | ||
54 | get => (string)this.Fields[(int)_TransformViewTupleFields.Column]?.Value; | ||
55 | set => this.Set((int)_TransformViewTupleFields.Column, value); | ||
56 | } | ||
57 | |||
58 | public string Row | ||
59 | { | ||
60 | get => (string)this.Fields[(int)_TransformViewTupleFields.Row]?.Value; | ||
61 | set => this.Set((int)_TransformViewTupleFields.Row, value); | ||
62 | } | ||
63 | |||
64 | public string Data | ||
65 | { | ||
66 | get => (string)this.Fields[(int)_TransformViewTupleFields.Data]?.Value; | ||
67 | set => this.Set((int)_TransformViewTupleFields.Data, value); | ||
68 | } | ||
69 | |||
70 | public string Current | ||
71 | { | ||
72 | get => (string)this.Fields[(int)_TransformViewTupleFields.Current]?.Value; | ||
73 | set => this.Set((int)_TransformViewTupleFields.Current, value); | ||
74 | } | ||
75 | } | ||
76 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/_ValidationTuple.cs b/src/WixToolset.Data/Tuples/_ValidationTuple.cs new file mode 100644 index 00000000..3bcd064c --- /dev/null +++ b/src/WixToolset.Data/Tuples/_ValidationTuple.cs | |||
@@ -0,0 +1,116 @@ | |||
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.Tuples; | ||
6 | |||
7 | public static partial class TupleDefinitions | ||
8 | { | ||
9 | public static readonly IntermediateTupleDefinition _Validation = new IntermediateTupleDefinition( | ||
10 | TupleDefinitionType._Validation, | ||
11 | new[] | ||
12 | { | ||
13 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Table), IntermediateFieldType.String), | ||
14 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Column), IntermediateFieldType.String), | ||
15 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Nullable), IntermediateFieldType.String), | ||
16 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.MinValue), IntermediateFieldType.Number), | ||
17 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.MaxValue), IntermediateFieldType.Number), | ||
18 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.KeyTable), IntermediateFieldType.String), | ||
19 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.KeyColumn), IntermediateFieldType.Number), | ||
20 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Category), IntermediateFieldType.String), | ||
21 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Set), IntermediateFieldType.String), | ||
22 | new IntermediateFieldDefinition(nameof(_ValidationTupleFields.Description), IntermediateFieldType.String), | ||
23 | }, | ||
24 | typeof(_ValidationTuple)); | ||
25 | } | ||
26 | } | ||
27 | |||
28 | namespace WixToolset.Data.Tuples | ||
29 | { | ||
30 | public enum _ValidationTupleFields | ||
31 | { | ||
32 | Table, | ||
33 | Column, | ||
34 | Nullable, | ||
35 | MinValue, | ||
36 | MaxValue, | ||
37 | KeyTable, | ||
38 | KeyColumn, | ||
39 | Category, | ||
40 | Set, | ||
41 | Description, | ||
42 | } | ||
43 | |||
44 | public class _ValidationTuple : IntermediateTuple | ||
45 | { | ||
46 | public _ValidationTuple() : base(TupleDefinitions._Validation, null, null) | ||
47 | { | ||
48 | } | ||
49 | |||
50 | public _ValidationTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions._Validation, sourceLineNumber, id) | ||
51 | { | ||
52 | } | ||
53 | |||
54 | public IntermediateField this[_ValidationTupleFields index] => this.Fields[(int)index]; | ||
55 | |||
56 | public string Table | ||
57 | { | ||
58 | get => (string)this.Fields[(int)_ValidationTupleFields.Table]?.Value; | ||
59 | set => this.Set((int)_ValidationTupleFields.Table, value); | ||
60 | } | ||
61 | |||
62 | public string Column | ||
63 | { | ||
64 | get => (string)this.Fields[(int)_ValidationTupleFields.Column]?.Value; | ||
65 | set => this.Set((int)_ValidationTupleFields.Column, value); | ||
66 | } | ||
67 | |||
68 | public string Nullable | ||
69 | { | ||
70 | get => (string)this.Fields[(int)_ValidationTupleFields.Nullable]?.Value; | ||
71 | set => this.Set((int)_ValidationTupleFields.Nullable, value); | ||
72 | } | ||
73 | |||
74 | public int MinValue | ||
75 | { | ||
76 | get => (int)this.Fields[(int)_ValidationTupleFields.MinValue]?.Value; | ||
77 | set => this.Set((int)_ValidationTupleFields.MinValue, value); | ||
78 | } | ||
79 | |||
80 | public int MaxValue | ||
81 | { | ||
82 | get => (int)this.Fields[(int)_ValidationTupleFields.MaxValue]?.Value; | ||
83 | set => this.Set((int)_ValidationTupleFields.MaxValue, value); | ||
84 | } | ||
85 | |||
86 | public string KeyTable | ||
87 | { | ||
88 | get => (string)this.Fields[(int)_ValidationTupleFields.KeyTable]?.Value; | ||
89 | set => this.Set((int)_ValidationTupleFields.KeyTable, value); | ||
90 | } | ||
91 | |||
92 | public int KeyColumn | ||
93 | { | ||
94 | get => (int)this.Fields[(int)_ValidationTupleFields.KeyColumn]?.Value; | ||
95 | set => this.Set((int)_ValidationTupleFields.KeyColumn, value); | ||
96 | } | ||
97 | |||
98 | public string Category | ||
99 | { | ||
100 | get => (string)this.Fields[(int)_ValidationTupleFields.Category]?.Value; | ||
101 | set => this.Set((int)_ValidationTupleFields.Category, value); | ||
102 | } | ||
103 | |||
104 | public string Set | ||
105 | { | ||
106 | get => (string)this.Fields[(int)_ValidationTupleFields.Set]?.Value; | ||
107 | set => this.Set((int)_ValidationTupleFields.Set, value); | ||
108 | } | ||
109 | |||
110 | public string Description | ||
111 | { | ||
112 | get => (string)this.Fields[(int)_ValidationTupleFields.Description]?.Value; | ||
113 | set => this.Set((int)_ValidationTupleFields.Description, value); | ||
114 | } | ||
115 | } | ||
116 | } \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/Tuples/tuples_new.json b/src/WixToolset.Data/Tuples/tuples_new.json new file mode 100644 index 00000000..9386058c --- /dev/null +++ b/src/WixToolset.Data/Tuples/tuples_new.json | |||
@@ -0,0 +1,3604 @@ | |||
1 | [ | ||
2 | { | ||
3 | "_Streams": [ | ||
4 | { | ||
5 | "Name": "string" | ||
6 | }, | ||
7 | { | ||
8 | "Data": "path" | ||
9 | } | ||
10 | ] | ||
11 | }, | ||
12 | { | ||
13 | "_SummaryInformation": [ | ||
14 | { | ||
15 | "PropertyId": "number" | ||
16 | }, | ||
17 | { | ||
18 | "Value": "string" | ||
19 | } | ||
20 | ] | ||
21 | }, | ||
22 | { | ||
23 | "_TransformView": [ | ||
24 | { | ||
25 | "Table": "string" | ||
26 | }, | ||
27 | { | ||
28 | "Column": "string" | ||
29 | }, | ||
30 | { | ||
31 | "Row": "string" | ||
32 | }, | ||
33 | { | ||
34 | "Data": "string" | ||
35 | }, | ||
36 | { | ||
37 | "Current": "string" | ||
38 | } | ||
39 | ] | ||
40 | }, | ||
41 | { | ||
42 | "_Validation": [ | ||
43 | { | ||
44 | "Table": "string" | ||
45 | }, | ||
46 | { | ||
47 | "Column": "string" | ||
48 | }, | ||
49 | { | ||
50 | "Nullable": "string" | ||
51 | }, | ||
52 | { | ||
53 | "MinValue": "number" | ||
54 | }, | ||
55 | { | ||
56 | "MaxValue": "number" | ||
57 | }, | ||
58 | { | ||
59 | "KeyTable": "string" | ||
60 | }, | ||
61 | { | ||
62 | "KeyColumn": "number" | ||
63 | }, | ||
64 | { | ||
65 | "Category": "string" | ||
66 | }, | ||
67 | { | ||
68 | "Set": "string" | ||
69 | }, | ||
70 | { | ||
71 | "Description": "string" | ||
72 | } | ||
73 | ] | ||
74 | }, | ||
75 | { | ||
76 | "ActionText": [ | ||
77 | { | ||
78 | "Action": "string" | ||
79 | }, | ||
80 | { | ||
81 | "Description": "string" | ||
82 | }, | ||
83 | { | ||
84 | "Template": "string" | ||
85 | } | ||
86 | ] | ||
87 | }, | ||
88 | { | ||
89 | "AdminExecuteSequence": [ | ||
90 | { | ||
91 | "Action": "string" | ||
92 | }, | ||
93 | { | ||
94 | "Condition": "string" | ||
95 | }, | ||
96 | { | ||
97 | "Sequence": "number" | ||
98 | } | ||
99 | ] | ||
100 | }, | ||
101 | { | ||
102 | "AdminUISequence": [ | ||
103 | { | ||
104 | "Action": "string" | ||
105 | }, | ||
106 | { | ||
107 | "Condition": "string" | ||
108 | }, | ||
109 | { | ||
110 | "Sequence": "number" | ||
111 | } | ||
112 | ] | ||
113 | }, | ||
114 | { | ||
115 | "AdvtExecuteSequence": [ | ||
116 | { | ||
117 | "Action": "string" | ||
118 | }, | ||
119 | { | ||
120 | "Condition": "string" | ||
121 | }, | ||
122 | { | ||
123 | "Sequence": "number" | ||
124 | } | ||
125 | ] | ||
126 | }, | ||
127 | { | ||
128 | "AdvtUISequence": [ | ||
129 | { | ||
130 | "Action": "string" | ||
131 | }, | ||
132 | { | ||
133 | "Condition": "string" | ||
134 | }, | ||
135 | { | ||
136 | "Sequence": "number" | ||
137 | } | ||
138 | ] | ||
139 | }, | ||
140 | { | ||
141 | "AppId": [ | ||
142 | { | ||
143 | "AppId": "string" | ||
144 | }, | ||
145 | { | ||
146 | "RemoteServerName": "string" | ||
147 | }, | ||
148 | { | ||
149 | "LocalService": "string" | ||
150 | }, | ||
151 | { | ||
152 | "ServiceParameters": "string" | ||
153 | }, | ||
154 | { | ||
155 | "DllSurrogate": "string" | ||
156 | }, | ||
157 | { | ||
158 | "ActivateAtStorage": "number" | ||
159 | }, | ||
160 | { | ||
161 | "RunAsInteractiveUser": "number" | ||
162 | } | ||
163 | ] | ||
164 | }, | ||
165 | { | ||
166 | "AppSearch": [ | ||
167 | { | ||
168 | "Property": "string" | ||
169 | }, | ||
170 | { | ||
171 | "Signature_": "string" | ||
172 | } | ||
173 | ] | ||
174 | }, | ||
175 | { | ||
176 | "BBControl": [ | ||
177 | { | ||
178 | "Billboard_": "string" | ||
179 | }, | ||
180 | { | ||
181 | "BBControl": "string" | ||
182 | }, | ||
183 | { | ||
184 | "Type": "string" | ||
185 | }, | ||
186 | { | ||
187 | "X": "number" | ||
188 | }, | ||
189 | { | ||
190 | "Y": "number" | ||
191 | }, | ||
192 | { | ||
193 | "Width": "number" | ||
194 | }, | ||
195 | { | ||
196 | "Height": "number" | ||
197 | }, | ||
198 | { | ||
199 | "Attributes": "number" | ||
200 | }, | ||
201 | { | ||
202 | "Text": "string" | ||
203 | } | ||
204 | ] | ||
205 | }, | ||
206 | { | ||
207 | "Billboard": [ | ||
208 | { | ||
209 | "Billboard": "string" | ||
210 | }, | ||
211 | { | ||
212 | "Feature_": "string" | ||
213 | }, | ||
214 | { | ||
215 | "Action": "string" | ||
216 | }, | ||
217 | { | ||
218 | "Ordering": "number" | ||
219 | } | ||
220 | ] | ||
221 | }, | ||
222 | { | ||
223 | "Binary": [ | ||
224 | { | ||
225 | "Name": "string" | ||
226 | }, | ||
227 | { | ||
228 | "Data": "path" | ||
229 | } | ||
230 | ] | ||
231 | }, | ||
232 | { | ||
233 | "BindImage": [ | ||
234 | { | ||
235 | "File_": "string" | ||
236 | }, | ||
237 | { | ||
238 | "Path": "string" | ||
239 | } | ||
240 | ] | ||
241 | }, | ||
242 | { | ||
243 | "CCPSearch": [ | ||
244 | { | ||
245 | "Signature_": "string" | ||
246 | } | ||
247 | ] | ||
248 | }, | ||
249 | { | ||
250 | "CheckBox": [ | ||
251 | { | ||
252 | "Property": "string" | ||
253 | }, | ||
254 | { | ||
255 | "Value": "string" | ||
256 | } | ||
257 | ] | ||
258 | }, | ||
259 | { | ||
260 | "Class": [ | ||
261 | { | ||
262 | "CLSID": "string" | ||
263 | }, | ||
264 | { | ||
265 | "Context": "string" | ||
266 | }, | ||
267 | { | ||
268 | "Component_": "string" | ||
269 | }, | ||
270 | { | ||
271 | "ProgId_Default": "string" | ||
272 | }, | ||
273 | { | ||
274 | "Description": "string" | ||
275 | }, | ||
276 | { | ||
277 | "AppId_": "string" | ||
278 | }, | ||
279 | { | ||
280 | "FileTypeMask": "string" | ||
281 | }, | ||
282 | { | ||
283 | "Icon_": "string" | ||
284 | }, | ||
285 | { | ||
286 | "IconIndex": "number" | ||
287 | }, | ||
288 | { | ||
289 | "DefInprocHandler": "string" | ||
290 | }, | ||
291 | { | ||
292 | "Argument": "string" | ||
293 | }, | ||
294 | { | ||
295 | "Feature_": "string" | ||
296 | }, | ||
297 | { | ||
298 | "Attributes": "number" | ||
299 | } | ||
300 | ] | ||
301 | }, | ||
302 | { | ||
303 | "ComboBox": [ | ||
304 | { | ||
305 | "Property": "string" | ||
306 | }, | ||
307 | { | ||
308 | "Order": "number" | ||
309 | }, | ||
310 | { | ||
311 | "Value": "string" | ||
312 | }, | ||
313 | { | ||
314 | "Text": "string" | ||
315 | } | ||
316 | ] | ||
317 | }, | ||
318 | { | ||
319 | "CompLocator": [ | ||
320 | { | ||
321 | "Signature_": "string" | ||
322 | }, | ||
323 | { | ||
324 | "ComponentId": "string" | ||
325 | }, | ||
326 | { | ||
327 | "Type": "number" | ||
328 | } | ||
329 | ] | ||
330 | }, | ||
331 | { | ||
332 | "Complus": [ | ||
333 | { | ||
334 | "Component_": "string" | ||
335 | }, | ||
336 | { | ||
337 | "ExpType": "number" | ||
338 | } | ||
339 | ] | ||
340 | }, | ||
341 | { | ||
342 | "Component": [ | ||
343 | { | ||
344 | "Component": "string" | ||
345 | }, | ||
346 | { | ||
347 | "ComponentId": "string" | ||
348 | }, | ||
349 | { | ||
350 | "Directory_": "string" | ||
351 | }, | ||
352 | { | ||
353 | "Attributes": "number" | ||
354 | }, | ||
355 | { | ||
356 | "Condition": "string" | ||
357 | }, | ||
358 | { | ||
359 | "KeyPath": "string" | ||
360 | } | ||
361 | ] | ||
362 | }, | ||
363 | { | ||
364 | "Condition": [ | ||
365 | { | ||
366 | "Feature_": "string" | ||
367 | }, | ||
368 | { | ||
369 | "Level": "number" | ||
370 | }, | ||
371 | { | ||
372 | "Condition": "string" | ||
373 | } | ||
374 | ] | ||
375 | }, | ||
376 | { | ||
377 | "Control": [ | ||
378 | { | ||
379 | "Dialog_": "string" | ||
380 | }, | ||
381 | { | ||
382 | "Control": "string" | ||
383 | }, | ||
384 | { | ||
385 | "Type": "string" | ||
386 | }, | ||
387 | { | ||
388 | "X": "number" | ||
389 | }, | ||
390 | { | ||
391 | "Y": "number" | ||
392 | }, | ||
393 | { | ||
394 | "Width": "number" | ||
395 | }, | ||
396 | { | ||
397 | "Height": "number" | ||
398 | }, | ||
399 | { | ||
400 | "Attributes": "number" | ||
401 | }, | ||
402 | { | ||
403 | "Property": "string" | ||
404 | }, | ||
405 | { | ||
406 | "Text": "string" | ||
407 | }, | ||
408 | { | ||
409 | "Control_Next": "string" | ||
410 | }, | ||
411 | { | ||
412 | "Help": "string" | ||
413 | } | ||
414 | ] | ||
415 | }, | ||
416 | { | ||
417 | "ControlCondition": [ | ||
418 | { | ||
419 | "Dialog_": "string" | ||
420 | }, | ||
421 | { | ||
422 | "Control_": "string" | ||
423 | }, | ||
424 | { | ||
425 | "Action": "string" | ||
426 | }, | ||
427 | { | ||
428 | "Condition": "string" | ||
429 | } | ||
430 | ] | ||
431 | }, | ||
432 | { | ||
433 | "ControlEvent": [ | ||
434 | { | ||
435 | "Dialog_": "string" | ||
436 | }, | ||
437 | { | ||
438 | "Control_": "string" | ||
439 | }, | ||
440 | { | ||
441 | "Event": "string" | ||
442 | }, | ||
443 | { | ||
444 | "Argument": "string" | ||
445 | }, | ||
446 | { | ||
447 | "Condition": "string" | ||
448 | }, | ||
449 | { | ||
450 | "Ordering": "number" | ||
451 | } | ||
452 | ] | ||
453 | }, | ||
454 | { | ||
455 | "CreateFolder": [ | ||
456 | { | ||
457 | "Directory_": "string" | ||
458 | }, | ||
459 | { | ||
460 | "Component_": "string" | ||
461 | } | ||
462 | ] | ||
463 | }, | ||
464 | { | ||
465 | "CustomAction": [ | ||
466 | { | ||
467 | "Action": "string" | ||
468 | }, | ||
469 | { | ||
470 | "Type": "number" | ||
471 | }, | ||
472 | { | ||
473 | "Source": "string" | ||
474 | }, | ||
475 | { | ||
476 | "Target": "string" | ||
477 | }, | ||
478 | { | ||
479 | "ExtendedType": "number" | ||
480 | } | ||
481 | ] | ||
482 | }, | ||
483 | { | ||
484 | "Dialog": [ | ||
485 | { | ||
486 | "Dialog": "string" | ||
487 | }, | ||
488 | { | ||
489 | "HCentering": "number" | ||
490 | }, | ||
491 | { | ||
492 | "VCentering": "number" | ||
493 | }, | ||
494 | { | ||
495 | "Width": "number" | ||
496 | }, | ||
497 | { | ||
498 | "Height": "number" | ||
499 | }, | ||
500 | { | ||
501 | "Attributes": "number" | ||
502 | }, | ||
503 | { | ||
504 | "Title": "string" | ||
505 | }, | ||
506 | { | ||
507 | "Control_First": "string" | ||
508 | }, | ||
509 | { | ||
510 | "Control_Default": "string" | ||
511 | }, | ||
512 | { | ||
513 | "Control_Cancel": "string" | ||
514 | } | ||
515 | ] | ||
516 | }, | ||
517 | { | ||
518 | "Directory": [ | ||
519 | { | ||
520 | "Directory": "string" | ||
521 | }, | ||
522 | { | ||
523 | "Directory_Parent": "string" | ||
524 | }, | ||
525 | { | ||
526 | "DefaultDir": "string" | ||
527 | } | ||
528 | ] | ||
529 | }, | ||
530 | { | ||
531 | "DrLocator": [ | ||
532 | { | ||
533 | "Signature_": "string" | ||
534 | }, | ||
535 | { | ||
536 | "Parent": "string" | ||
537 | }, | ||
538 | { | ||
539 | "Path": "string" | ||
540 | }, | ||
541 | { | ||
542 | "Depth": "number" | ||
543 | } | ||
544 | ] | ||
545 | }, | ||
546 | { | ||
547 | "DuplicateFile": [ | ||
548 | { | ||
549 | "FileKey": "string" | ||
550 | }, | ||
551 | { | ||
552 | "Component_": "string" | ||
553 | }, | ||
554 | { | ||
555 | "File_": "string" | ||
556 | }, | ||
557 | { | ||
558 | "DestName": "string" | ||
559 | }, | ||
560 | { | ||
561 | "DestFolder": "string" | ||
562 | } | ||
563 | ] | ||
564 | }, | ||
565 | { | ||
566 | "Environment": [ | ||
567 | { | ||
568 | "Environment": "string" | ||
569 | }, | ||
570 | { | ||
571 | "Name": "string" | ||
572 | }, | ||
573 | { | ||
574 | "Value": "string" | ||
575 | }, | ||
576 | { | ||
577 | "Component_": "string" | ||
578 | } | ||
579 | ] | ||
580 | }, | ||
581 | { | ||
582 | "Error": [ | ||
583 | { | ||
584 | "Error": "number" | ||
585 | }, | ||
586 | { | ||
587 | "Message": "string" | ||
588 | } | ||
589 | ] | ||
590 | }, | ||
591 | { | ||
592 | "EventMapping": [ | ||
593 | { | ||
594 | "Dialog_": "string" | ||
595 | }, | ||
596 | { | ||
597 | "Control_": "string" | ||
598 | }, | ||
599 | { | ||
600 | "Event": "string" | ||
601 | }, | ||
602 | { | ||
603 | "Attribute": "string" | ||
604 | } | ||
605 | ] | ||
606 | }, | ||
607 | { | ||
608 | "Extension": [ | ||
609 | { | ||
610 | "Extension": "string" | ||
611 | }, | ||
612 | { | ||
613 | "Component_": "string" | ||
614 | }, | ||
615 | { | ||
616 | "ProgId_": "string" | ||
617 | }, | ||
618 | { | ||
619 | "MIME_": "string" | ||
620 | }, | ||
621 | { | ||
622 | "Feature_": "string" | ||
623 | } | ||
624 | ] | ||
625 | }, | ||
626 | { | ||
627 | "ExternalFiles": [ | ||
628 | { | ||
629 | "Family": "string" | ||
630 | }, | ||
631 | { | ||
632 | "FTK": "string" | ||
633 | }, | ||
634 | { | ||
635 | "FilePath": "string" | ||
636 | }, | ||
637 | { | ||
638 | "SymbolPaths": "string" | ||
639 | }, | ||
640 | { | ||
641 | "IgnoreOffsets": "string" | ||
642 | }, | ||
643 | { | ||
644 | "IgnoreLengths": "string" | ||
645 | }, | ||
646 | { | ||
647 | "RetainOffsets": "string" | ||
648 | }, | ||
649 | { | ||
650 | "Order": "number" | ||
651 | } | ||
652 | ] | ||
653 | }, | ||
654 | { | ||
655 | "FamilyFileRanges": [ | ||
656 | { | ||
657 | "Family": "string" | ||
658 | }, | ||
659 | { | ||
660 | "FTK": "string" | ||
661 | }, | ||
662 | { | ||
663 | "RetainOffsets": "string" | ||
664 | }, | ||
665 | { | ||
666 | "RetainLengths": "string" | ||
667 | } | ||
668 | ] | ||
669 | }, | ||
670 | { | ||
671 | "Feature": [ | ||
672 | { | ||
673 | "Feature": "string" | ||
674 | }, | ||
675 | { | ||
676 | "Feature_Parent": "string" | ||
677 | }, | ||
678 | { | ||
679 | "Title": "string" | ||
680 | }, | ||
681 | { | ||
682 | "Description": "string" | ||
683 | }, | ||
684 | { | ||
685 | "Display": "number" | ||
686 | }, | ||
687 | { | ||
688 | "Level": "number" | ||
689 | }, | ||
690 | { | ||
691 | "Directory_": "string" | ||
692 | }, | ||
693 | { | ||
694 | "Attributes": "number" | ||
695 | } | ||
696 | ] | ||
697 | }, | ||
698 | { | ||
699 | "FeatureComponents": [ | ||
700 | { | ||
701 | "Feature_": "string" | ||
702 | }, | ||
703 | { | ||
704 | "Component_": "string" | ||
705 | } | ||
706 | ] | ||
707 | }, | ||
708 | { | ||
709 | "File": [ | ||
710 | { | ||
711 | "File": "string" | ||
712 | }, | ||
713 | { | ||
714 | "Component_": "string" | ||
715 | }, | ||
716 | { | ||
717 | "FileName": "string" | ||
718 | }, | ||
719 | { | ||
720 | "FileSize": "number" | ||
721 | }, | ||
722 | { | ||
723 | "Version": "string" | ||
724 | }, | ||
725 | { | ||
726 | "Language": "string" | ||
727 | }, | ||
728 | { | ||
729 | "Attributes": "number" | ||
730 | }, | ||
731 | { | ||
732 | "Sequence": "number" | ||
733 | } | ||
734 | ] | ||
735 | }, | ||
736 | { | ||
737 | "FileSFPCatalog": [ | ||
738 | { | ||
739 | "File_": "string" | ||
740 | }, | ||
741 | { | ||
742 | "SFPCatalog_": "string" | ||
743 | } | ||
744 | ] | ||
745 | }, | ||
746 | { | ||
747 | "Font": [ | ||
748 | { | ||
749 | "File_": "string" | ||
750 | }, | ||
751 | { | ||
752 | "FontTitle": "string" | ||
753 | } | ||
754 | ] | ||
755 | }, | ||
756 | { | ||
757 | "Icon": [ | ||
758 | { | ||
759 | "Name": "string" | ||
760 | }, | ||
761 | { | ||
762 | "Data": "path" | ||
763 | } | ||
764 | ] | ||
765 | }, | ||
766 | { | ||
767 | "ImageFamilies": [ | ||
768 | { | ||
769 | "Family": "string" | ||
770 | }, | ||
771 | { | ||
772 | "MediaSrcPropName": "string" | ||
773 | }, | ||
774 | { | ||
775 | "MediaDiskId": "number" | ||
776 | }, | ||
777 | { | ||
778 | "FileSequenceStart": "number" | ||
779 | }, | ||
780 | { | ||
781 | "DiskPrompt": "string" | ||
782 | }, | ||
783 | { | ||
784 | "VolumeLabel": "string" | ||
785 | } | ||
786 | ] | ||
787 | }, | ||
788 | { | ||
789 | "IniFile": [ | ||
790 | { | ||
791 | "IniFile": "string" | ||
792 | }, | ||
793 | { | ||
794 | "FileName": "string" | ||
795 | }, | ||
796 | { | ||
797 | "DirProperty": "string" | ||
798 | }, | ||
799 | { | ||
800 | "Section": "string" | ||
801 | }, | ||
802 | { | ||
803 | "Key": "string" | ||
804 | }, | ||
805 | { | ||
806 | "Value": "string" | ||
807 | }, | ||
808 | { | ||
809 | "Action": "number" | ||
810 | }, | ||
811 | { | ||
812 | "Component_": "string" | ||
813 | } | ||
814 | ] | ||
815 | }, | ||
816 | { | ||
817 | "IniLocator": [ | ||
818 | { | ||
819 | "Signature_": "string" | ||
820 | }, | ||
821 | { | ||
822 | "FileName": "string" | ||
823 | }, | ||
824 | { | ||
825 | "Section": "string" | ||
826 | }, | ||
827 | { | ||
828 | "Key": "string" | ||
829 | }, | ||
830 | { | ||
831 | "Field": "number" | ||
832 | }, | ||
833 | { | ||
834 | "Type": "number" | ||
835 | } | ||
836 | ] | ||
837 | }, | ||
838 | { | ||
839 | "InstallExecuteSequence": [ | ||
840 | { | ||
841 | "Action": "string" | ||
842 | }, | ||
843 | { | ||
844 | "Condition": "string" | ||
845 | }, | ||
846 | { | ||
847 | "Sequence": "number" | ||
848 | } | ||
849 | ] | ||
850 | }, | ||
851 | { | ||
852 | "InstallUISequence": [ | ||
853 | { | ||
854 | "Action": "string" | ||
855 | }, | ||
856 | { | ||
857 | "Condition": "string" | ||
858 | }, | ||
859 | { | ||
860 | "Sequence": "number" | ||
861 | } | ||
862 | ] | ||
863 | }, | ||
864 | { | ||
865 | "IsolatedComponent": [ | ||
866 | { | ||
867 | "Component_Shared": "string" | ||
868 | }, | ||
869 | { | ||
870 | "Component_Application": "string" | ||
871 | } | ||
872 | ] | ||
873 | }, | ||
874 | { | ||
875 | "LaunchCondition": [ | ||
876 | { | ||
877 | "Condition": "string" | ||
878 | }, | ||
879 | { | ||
880 | "Description": "string" | ||
881 | } | ||
882 | ] | ||
883 | }, | ||
884 | { | ||
885 | "ListBox": [ | ||
886 | { | ||
887 | "Property": "string" | ||
888 | }, | ||
889 | { | ||
890 | "Order": "number" | ||
891 | }, | ||
892 | { | ||
893 | "Value": "string" | ||
894 | }, | ||
895 | { | ||
896 | "Text": "string" | ||
897 | } | ||
898 | ] | ||
899 | }, | ||
900 | { | ||
901 | "ListView": [ | ||
902 | { | ||
903 | "Property": "string" | ||
904 | }, | ||
905 | { | ||
906 | "Order": "number" | ||
907 | }, | ||
908 | { | ||
909 | "Value": "string" | ||
910 | }, | ||
911 | { | ||
912 | "Text": "string" | ||
913 | }, | ||
914 | { | ||
915 | "Binary_": "string" | ||
916 | } | ||
917 | ] | ||
918 | }, | ||
919 | { | ||
920 | "LockPermissions": [ | ||
921 | { | ||
922 | "LockObject": "string" | ||
923 | }, | ||
924 | { | ||
925 | "Table": "string" | ||
926 | }, | ||
927 | { | ||
928 | "Domain": "string" | ||
929 | }, | ||
930 | { | ||
931 | "User": "string" | ||
932 | }, | ||
933 | { | ||
934 | "Permission": "number" | ||
935 | } | ||
936 | ] | ||
937 | }, | ||
938 | { | ||
939 | "Media": [ | ||
940 | { | ||
941 | "DiskId": "number" | ||
942 | }, | ||
943 | { | ||
944 | "LastSequence": "number" | ||
945 | }, | ||
946 | { | ||
947 | "DiskPrompt": "string" | ||
948 | }, | ||
949 | { | ||
950 | "Cabinet": "string" | ||
951 | }, | ||
952 | { | ||
953 | "VolumeLabel": "string" | ||
954 | }, | ||
955 | { | ||
956 | "Source": "string" | ||
957 | } | ||
958 | ] | ||
959 | }, | ||
960 | { | ||
961 | "MIME": [ | ||
962 | { | ||
963 | "ContentType": "string" | ||
964 | }, | ||
965 | { | ||
966 | "Extension_": "string" | ||
967 | }, | ||
968 | { | ||
969 | "CLSID": "string" | ||
970 | } | ||
971 | ] | ||
972 | }, | ||
973 | { | ||
974 | "ModuleAdminExecuteSequence": [ | ||
975 | { | ||
976 | "Action": "string" | ||
977 | }, | ||
978 | { | ||
979 | "Sequence": "number" | ||
980 | }, | ||
981 | { | ||
982 | "BaseAction": "string" | ||
983 | }, | ||
984 | { | ||
985 | "After": "number" | ||
986 | }, | ||
987 | { | ||
988 | "Condition": "string" | ||
989 | } | ||
990 | ] | ||
991 | }, | ||
992 | { | ||
993 | "ModuleAdminUISequence": [ | ||
994 | { | ||
995 | "Action": "string" | ||
996 | }, | ||
997 | { | ||
998 | "Sequence": "number" | ||
999 | }, | ||
1000 | { | ||
1001 | "BaseAction": "string" | ||
1002 | }, | ||
1003 | { | ||
1004 | "After": "number" | ||
1005 | }, | ||
1006 | { | ||
1007 | "Condition": "string" | ||
1008 | } | ||
1009 | ] | ||
1010 | }, | ||
1011 | { | ||
1012 | "ModuleAdvtExecuteSequence": [ | ||
1013 | { | ||
1014 | "Action": "string" | ||
1015 | }, | ||
1016 | { | ||
1017 | "Sequence": "number" | ||
1018 | }, | ||
1019 | { | ||
1020 | "BaseAction": "string" | ||
1021 | }, | ||
1022 | { | ||
1023 | "After": "number" | ||
1024 | }, | ||
1025 | { | ||
1026 | "Condition": "string" | ||
1027 | } | ||
1028 | ] | ||
1029 | }, | ||
1030 | { | ||
1031 | "ModuleAdvtUISequence": [ | ||
1032 | { | ||
1033 | "Action": "string" | ||
1034 | }, | ||
1035 | { | ||
1036 | "Sequence": "number" | ||
1037 | }, | ||
1038 | { | ||
1039 | "BaseAction": "string" | ||
1040 | }, | ||
1041 | { | ||
1042 | "After": "number" | ||
1043 | }, | ||
1044 | { | ||
1045 | "Condition": "string" | ||
1046 | } | ||
1047 | ] | ||
1048 | }, | ||
1049 | { | ||
1050 | "ModuleComponents": [ | ||
1051 | { | ||
1052 | "Component": "string" | ||
1053 | }, | ||
1054 | { | ||
1055 | "ModuleID": "string" | ||
1056 | }, | ||
1057 | { | ||
1058 | "Language": "number" | ||
1059 | } | ||
1060 | ] | ||
1061 | }, | ||
1062 | { | ||
1063 | "ModuleConfiguration": [ | ||
1064 | { | ||
1065 | "Name": "string" | ||
1066 | }, | ||
1067 | { | ||
1068 | "Format": "number" | ||
1069 | }, | ||
1070 | { | ||
1071 | "Type": "string" | ||
1072 | }, | ||
1073 | { | ||
1074 | "ContextData": "string" | ||
1075 | }, | ||
1076 | { | ||
1077 | "DefaultValue": "string" | ||
1078 | }, | ||
1079 | { | ||
1080 | "Attributes": "number" | ||
1081 | }, | ||
1082 | { | ||
1083 | "DisplayName": "string" | ||
1084 | }, | ||
1085 | { | ||
1086 | "Description": "string" | ||
1087 | }, | ||
1088 | { | ||
1089 | "HelpLocation": "string" | ||
1090 | }, | ||
1091 | { | ||
1092 | "HelpKeyword": "string" | ||
1093 | } | ||
1094 | ] | ||
1095 | }, | ||
1096 | { | ||
1097 | "ModuleDependency": [ | ||
1098 | { | ||
1099 | "ModuleID": "string" | ||
1100 | }, | ||
1101 | { | ||
1102 | "ModuleLanguage": "number" | ||
1103 | }, | ||
1104 | { | ||
1105 | "RequiredID": "string" | ||
1106 | }, | ||
1107 | { | ||
1108 | "RequiredLanguage": "number" | ||
1109 | }, | ||
1110 | { | ||
1111 | "RequiredVersion": "string" | ||
1112 | } | ||
1113 | ] | ||
1114 | }, | ||
1115 | { | ||
1116 | "ModuleExclusion": [ | ||
1117 | { | ||
1118 | "ModuleID": "string" | ||
1119 | }, | ||
1120 | { | ||
1121 | "ModuleLanguage": "number" | ||
1122 | }, | ||
1123 | { | ||
1124 | "ExcludedID": "string" | ||
1125 | }, | ||
1126 | { | ||
1127 | "ExcludedLanguage": "number" | ||
1128 | }, | ||
1129 | { | ||
1130 | "ExcludedMinVersion": "string" | ||
1131 | }, | ||
1132 | { | ||
1133 | "ExcludedMaxVersion": "string" | ||
1134 | } | ||
1135 | ] | ||
1136 | }, | ||
1137 | { | ||
1138 | "ModuleIgnoreTable": [ | ||
1139 | { | ||
1140 | "Table": "string" | ||
1141 | } | ||
1142 | ] | ||
1143 | }, | ||
1144 | { | ||
1145 | "ModuleInstallExecuteSequence": [ | ||
1146 | { | ||
1147 | "Action": "string" | ||
1148 | }, | ||
1149 | { | ||
1150 | "Sequence": "number" | ||
1151 | }, | ||
1152 | { | ||
1153 | "BaseAction": "string" | ||
1154 | }, | ||
1155 | { | ||
1156 | "After": "number" | ||
1157 | }, | ||
1158 | { | ||
1159 | "Condition": "string" | ||
1160 | } | ||
1161 | ] | ||
1162 | }, | ||
1163 | { | ||
1164 | "ModuleInstallUISequence": [ | ||
1165 | { | ||
1166 | "Action": "string" | ||
1167 | }, | ||
1168 | { | ||
1169 | "Sequence": "number" | ||
1170 | }, | ||
1171 | { | ||
1172 | "BaseAction": "string" | ||
1173 | }, | ||
1174 | { | ||
1175 | "After": "number" | ||
1176 | }, | ||
1177 | { | ||
1178 | "Condition": "string" | ||
1179 | } | ||
1180 | ] | ||
1181 | }, | ||
1182 | { | ||
1183 | "ModuleSignature": [ | ||
1184 | { | ||
1185 | "ModuleID": "string" | ||
1186 | }, | ||
1187 | { | ||
1188 | "Language": "number" | ||
1189 | }, | ||
1190 | { | ||
1191 | "Version": "string" | ||
1192 | } | ||
1193 | ] | ||
1194 | }, | ||
1195 | { | ||
1196 | "ModuleSubstitution": [ | ||
1197 | { | ||
1198 | "Table": "string" | ||
1199 | }, | ||
1200 | { | ||
1201 | "Row": "string" | ||
1202 | }, | ||
1203 | { | ||
1204 | "Column": "string" | ||
1205 | }, | ||
1206 | { | ||
1207 | "Value": "string" | ||
1208 | } | ||
1209 | ] | ||
1210 | }, | ||
1211 | { | ||
1212 | "MoveFile": [ | ||
1213 | { | ||
1214 | "FileKey": "string" | ||
1215 | }, | ||
1216 | { | ||
1217 | "Component_": "string" | ||
1218 | }, | ||
1219 | { | ||
1220 | "SourceName": "string" | ||
1221 | }, | ||
1222 | { | ||
1223 | "DestName": "string" | ||
1224 | }, | ||
1225 | { | ||
1226 | "SourceFolder": "string" | ||
1227 | }, | ||
1228 | { | ||
1229 | "DestFolder": "string" | ||
1230 | }, | ||
1231 | { | ||
1232 | "Options": "number" | ||
1233 | } | ||
1234 | ] | ||
1235 | }, | ||
1236 | { | ||
1237 | "MsiAssembly": [ | ||
1238 | { | ||
1239 | "Component_": "string" | ||
1240 | }, | ||
1241 | { | ||
1242 | "Feature_": "string" | ||
1243 | }, | ||
1244 | { | ||
1245 | "File_Manifest": "string" | ||
1246 | }, | ||
1247 | { | ||
1248 | "File_Application": "string" | ||
1249 | }, | ||
1250 | { | ||
1251 | "Attributes": "number" | ||
1252 | } | ||
1253 | ] | ||
1254 | }, | ||
1255 | { | ||
1256 | "MsiAssemblyName": [ | ||
1257 | { | ||
1258 | "Component_": "string" | ||
1259 | }, | ||
1260 | { | ||
1261 | "Name": "string" | ||
1262 | }, | ||
1263 | { | ||
1264 | "Value": "string" | ||
1265 | } | ||
1266 | ] | ||
1267 | }, | ||
1268 | { | ||
1269 | "MsiDigitalCertificate": [ | ||
1270 | { | ||
1271 | "DigitalCertificate": "string" | ||
1272 | }, | ||
1273 | { | ||
1274 | "CertData": "path" | ||
1275 | } | ||
1276 | ] | ||
1277 | }, | ||
1278 | { | ||
1279 | "MsiDigitalSignature": [ | ||
1280 | { | ||
1281 | "Table": "string" | ||
1282 | }, | ||
1283 | { | ||
1284 | "SignObject": "string" | ||
1285 | }, | ||
1286 | { | ||
1287 | "DigitalCertificate_": "string" | ||
1288 | }, | ||
1289 | { | ||
1290 | "Hash": "path" | ||
1291 | } | ||
1292 | ] | ||
1293 | }, | ||
1294 | { | ||
1295 | "MsiEmbeddedChainer": [ | ||
1296 | { | ||
1297 | "MsiEmbeddedChainer": "string" | ||
1298 | }, | ||
1299 | { | ||
1300 | "Condition": "string" | ||
1301 | }, | ||
1302 | { | ||
1303 | "CommandLine": "string" | ||
1304 | }, | ||
1305 | { | ||
1306 | "Source": "string" | ||
1307 | }, | ||
1308 | { | ||
1309 | "Type": "number" | ||
1310 | } | ||
1311 | ] | ||
1312 | }, | ||
1313 | { | ||
1314 | "MsiEmbeddedUI": [ | ||
1315 | { | ||
1316 | "MsiEmbeddedUI": "string" | ||
1317 | }, | ||
1318 | { | ||
1319 | "FileName": "string" | ||
1320 | }, | ||
1321 | { | ||
1322 | "Attributes": "number" | ||
1323 | }, | ||
1324 | { | ||
1325 | "MessageFilter": "number" | ||
1326 | }, | ||
1327 | { | ||
1328 | "Data": "path" | ||
1329 | } | ||
1330 | ] | ||
1331 | }, | ||
1332 | { | ||
1333 | "MsiFileHash": [ | ||
1334 | { | ||
1335 | "File_": "string" | ||
1336 | }, | ||
1337 | { | ||
1338 | "Options": "number" | ||
1339 | }, | ||
1340 | { | ||
1341 | "HashPart1": "number" | ||
1342 | }, | ||
1343 | { | ||
1344 | "HashPart2": "number" | ||
1345 | }, | ||
1346 | { | ||
1347 | "HashPart3": "number" | ||
1348 | }, | ||
1349 | { | ||
1350 | "HashPart4": "number" | ||
1351 | } | ||
1352 | ] | ||
1353 | }, | ||
1354 | { | ||
1355 | "MsiLockPermissionsEx": [ | ||
1356 | { | ||
1357 | "MsiLockPermissionsEx": "string" | ||
1358 | }, | ||
1359 | { | ||
1360 | "LockObject": "string" | ||
1361 | }, | ||
1362 | { | ||
1363 | "Table": "string" | ||
1364 | }, | ||
1365 | { | ||
1366 | "SDDLText": "string" | ||
1367 | }, | ||
1368 | { | ||
1369 | "Condition": "string" | ||
1370 | } | ||
1371 | ] | ||
1372 | }, | ||
1373 | { | ||
1374 | "MsiPackageCertificate": [ | ||
1375 | { | ||
1376 | "PackageCertificate": "string" | ||
1377 | }, | ||
1378 | { | ||
1379 | "DigitalCertificate_": "string" | ||
1380 | } | ||
1381 | ] | ||
1382 | }, | ||
1383 | { | ||
1384 | "MsiPatchCertificate": [ | ||
1385 | { | ||
1386 | "PatchCertificate": "string" | ||
1387 | }, | ||
1388 | { | ||
1389 | "DigitalCertificate_": "string" | ||
1390 | } | ||
1391 | ] | ||
1392 | }, | ||
1393 | { | ||
1394 | "MsiPatchHeaders": [ | ||
1395 | { | ||
1396 | "StreamRef": "string" | ||
1397 | }, | ||
1398 | { | ||
1399 | "Header": "path" | ||
1400 | } | ||
1401 | ] | ||
1402 | }, | ||
1403 | { | ||
1404 | "MsiPatchMetadata": [ | ||
1405 | { | ||
1406 | "Company": "string" | ||
1407 | }, | ||
1408 | { | ||
1409 | "Property": "string" | ||
1410 | }, | ||
1411 | { | ||
1412 | "Value": "string" | ||
1413 | } | ||
1414 | ] | ||
1415 | }, | ||
1416 | { | ||
1417 | "MsiPatchOldAssemblyFile": [ | ||
1418 | { | ||
1419 | "File_": "string" | ||
1420 | }, | ||
1421 | { | ||
1422 | "Assembly_": "string" | ||
1423 | } | ||
1424 | ] | ||
1425 | }, | ||
1426 | { | ||
1427 | "MsiPatchOldAssemblyName": [ | ||
1428 | { | ||
1429 | "Assembly": "string" | ||
1430 | }, | ||
1431 | { | ||
1432 | "Name": "string" | ||
1433 | }, | ||
1434 | { | ||
1435 | "Value": "string" | ||
1436 | } | ||
1437 | ] | ||
1438 | }, | ||
1439 | { | ||
1440 | "MsiPatchSequence": [ | ||
1441 | { | ||
1442 | "PatchFamily": "string" | ||
1443 | }, | ||
1444 | { | ||
1445 | "ProductCode": "string" | ||
1446 | }, | ||
1447 | { | ||
1448 | "Sequence": "string" | ||
1449 | }, | ||
1450 | { | ||
1451 | "Attributes": "number" | ||
1452 | } | ||
1453 | ] | ||
1454 | }, | ||
1455 | { | ||
1456 | "MsiServiceConfig": [ | ||
1457 | { | ||
1458 | "MsiServiceConfig": "string" | ||
1459 | }, | ||
1460 | { | ||
1461 | "Name": "string" | ||
1462 | }, | ||
1463 | { | ||
1464 | "Event": "number" | ||
1465 | }, | ||
1466 | { | ||
1467 | "ConfigType": "number" | ||
1468 | }, | ||
1469 | { | ||
1470 | "Argument": "string" | ||
1471 | }, | ||
1472 | { | ||
1473 | "Component_": "string" | ||
1474 | } | ||
1475 | ] | ||
1476 | }, | ||
1477 | { | ||
1478 | "MsiServiceConfigFailureActions": [ | ||
1479 | { | ||
1480 | "MsiServiceConfigFailureActions": "string" | ||
1481 | }, | ||
1482 | { | ||
1483 | "Name": "string" | ||
1484 | }, | ||
1485 | { | ||
1486 | "Event": "number" | ||
1487 | }, | ||
1488 | { | ||
1489 | "ResetPeriod": "number" | ||
1490 | }, | ||
1491 | { | ||
1492 | "RebootMessage": "string" | ||
1493 | }, | ||
1494 | { | ||
1495 | "Command": "string" | ||
1496 | }, | ||
1497 | { | ||
1498 | "Actions": "string" | ||
1499 | }, | ||
1500 | { | ||
1501 | "DelayActions": "string" | ||
1502 | }, | ||
1503 | { | ||
1504 | "Component_": "string" | ||
1505 | } | ||
1506 | ] | ||
1507 | }, | ||
1508 | { | ||
1509 | "MsiShortcutProperty": [ | ||
1510 | { | ||
1511 | "MsiShortcutProperty": "string" | ||
1512 | }, | ||
1513 | { | ||
1514 | "Shortcut_": "string" | ||
1515 | }, | ||
1516 | { | ||
1517 | "PropertyKey": "string" | ||
1518 | }, | ||
1519 | { | ||
1520 | "PropVariantValue": "string" | ||
1521 | } | ||
1522 | ] | ||
1523 | }, | ||
1524 | { | ||
1525 | "ODBCAttribute": [ | ||
1526 | { | ||
1527 | "Driver_": "string" | ||
1528 | }, | ||
1529 | { | ||
1530 | "Attribute": "string" | ||
1531 | }, | ||
1532 | { | ||
1533 | "Value": "string" | ||
1534 | } | ||
1535 | ] | ||
1536 | }, | ||
1537 | { | ||
1538 | "ODBCDataSource": [ | ||
1539 | { | ||
1540 | "DataSource": "string" | ||
1541 | }, | ||
1542 | { | ||
1543 | "Component_": "string" | ||
1544 | }, | ||
1545 | { | ||
1546 | "Description": "string" | ||
1547 | }, | ||
1548 | { | ||
1549 | "DriverDescription": "string" | ||
1550 | }, | ||
1551 | { | ||
1552 | "Registration": "number" | ||
1553 | } | ||
1554 | ] | ||
1555 | }, | ||
1556 | { | ||
1557 | "ODBCDriver": [ | ||
1558 | { | ||
1559 | "Driver": "string" | ||
1560 | }, | ||
1561 | { | ||
1562 | "Component_": "string" | ||
1563 | }, | ||
1564 | { | ||
1565 | "Description": "string" | ||
1566 | }, | ||
1567 | { | ||
1568 | "File_": "string" | ||
1569 | }, | ||
1570 | { | ||
1571 | "File_Setup": "string" | ||
1572 | } | ||
1573 | ] | ||
1574 | }, | ||
1575 | { | ||
1576 | "ODBCSourceAttribute": [ | ||
1577 | { | ||
1578 | "DataSource_": "string" | ||
1579 | }, | ||
1580 | { | ||
1581 | "Attribute": "string" | ||
1582 | }, | ||
1583 | { | ||
1584 | "Value": "string" | ||
1585 | } | ||
1586 | ] | ||
1587 | }, | ||
1588 | { | ||
1589 | "ODBCTranslator": [ | ||
1590 | { | ||
1591 | "Translator": "string" | ||
1592 | }, | ||
1593 | { | ||
1594 | "Component_": "string" | ||
1595 | }, | ||
1596 | { | ||
1597 | "Description": "string" | ||
1598 | }, | ||
1599 | { | ||
1600 | "File_": "string" | ||
1601 | }, | ||
1602 | { | ||
1603 | "File_Setup": "string" | ||
1604 | } | ||
1605 | ] | ||
1606 | }, | ||
1607 | { | ||
1608 | "Patch": [ | ||
1609 | { | ||
1610 | "File_": "string" | ||
1611 | }, | ||
1612 | { | ||
1613 | "Sequence": "number" | ||
1614 | }, | ||
1615 | { | ||
1616 | "PatchSize": "number" | ||
1617 | }, | ||
1618 | { | ||
1619 | "Attributes": "number" | ||
1620 | }, | ||
1621 | { | ||
1622 | "Header": "path" | ||
1623 | }, | ||
1624 | { | ||
1625 | "StreamRef_": "string" | ||
1626 | } | ||
1627 | ] | ||
1628 | }, | ||
1629 | { | ||
1630 | "PatchMetadata": [ | ||
1631 | { | ||
1632 | "Company": "string" | ||
1633 | }, | ||
1634 | { | ||
1635 | "Property": "string" | ||
1636 | }, | ||
1637 | { | ||
1638 | "Value": "string" | ||
1639 | } | ||
1640 | ] | ||
1641 | }, | ||
1642 | { | ||
1643 | "PatchPackage": [ | ||
1644 | { | ||
1645 | "PatchId": "string" | ||
1646 | }, | ||
1647 | { | ||
1648 | "Media_": "number" | ||
1649 | } | ||
1650 | ] | ||
1651 | }, | ||
1652 | { | ||
1653 | "PatchSequence": [ | ||
1654 | { | ||
1655 | "PatchFamily": "string" | ||
1656 | }, | ||
1657 | { | ||
1658 | "Target": "string" | ||
1659 | }, | ||
1660 | { | ||
1661 | "Sequence": "string" | ||
1662 | }, | ||
1663 | { | ||
1664 | "Supersede": "number" | ||
1665 | } | ||
1666 | ] | ||
1667 | }, | ||
1668 | { | ||
1669 | "ProgId": [ | ||
1670 | { | ||
1671 | "ProgId": "string" | ||
1672 | }, | ||
1673 | { | ||
1674 | "ProgId_Parent": "string" | ||
1675 | }, | ||
1676 | { | ||
1677 | "Class_": "string" | ||
1678 | }, | ||
1679 | { | ||
1680 | "Description": "string" | ||
1681 | }, | ||
1682 | { | ||
1683 | "Icon_": "string" | ||
1684 | }, | ||
1685 | { | ||
1686 | "IconIndex": "number" | ||
1687 | } | ||
1688 | ] | ||
1689 | }, | ||
1690 | { | ||
1691 | "Properties": [ | ||
1692 | { | ||
1693 | "Name": "string" | ||
1694 | }, | ||
1695 | { | ||
1696 | "Value": "string" | ||
1697 | } | ||
1698 | ] | ||
1699 | }, | ||
1700 | { | ||
1701 | "Property": [ | ||
1702 | { | ||
1703 | "Property": "string" | ||
1704 | }, | ||
1705 | { | ||
1706 | "Value": "string" | ||
1707 | } | ||
1708 | ] | ||
1709 | }, | ||
1710 | { | ||
1711 | "PublishComponent": [ | ||
1712 | { | ||
1713 | "ComponentId": "string" | ||
1714 | }, | ||
1715 | { | ||
1716 | "Qualifier": "string" | ||
1717 | }, | ||
1718 | { | ||
1719 | "Component_": "string" | ||
1720 | }, | ||
1721 | { | ||
1722 | "AppData": "string" | ||
1723 | }, | ||
1724 | { | ||
1725 | "Feature_": "string" | ||
1726 | } | ||
1727 | ] | ||
1728 | }, | ||
1729 | { | ||
1730 | "RadioButton": [ | ||
1731 | { | ||
1732 | "Property": "string" | ||
1733 | }, | ||
1734 | { | ||
1735 | "Order": "number" | ||
1736 | }, | ||
1737 | { | ||
1738 | "Value": "string" | ||
1739 | }, | ||
1740 | { | ||
1741 | "X": "number" | ||
1742 | }, | ||
1743 | { | ||
1744 | "Y": "number" | ||
1745 | }, | ||
1746 | { | ||
1747 | "Width": "number" | ||
1748 | }, | ||
1749 | { | ||
1750 | "Height": "number" | ||
1751 | }, | ||
1752 | { | ||
1753 | "Text": "string" | ||
1754 | }, | ||
1755 | { | ||
1756 | "Help": "string" | ||
1757 | } | ||
1758 | ] | ||
1759 | }, | ||
1760 | { | ||
1761 | "Registry": [ | ||
1762 | { | ||
1763 | "Registry": "string" | ||
1764 | }, | ||
1765 | { | ||
1766 | "Root": "number" | ||
1767 | }, | ||
1768 | { | ||
1769 | "Key": "string" | ||
1770 | }, | ||
1771 | { | ||
1772 | "Name": "string" | ||
1773 | }, | ||
1774 | { | ||
1775 | "Value": "string" | ||
1776 | }, | ||
1777 | { | ||
1778 | "Component_": "string" | ||
1779 | } | ||
1780 | ] | ||
1781 | }, | ||
1782 | { | ||
1783 | "RegLocator": [ | ||
1784 | { | ||
1785 | "Signature_": "string" | ||
1786 | }, | ||
1787 | { | ||
1788 | "Root": "number" | ||
1789 | }, | ||
1790 | { | ||
1791 | "Key": "string" | ||
1792 | }, | ||
1793 | { | ||
1794 | "Name": "string" | ||
1795 | }, | ||
1796 | { | ||
1797 | "Type": "number" | ||
1798 | } | ||
1799 | ] | ||
1800 | }, | ||
1801 | { | ||
1802 | "RemoveFile": [ | ||
1803 | { | ||
1804 | "FileKey": "string" | ||
1805 | }, | ||
1806 | { | ||
1807 | "Component_": "string" | ||
1808 | }, | ||
1809 | { | ||
1810 | "FileName": "string" | ||
1811 | }, | ||
1812 | { | ||
1813 | "DirProperty": "string" | ||
1814 | }, | ||
1815 | { | ||
1816 | "InstallMode": "number" | ||
1817 | } | ||
1818 | ] | ||
1819 | }, | ||
1820 | { | ||
1821 | "RemoveIniFile": [ | ||
1822 | { | ||
1823 | "RemoveIniFile": "string" | ||
1824 | }, | ||
1825 | { | ||
1826 | "FileName": "string" | ||
1827 | }, | ||
1828 | { | ||
1829 | "DirProperty": "string" | ||
1830 | }, | ||
1831 | { | ||
1832 | "Section": "string" | ||
1833 | }, | ||
1834 | { | ||
1835 | "Key": "string" | ||
1836 | }, | ||
1837 | { | ||
1838 | "Value": "string" | ||
1839 | }, | ||
1840 | { | ||
1841 | "Action": "number" | ||
1842 | }, | ||
1843 | { | ||
1844 | "Component_": "string" | ||
1845 | } | ||
1846 | ] | ||
1847 | }, | ||
1848 | { | ||
1849 | "RemoveRegistry": [ | ||
1850 | { | ||
1851 | "RemoveRegistry": "string" | ||
1852 | }, | ||
1853 | { | ||
1854 | "Root": "number" | ||
1855 | }, | ||
1856 | { | ||
1857 | "Key": "string" | ||
1858 | }, | ||
1859 | { | ||
1860 | "Name": "string" | ||
1861 | }, | ||
1862 | { | ||
1863 | "Component_": "string" | ||
1864 | } | ||
1865 | ] | ||
1866 | }, | ||
1867 | { | ||
1868 | "ReserveCost": [ | ||
1869 | { | ||
1870 | "ReserveKey": "string" | ||
1871 | }, | ||
1872 | { | ||
1873 | "Component_": "string" | ||
1874 | }, | ||
1875 | { | ||
1876 | "ReserveFolder": "string" | ||
1877 | }, | ||
1878 | { | ||
1879 | "ReserveLocal": "number" | ||
1880 | }, | ||
1881 | { | ||
1882 | "ReserveSource": "number" | ||
1883 | } | ||
1884 | ] | ||
1885 | }, | ||
1886 | { | ||
1887 | "SelfReg": [ | ||
1888 | { | ||
1889 | "File_": "string" | ||
1890 | }, | ||
1891 | { | ||
1892 | "Cost": "number" | ||
1893 | } | ||
1894 | ] | ||
1895 | }, | ||
1896 | { | ||
1897 | "ServiceControl": [ | ||
1898 | { | ||
1899 | "ServiceControl": "string" | ||
1900 | }, | ||
1901 | { | ||
1902 | "Name": "string" | ||
1903 | }, | ||
1904 | { | ||
1905 | "Event": "number" | ||
1906 | }, | ||
1907 | { | ||
1908 | "Arguments": "string" | ||
1909 | }, | ||
1910 | { | ||
1911 | "Wait": "number" | ||
1912 | }, | ||
1913 | { | ||
1914 | "Component_": "string" | ||
1915 | } | ||
1916 | ] | ||
1917 | }, | ||
1918 | { | ||
1919 | "ServiceInstall": [ | ||
1920 | { | ||
1921 | "ServiceInstall": "string" | ||
1922 | }, | ||
1923 | { | ||
1924 | "Name": "string" | ||
1925 | }, | ||
1926 | { | ||
1927 | "DisplayName": "string" | ||
1928 | }, | ||
1929 | { | ||
1930 | "ServiceType": "number" | ||
1931 | }, | ||
1932 | { | ||
1933 | "StartType": "number" | ||
1934 | }, | ||
1935 | { | ||
1936 | "ErrorControl": "number" | ||
1937 | }, | ||
1938 | { | ||
1939 | "LoadOrderGroup": "string" | ||
1940 | }, | ||
1941 | { | ||
1942 | "Dependencies": "string" | ||
1943 | }, | ||
1944 | { | ||
1945 | "StartName": "string" | ||
1946 | }, | ||
1947 | { | ||
1948 | "Password": "string" | ||
1949 | }, | ||
1950 | { | ||
1951 | "Arguments": "string" | ||
1952 | }, | ||
1953 | { | ||
1954 | "Component_": "string" | ||
1955 | }, | ||
1956 | { | ||
1957 | "Description": "string" | ||
1958 | } | ||
1959 | ] | ||
1960 | }, | ||
1961 | { | ||
1962 | "SFPCatalog": [ | ||
1963 | { | ||
1964 | "SFPCatalog": "string" | ||
1965 | }, | ||
1966 | { | ||
1967 | "Catalog": "path" | ||
1968 | }, | ||
1969 | { | ||
1970 | "Dependency": "string" | ||
1971 | } | ||
1972 | ] | ||
1973 | }, | ||
1974 | { | ||
1975 | "Shortcut": [ | ||
1976 | { | ||
1977 | "Shortcut": "string" | ||
1978 | }, | ||
1979 | { | ||
1980 | "Directory_": "string" | ||
1981 | }, | ||
1982 | { | ||
1983 | "Name": "string" | ||
1984 | }, | ||
1985 | { | ||
1986 | "Component_": "string" | ||
1987 | }, | ||
1988 | { | ||
1989 | "Target": "string" | ||
1990 | }, | ||
1991 | { | ||
1992 | "Arguments": "string" | ||
1993 | }, | ||
1994 | { | ||
1995 | "Description": "string" | ||
1996 | }, | ||
1997 | { | ||
1998 | "Hotkey": "number" | ||
1999 | }, | ||
2000 | { | ||
2001 | "Icon_": "string" | ||
2002 | }, | ||
2003 | { | ||
2004 | "IconIndex": "number" | ||
2005 | }, | ||
2006 | { | ||
2007 | "ShowCmd": "number" | ||
2008 | }, | ||
2009 | { | ||
2010 | "WkDir": "string" | ||
2011 | }, | ||
2012 | { | ||
2013 | "DisplayResourceDLL": "string" | ||
2014 | }, | ||
2015 | { | ||
2016 | "DisplayResourceId": "number" | ||
2017 | }, | ||
2018 | { | ||
2019 | "DescriptionResourceDLL": "string" | ||
2020 | }, | ||
2021 | { | ||
2022 | "DescriptionResourceId": "number" | ||
2023 | } | ||
2024 | ] | ||
2025 | }, | ||
2026 | { | ||
2027 | "Signature": [ | ||
2028 | { | ||
2029 | "Signature": "string" | ||
2030 | }, | ||
2031 | { | ||
2032 | "FileName": "string" | ||
2033 | }, | ||
2034 | { | ||
2035 | "MinVersion": "string" | ||
2036 | }, | ||
2037 | { | ||
2038 | "MaxVersion": "string" | ||
2039 | }, | ||
2040 | { | ||
2041 | "MinSize": "number" | ||
2042 | }, | ||
2043 | { | ||
2044 | "MaxSize": "number" | ||
2045 | }, | ||
2046 | { | ||
2047 | "MinDate": "number" | ||
2048 | }, | ||
2049 | { | ||
2050 | "MaxDate": "number" | ||
2051 | }, | ||
2052 | { | ||
2053 | "Languages": "string" | ||
2054 | } | ||
2055 | ] | ||
2056 | }, | ||
2057 | { | ||
2058 | "TargetFiles_OptionalData": [ | ||
2059 | { | ||
2060 | "Target": "string" | ||
2061 | }, | ||
2062 | { | ||
2063 | "FTK": "string" | ||
2064 | }, | ||
2065 | { | ||
2066 | "SymbolPaths": "string" | ||
2067 | }, | ||
2068 | { | ||
2069 | "IgnoreOffsets": "string" | ||
2070 | }, | ||
2071 | { | ||
2072 | "IgnoreLengths": "string" | ||
2073 | }, | ||
2074 | { | ||
2075 | "RetainOffsets": "string" | ||
2076 | } | ||
2077 | ] | ||
2078 | }, | ||
2079 | { | ||
2080 | "TargetImages": [ | ||
2081 | { | ||
2082 | "Target": "string" | ||
2083 | }, | ||
2084 | { | ||
2085 | "MsiPath": "string" | ||
2086 | }, | ||
2087 | { | ||
2088 | "SymbolPaths": "string" | ||
2089 | }, | ||
2090 | { | ||
2091 | "Upgraded": "string" | ||
2092 | }, | ||
2093 | { | ||
2094 | "Order": "number" | ||
2095 | }, | ||
2096 | { | ||
2097 | "ProductValidateFlags": "string" | ||
2098 | }, | ||
2099 | { | ||
2100 | "IgnoreMissingSrcFiles": "number" | ||
2101 | } | ||
2102 | ] | ||
2103 | }, | ||
2104 | { | ||
2105 | "TextStyle": [ | ||
2106 | { | ||
2107 | "TextStyle": "string" | ||
2108 | }, | ||
2109 | { | ||
2110 | "FaceName": "string" | ||
2111 | }, | ||
2112 | { | ||
2113 | "Size": "number" | ||
2114 | }, | ||
2115 | { | ||
2116 | "Color": "number" | ||
2117 | }, | ||
2118 | { | ||
2119 | "StyleBits": "number" | ||
2120 | } | ||
2121 | ] | ||
2122 | }, | ||
2123 | { | ||
2124 | "TypeLib": [ | ||
2125 | { | ||
2126 | "LibID": "string" | ||
2127 | }, | ||
2128 | { | ||
2129 | "Language": "number" | ||
2130 | }, | ||
2131 | { | ||
2132 | "Component_": "string" | ||
2133 | }, | ||
2134 | { | ||
2135 | "Version": "number" | ||
2136 | }, | ||
2137 | { | ||
2138 | "Description": "string" | ||
2139 | }, | ||
2140 | { | ||
2141 | "Directory_": "string" | ||
2142 | }, | ||
2143 | { | ||
2144 | "Feature_": "string" | ||
2145 | }, | ||
2146 | { | ||
2147 | "Cost": "number" | ||
2148 | } | ||
2149 | ] | ||
2150 | }, | ||
2151 | { | ||
2152 | "UIText": [ | ||
2153 | { | ||
2154 | "Key": "string" | ||
2155 | }, | ||
2156 | { | ||
2157 | "Text": "string" | ||
2158 | } | ||
2159 | ] | ||
2160 | }, | ||
2161 | { | ||
2162 | "Upgrade": [ | ||
2163 | { | ||
2164 | "UpgradeCode": "string" | ||
2165 | }, | ||
2166 | { | ||
2167 | "VersionMin": "string" | ||
2168 | }, | ||
2169 | { | ||
2170 | "VersionMax": "string" | ||
2171 | }, | ||
2172 | { | ||
2173 | "Language": "string" | ||
2174 | }, | ||
2175 | { | ||
2176 | "Attributes": "number" | ||
2177 | }, | ||
2178 | { | ||
2179 | "Remove": "string" | ||
2180 | }, | ||
2181 | { | ||
2182 | "ActionProperty": "string" | ||
2183 | } | ||
2184 | ] | ||
2185 | }, | ||
2186 | { | ||
2187 | "UpgradedFiles_OptionalData": [ | ||
2188 | { | ||
2189 | "Upgraded": "string" | ||
2190 | }, | ||
2191 | { | ||
2192 | "FTK": "string" | ||
2193 | }, | ||
2194 | { | ||
2195 | "SymbolPaths": "string" | ||
2196 | }, | ||
2197 | { | ||
2198 | "AllowIgnoreOnPatchError": "number" | ||
2199 | }, | ||
2200 | { | ||
2201 | "IncludeWholeFile": "number" | ||
2202 | } | ||
2203 | ] | ||
2204 | }, | ||
2205 | { | ||
2206 | "UpgradedFilesToIgnore": [ | ||
2207 | { | ||
2208 | "Upgraded": "string" | ||
2209 | }, | ||
2210 | { | ||
2211 | "FTK": "string" | ||
2212 | } | ||
2213 | ] | ||
2214 | }, | ||
2215 | { | ||
2216 | "UpgradedImages": [ | ||
2217 | { | ||
2218 | "Upgraded": "string" | ||
2219 | }, | ||
2220 | { | ||
2221 | "MsiPath": "string" | ||
2222 | }, | ||
2223 | { | ||
2224 | "PatchMsiPath": "string" | ||
2225 | }, | ||
2226 | { | ||
2227 | "SymbolPaths": "string" | ||
2228 | }, | ||
2229 | { | ||
2230 | "Family": "string" | ||
2231 | } | ||
2232 | ] | ||
2233 | }, | ||
2234 | { | ||
2235 | "Verb": [ | ||
2236 | { | ||
2237 | "Extension_": "string" | ||
2238 | }, | ||
2239 | { | ||
2240 | "Verb": "string" | ||
2241 | }, | ||
2242 | { | ||
2243 | "Sequence": "number" | ||
2244 | }, | ||
2245 | { | ||
2246 | "Command": "string" | ||
2247 | }, | ||
2248 | { | ||
2249 | "Argument": "string" | ||
2250 | } | ||
2251 | ] | ||
2252 | }, | ||
2253 | { | ||
2254 | "WixAction": [ | ||
2255 | { | ||
2256 | "SequenceTable": "string" | ||
2257 | }, | ||
2258 | { | ||
2259 | "Action": "string" | ||
2260 | }, | ||
2261 | { | ||
2262 | "Condition": "string" | ||
2263 | }, | ||
2264 | { | ||
2265 | "Sequence": "number" | ||
2266 | }, | ||
2267 | { | ||
2268 | "Before": "string" | ||
2269 | }, | ||
2270 | { | ||
2271 | "After": "string" | ||
2272 | }, | ||
2273 | { | ||
2274 | "Overridable": "number" | ||
2275 | } | ||
2276 | ] | ||
2277 | }, | ||
2278 | { | ||
2279 | "WixApprovedExeForElevation": [ | ||
2280 | { | ||
2281 | "Id": "string" | ||
2282 | }, | ||
2283 | { | ||
2284 | "Key": "string" | ||
2285 | }, | ||
2286 | { | ||
2287 | "Value": "string" | ||
2288 | }, | ||
2289 | { | ||
2290 | "Attributes": "number" | ||
2291 | } | ||
2292 | ] | ||
2293 | }, | ||
2294 | { | ||
2295 | "WixBBControl": [ | ||
2296 | { | ||
2297 | "Billboard_": "string" | ||
2298 | }, | ||
2299 | { | ||
2300 | "BBControl_": "string" | ||
2301 | }, | ||
2302 | { | ||
2303 | "SourceFile": "path" | ||
2304 | } | ||
2305 | ] | ||
2306 | }, | ||
2307 | { | ||
2308 | "WixBindUpdatedFiles": [ | ||
2309 | { | ||
2310 | "File_": "string" | ||
2311 | } | ||
2312 | ] | ||
2313 | }, | ||
2314 | { | ||
2315 | "WixBootstrapperApplication": [ | ||
2316 | { | ||
2317 | "Id": "string" | ||
2318 | } | ||
2319 | ] | ||
2320 | }, | ||
2321 | { | ||
2322 | "WixBuildInfo": [ | ||
2323 | { | ||
2324 | "WixVersion": "string" | ||
2325 | }, | ||
2326 | { | ||
2327 | "WixOutputFile": "string" | ||
2328 | }, | ||
2329 | { | ||
2330 | "WixProjectFile": "string" | ||
2331 | }, | ||
2332 | { | ||
2333 | "WixPdbFile": "string" | ||
2334 | } | ||
2335 | ] | ||
2336 | }, | ||
2337 | { | ||
2338 | "WixBundle": [ | ||
2339 | { | ||
2340 | "Version": "string" | ||
2341 | }, | ||
2342 | { | ||
2343 | "Copyright": "string" | ||
2344 | }, | ||
2345 | { | ||
2346 | "Name": "string" | ||
2347 | }, | ||
2348 | { | ||
2349 | "AboutUrl": "string" | ||
2350 | }, | ||
2351 | { | ||
2352 | "DisableModify": "number" | ||
2353 | }, | ||
2354 | { | ||
2355 | "DisableRemove": "number" | ||
2356 | }, | ||
2357 | { | ||
2358 | "DisableRepair": "number" | ||
2359 | }, | ||
2360 | { | ||
2361 | "HelpTelephone": "string" | ||
2362 | }, | ||
2363 | { | ||
2364 | "HelpUrl": "string" | ||
2365 | }, | ||
2366 | { | ||
2367 | "Manufacturer": "string" | ||
2368 | }, | ||
2369 | { | ||
2370 | "UpdateUrl": "string" | ||
2371 | }, | ||
2372 | { | ||
2373 | "Compressed": "number" | ||
2374 | }, | ||
2375 | { | ||
2376 | "LogPrefixAndExtension": "string" | ||
2377 | }, | ||
2378 | { | ||
2379 | "IconSourceFile": "path" | ||
2380 | }, | ||
2381 | { | ||
2382 | "SplashScreenSourceFile": "path" | ||
2383 | }, | ||
2384 | { | ||
2385 | "Condition": "string" | ||
2386 | }, | ||
2387 | { | ||
2388 | "Tag": "string" | ||
2389 | }, | ||
2390 | { | ||
2391 | "Platform": "string" | ||
2392 | }, | ||
2393 | { | ||
2394 | "ParentName": "string" | ||
2395 | }, | ||
2396 | { | ||
2397 | "UpgradeCode": "string" | ||
2398 | }, | ||
2399 | { | ||
2400 | "BundleId": "string" | ||
2401 | }, | ||
2402 | { | ||
2403 | "ProviderKey": "string" | ||
2404 | }, | ||
2405 | { | ||
2406 | "PerMachine": "number" | ||
2407 | } | ||
2408 | ] | ||
2409 | }, | ||
2410 | { | ||
2411 | "WixBundleCatalog": [ | ||
2412 | { | ||
2413 | "WixBundleCatalog": "string" | ||
2414 | }, | ||
2415 | { | ||
2416 | "Payload_": "string" | ||
2417 | } | ||
2418 | ] | ||
2419 | }, | ||
2420 | { | ||
2421 | "WixBundleContainer": [ | ||
2422 | { | ||
2423 | "WixBundleContainer": "string" | ||
2424 | }, | ||
2425 | { | ||
2426 | "Name": "string" | ||
2427 | }, | ||
2428 | { | ||
2429 | "Type": "number" | ||
2430 | }, | ||
2431 | { | ||
2432 | "DownloadUrl": "string" | ||
2433 | }, | ||
2434 | { | ||
2435 | "Size": "number" | ||
2436 | }, | ||
2437 | { | ||
2438 | "Hash": "string" | ||
2439 | }, | ||
2440 | { | ||
2441 | "AttachedContainerIndex": "number" | ||
2442 | }, | ||
2443 | { | ||
2444 | "WorkingPath": "string" | ||
2445 | } | ||
2446 | ] | ||
2447 | }, | ||
2448 | { | ||
2449 | "WixBundleExePackage": [ | ||
2450 | { | ||
2451 | "WixBundlePackage_": "string" | ||
2452 | }, | ||
2453 | { | ||
2454 | "Attributes": "number" | ||
2455 | }, | ||
2456 | { | ||
2457 | "DetectCondition": "string" | ||
2458 | }, | ||
2459 | { | ||
2460 | "InstallCommand": "string" | ||
2461 | }, | ||
2462 | { | ||
2463 | "RepairCommand": "string" | ||
2464 | }, | ||
2465 | { | ||
2466 | "UninstallCommand": "string" | ||
2467 | }, | ||
2468 | { | ||
2469 | "ExeProtocol": "string" | ||
2470 | } | ||
2471 | ] | ||
2472 | }, | ||
2473 | { | ||
2474 | "WixBundleMsiFeature": [ | ||
2475 | { | ||
2476 | "WixBundlePackage_": "string" | ||
2477 | }, | ||
2478 | { | ||
2479 | "Name": "string" | ||
2480 | }, | ||
2481 | { | ||
2482 | "Size": "number" | ||
2483 | }, | ||
2484 | { | ||
2485 | "Parent": "string" | ||
2486 | }, | ||
2487 | { | ||
2488 | "Title": "string" | ||
2489 | }, | ||
2490 | { | ||
2491 | "Description": "string" | ||
2492 | }, | ||
2493 | { | ||
2494 | "Display": "number" | ||
2495 | }, | ||
2496 | { | ||
2497 | "Level": "number" | ||
2498 | }, | ||
2499 | { | ||
2500 | "Directory": "string" | ||
2501 | }, | ||
2502 | { | ||
2503 | "Attributes": "number" | ||
2504 | } | ||
2505 | ] | ||
2506 | }, | ||
2507 | { | ||
2508 | "WixBundleMsiPackage": [ | ||
2509 | { | ||
2510 | "WixBundlePackage_": "string" | ||
2511 | }, | ||
2512 | { | ||
2513 | "Attributes": "number" | ||
2514 | }, | ||
2515 | { | ||
2516 | "ProductCode": "string" | ||
2517 | }, | ||
2518 | { | ||
2519 | "UpgradeCode": "string" | ||
2520 | }, | ||
2521 | { | ||
2522 | "ProductVersion": "string" | ||
2523 | }, | ||
2524 | { | ||
2525 | "ProductLanguage": "number" | ||
2526 | }, | ||
2527 | { | ||
2528 | "ProductName": "string" | ||
2529 | }, | ||
2530 | { | ||
2531 | "Manufacturer": "string" | ||
2532 | } | ||
2533 | ] | ||
2534 | }, | ||
2535 | { | ||
2536 | "WixBundleMsiProperty": [ | ||
2537 | { | ||
2538 | "WixBundlePackage_": "string" | ||
2539 | }, | ||
2540 | { | ||
2541 | "Name": "string" | ||
2542 | }, | ||
2543 | { | ||
2544 | "Value": "string" | ||
2545 | }, | ||
2546 | { | ||
2547 | "Condition": "string" | ||
2548 | } | ||
2549 | ] | ||
2550 | }, | ||
2551 | { | ||
2552 | "WixBundleMspPackage": [ | ||
2553 | { | ||
2554 | "WixBundlePackage_": "string" | ||
2555 | }, | ||
2556 | { | ||
2557 | "Attributes": "number" | ||
2558 | }, | ||
2559 | { | ||
2560 | "PatchCode": "string" | ||
2561 | }, | ||
2562 | { | ||
2563 | "Manufacturer": "string" | ||
2564 | }, | ||
2565 | { | ||
2566 | "PatchXml": "string" | ||
2567 | } | ||
2568 | ] | ||
2569 | }, | ||
2570 | { | ||
2571 | "WixBundleMsuPackage": [ | ||
2572 | { | ||
2573 | "WixBundlePackage_": "string" | ||
2574 | }, | ||
2575 | { | ||
2576 | "DetectCondition": "string" | ||
2577 | }, | ||
2578 | { | ||
2579 | "MsuKB": "string" | ||
2580 | } | ||
2581 | ] | ||
2582 | }, | ||
2583 | { | ||
2584 | "WixBundlePackage": [ | ||
2585 | { | ||
2586 | "WixChainItem_": "string" | ||
2587 | }, | ||
2588 | { | ||
2589 | "Type": "number" | ||
2590 | }, | ||
2591 | { | ||
2592 | "Payload_": "string" | ||
2593 | }, | ||
2594 | { | ||
2595 | "Attributes": "number" | ||
2596 | }, | ||
2597 | { | ||
2598 | "InstallCondition": "string" | ||
2599 | }, | ||
2600 | { | ||
2601 | "Cache": "number" | ||
2602 | }, | ||
2603 | { | ||
2604 | "CacheId": "string" | ||
2605 | }, | ||
2606 | { | ||
2607 | "Vital": "number" | ||
2608 | }, | ||
2609 | { | ||
2610 | "PerMachine": "number" | ||
2611 | }, | ||
2612 | { | ||
2613 | "LogPathVariable": "string" | ||
2614 | }, | ||
2615 | { | ||
2616 | "RollbackLogPathVariable": "string" | ||
2617 | }, | ||
2618 | { | ||
2619 | "Size": "number" | ||
2620 | }, | ||
2621 | { | ||
2622 | "InstallSize": "number" | ||
2623 | }, | ||
2624 | { | ||
2625 | "Version": "string" | ||
2626 | }, | ||
2627 | { | ||
2628 | "Language": "number" | ||
2629 | }, | ||
2630 | { | ||
2631 | "DisplayName": "string" | ||
2632 | }, | ||
2633 | { | ||
2634 | "Description": "string" | ||
2635 | }, | ||
2636 | { | ||
2637 | "RollbackBoundary_": "string" | ||
2638 | }, | ||
2639 | { | ||
2640 | "RollbackBoundaryBackward_": "string" | ||
2641 | }, | ||
2642 | { | ||
2643 | "x64": "number" | ||
2644 | } | ||
2645 | ] | ||
2646 | }, | ||
2647 | { | ||
2648 | "WixBundlePackageCommandLine": [ | ||
2649 | { | ||
2650 | "WixBundlePackage_": "string" | ||
2651 | }, | ||
2652 | { | ||
2653 | "InstallArgument": "string" | ||
2654 | }, | ||
2655 | { | ||
2656 | "UninstallArgument": "string" | ||
2657 | }, | ||
2658 | { | ||
2659 | "RepairArgument": "string" | ||
2660 | }, | ||
2661 | { | ||
2662 | "Condition": "string" | ||
2663 | } | ||
2664 | ] | ||
2665 | }, | ||
2666 | { | ||
2667 | "WixBundlePackageExitCode": [ | ||
2668 | { | ||
2669 | "WixBundlePackage_": "string" | ||
2670 | }, | ||
2671 | { | ||
2672 | "Code": "number" | ||
2673 | }, | ||
2674 | { | ||
2675 | "Behavior": "number" | ||
2676 | } | ||
2677 | ] | ||
2678 | }, | ||
2679 | { | ||
2680 | "WixBundlePackageGroup": [ | ||
2681 | { | ||
2682 | "WixBundlePackageGroup": "string" | ||
2683 | } | ||
2684 | ] | ||
2685 | }, | ||
2686 | { | ||
2687 | "WixBundlePatchTargetCode": [ | ||
2688 | { | ||
2689 | "PackageId": "string" | ||
2690 | }, | ||
2691 | { | ||
2692 | "TargetCode": "string" | ||
2693 | }, | ||
2694 | { | ||
2695 | "Attributes": "number" | ||
2696 | } | ||
2697 | ] | ||
2698 | }, | ||
2699 | { | ||
2700 | "WixBundlePayload": [ | ||
2701 | { | ||
2702 | "WixBundlePayload": "string" | ||
2703 | }, | ||
2704 | { | ||
2705 | "Name": "string" | ||
2706 | }, | ||
2707 | { | ||
2708 | "SourceFile": "path" | ||
2709 | }, | ||
2710 | { | ||
2711 | "DownloadUrl": "string" | ||
2712 | }, | ||
2713 | { | ||
2714 | "Compressed": "number" | ||
2715 | }, | ||
2716 | { | ||
2717 | "UnresolvedSourceFile": "string" | ||
2718 | }, | ||
2719 | { | ||
2720 | "DisplayName": "string" | ||
2721 | }, | ||
2722 | { | ||
2723 | "Description": "string" | ||
2724 | }, | ||
2725 | { | ||
2726 | "EnableSignatureValidation": "number" | ||
2727 | }, | ||
2728 | { | ||
2729 | "FileSize": "number" | ||
2730 | }, | ||
2731 | { | ||
2732 | "Version": "string" | ||
2733 | }, | ||
2734 | { | ||
2735 | "Hash": "string" | ||
2736 | }, | ||
2737 | { | ||
2738 | "PublicKey": "string" | ||
2739 | }, | ||
2740 | { | ||
2741 | "Thumbprint": "string" | ||
2742 | }, | ||
2743 | { | ||
2744 | "Catalog_": "string" | ||
2745 | }, | ||
2746 | { | ||
2747 | "Container_": "string" | ||
2748 | }, | ||
2749 | { | ||
2750 | "Package": "string" | ||
2751 | }, | ||
2752 | { | ||
2753 | "ContentFile": "number" | ||
2754 | }, | ||
2755 | { | ||
2756 | "EmbeddedId": "string" | ||
2757 | }, | ||
2758 | { | ||
2759 | "LayoutOnly": "number" | ||
2760 | }, | ||
2761 | { | ||
2762 | "Packaging": "number" | ||
2763 | }, | ||
2764 | { | ||
2765 | "ParentPackagePayload_": "string" | ||
2766 | } | ||
2767 | ] | ||
2768 | }, | ||
2769 | { | ||
2770 | "WixBundlePayloadGroup": [ | ||
2771 | { | ||
2772 | "WixBundlePayloadGroup": "string" | ||
2773 | } | ||
2774 | ] | ||
2775 | }, | ||
2776 | { | ||
2777 | "WixBundleProperties": [ | ||
2778 | { | ||
2779 | "DisplayName": "string" | ||
2780 | }, | ||
2781 | { | ||
2782 | "LogPathVariable": "string" | ||
2783 | }, | ||
2784 | { | ||
2785 | "Compressed": "string" | ||
2786 | }, | ||
2787 | { | ||
2788 | "Id": "string" | ||
2789 | }, | ||
2790 | { | ||
2791 | "UpgradeCode": "string" | ||
2792 | }, | ||
2793 | { | ||
2794 | "PerMachine": "string" | ||
2795 | } | ||
2796 | ] | ||
2797 | }, | ||
2798 | { | ||
2799 | "WixBundleRelatedPackage": [ | ||
2800 | { | ||
2801 | "WixBundlePackage_": "string" | ||
2802 | }, | ||
2803 | { | ||
2804 | "Id": "string" | ||
2805 | }, | ||
2806 | { | ||
2807 | "MinVersion": "string" | ||
2808 | }, | ||
2809 | { | ||
2810 | "MaxVersion": "string" | ||
2811 | }, | ||
2812 | { | ||
2813 | "Languages": "string" | ||
2814 | }, | ||
2815 | { | ||
2816 | "MinInclusive": "number" | ||
2817 | }, | ||
2818 | { | ||
2819 | "MaxInclusive": "number" | ||
2820 | }, | ||
2821 | { | ||
2822 | "LangInclusive": "number" | ||
2823 | }, | ||
2824 | { | ||
2825 | "OnlyDetect": "number" | ||
2826 | } | ||
2827 | ] | ||
2828 | }, | ||
2829 | { | ||
2830 | "WixBundleRollbackBoundary": [ | ||
2831 | { | ||
2832 | "WixChainItem_": "string" | ||
2833 | }, | ||
2834 | { | ||
2835 | "Vital": "number" | ||
2836 | }, | ||
2837 | { | ||
2838 | "Transaction": "number" | ||
2839 | } | ||
2840 | ] | ||
2841 | }, | ||
2842 | { | ||
2843 | "WixBundleSlipstreamMsp": [ | ||
2844 | { | ||
2845 | "WixBundlePackage_": "string" | ||
2846 | }, | ||
2847 | { | ||
2848 | "WixBundlePackage_Msp": "string" | ||
2849 | } | ||
2850 | ] | ||
2851 | }, | ||
2852 | { | ||
2853 | "WixBundleUpdate": [ | ||
2854 | { | ||
2855 | "Location": "string" | ||
2856 | }, | ||
2857 | { | ||
2858 | "Attributes": "number" | ||
2859 | } | ||
2860 | ] | ||
2861 | }, | ||
2862 | { | ||
2863 | "WixBundleVariable": [ | ||
2864 | { | ||
2865 | "WixBundleVariable": "string" | ||
2866 | }, | ||
2867 | { | ||
2868 | "Value": "string" | ||
2869 | }, | ||
2870 | { | ||
2871 | "Type": "string" | ||
2872 | }, | ||
2873 | { | ||
2874 | "Hidden": "number" | ||
2875 | }, | ||
2876 | { | ||
2877 | "Persisted": "number" | ||
2878 | } | ||
2879 | ] | ||
2880 | }, | ||
2881 | { | ||
2882 | "WixChain": [ | ||
2883 | { | ||
2884 | "Attributes": "number" | ||
2885 | } | ||
2886 | ] | ||
2887 | }, | ||
2888 | { | ||
2889 | "WixChainItem": [ | ||
2890 | { | ||
2891 | "Id": "string" | ||
2892 | } | ||
2893 | ] | ||
2894 | }, | ||
2895 | { | ||
2896 | "WixComplexReference": [ | ||
2897 | { | ||
2898 | "Parent": "string" | ||
2899 | }, | ||
2900 | { | ||
2901 | "ParentAttributes": "number" | ||
2902 | }, | ||
2903 | { | ||
2904 | "ParentLanguage": "string" | ||
2905 | }, | ||
2906 | { | ||
2907 | "Child": "string" | ||
2908 | }, | ||
2909 | { | ||
2910 | "ChildAttributes": "number" | ||
2911 | }, | ||
2912 | { | ||
2913 | "Attributes": "number" | ||
2914 | } | ||
2915 | ] | ||
2916 | }, | ||
2917 | { | ||
2918 | "WixComponentGroup": [ | ||
2919 | { | ||
2920 | "WixComponentGroup": "string" | ||
2921 | } | ||
2922 | ] | ||
2923 | }, | ||
2924 | { | ||
2925 | "WixComponentSearch": [ | ||
2926 | { | ||
2927 | "WixSearch_": "string" | ||
2928 | }, | ||
2929 | { | ||
2930 | "Guid": "string" | ||
2931 | }, | ||
2932 | { | ||
2933 | "ProductCode": "string" | ||
2934 | }, | ||
2935 | { | ||
2936 | "Attributes": "number" | ||
2937 | } | ||
2938 | ] | ||
2939 | }, | ||
2940 | { | ||
2941 | "WixControl": [ | ||
2942 | { | ||
2943 | "Dialog_": "string" | ||
2944 | }, | ||
2945 | { | ||
2946 | "Control_": "string" | ||
2947 | }, | ||
2948 | { | ||
2949 | "SourceFile": "path" | ||
2950 | } | ||
2951 | ] | ||
2952 | }, | ||
2953 | { | ||
2954 | "WixCustomRow": [ | ||
2955 | { | ||
2956 | "Table": "string" | ||
2957 | }, | ||
2958 | { | ||
2959 | "FieldData": "string" | ||
2960 | } | ||
2961 | ] | ||
2962 | }, | ||
2963 | { | ||
2964 | "WixCustomTable": [ | ||
2965 | { | ||
2966 | "Table": "string" | ||
2967 | }, | ||
2968 | { | ||
2969 | "ColumnCount": "number" | ||
2970 | }, | ||
2971 | { | ||
2972 | "ColumnNames": "string" | ||
2973 | }, | ||
2974 | { | ||
2975 | "ColumnTypes": "string" | ||
2976 | }, | ||
2977 | { | ||
2978 | "PrimaryKeys": "string" | ||
2979 | }, | ||
2980 | { | ||
2981 | "MinValues": "string" | ||
2982 | }, | ||
2983 | { | ||
2984 | "MaxValues": "string" | ||
2985 | }, | ||
2986 | { | ||
2987 | "KeyTables": "string" | ||
2988 | }, | ||
2989 | { | ||
2990 | "KeyColumns": "string" | ||
2991 | }, | ||
2992 | { | ||
2993 | "Categories": "string" | ||
2994 | }, | ||
2995 | { | ||
2996 | "Sets": "string" | ||
2997 | }, | ||
2998 | { | ||
2999 | "Descriptions": "string" | ||
3000 | }, | ||
3001 | { | ||
3002 | "Modularizations": "string" | ||
3003 | }, | ||
3004 | { | ||
3005 | "BootstrapperApplicationData": "number" | ||
3006 | } | ||
3007 | ] | ||
3008 | }, | ||
3009 | { | ||
3010 | "WixDeltaPatchFile": [ | ||
3011 | { | ||
3012 | "File_": "string" | ||
3013 | }, | ||
3014 | { | ||
3015 | "RetainLengths": "preserved" | ||
3016 | }, | ||
3017 | { | ||
3018 | "IgnoreOffsets": "preserved" | ||
3019 | }, | ||
3020 | { | ||
3021 | "IgnoreLengths": "preserved" | ||
3022 | }, | ||
3023 | { | ||
3024 | "RetainOffsets": "preserved" | ||
3025 | }, | ||
3026 | { | ||
3027 | "SymbolPaths": "preserved" | ||
3028 | } | ||
3029 | ] | ||
3030 | }, | ||
3031 | { | ||
3032 | "WixDeltaPatchSymbolPaths": [ | ||
3033 | { | ||
3034 | "Id": "string" | ||
3035 | }, | ||
3036 | { | ||
3037 | "Type": "number" | ||
3038 | }, | ||
3039 | { | ||
3040 | "SymbolPaths": "preserved" | ||
3041 | } | ||
3042 | ] | ||
3043 | }, | ||
3044 | { | ||
3045 | "WixDirectory": [ | ||
3046 | { | ||
3047 | "Directory_": "string" | ||
3048 | }, | ||
3049 | { | ||
3050 | "ComponentGuidGenerationSeed": "string" | ||
3051 | } | ||
3052 | ] | ||
3053 | }, | ||
3054 | { | ||
3055 | "WixEnsureTable": [ | ||
3056 | { | ||
3057 | "Table": "string" | ||
3058 | } | ||
3059 | ] | ||
3060 | }, | ||
3061 | { | ||
3062 | "WixFeatureGroup": [ | ||
3063 | { | ||
3064 | "WixFeatureGroup": "string" | ||
3065 | } | ||
3066 | ] | ||
3067 | }, | ||
3068 | { | ||
3069 | "WixFeatureModules": [ | ||
3070 | { | ||
3071 | "Feature_": "string" | ||
3072 | }, | ||
3073 | { | ||
3074 | "WixMerge_": "string" | ||
3075 | } | ||
3076 | ] | ||
3077 | }, | ||
3078 | { | ||
3079 | "WixFile": [ | ||
3080 | { | ||
3081 | "File_": "string" | ||
3082 | }, | ||
3083 | { | ||
3084 | "AssemblyType": "number" | ||
3085 | }, | ||
3086 | { | ||
3087 | "File_AssemblyManifest": "string" | ||
3088 | }, | ||
3089 | { | ||
3090 | "File_AssemblyApplication": "string" | ||
3091 | }, | ||
3092 | { | ||
3093 | "Directory_": "string" | ||
3094 | }, | ||
3095 | { | ||
3096 | "DiskId": "number" | ||
3097 | }, | ||
3098 | { | ||
3099 | "Source": "path" | ||
3100 | }, | ||
3101 | { | ||
3102 | "ProcessorArchitecture": "string" | ||
3103 | }, | ||
3104 | { | ||
3105 | "PatchGroup": "number" | ||
3106 | }, | ||
3107 | { | ||
3108 | "Attributes": "number" | ||
3109 | }, | ||
3110 | { | ||
3111 | "PatchAttributes": "number" | ||
3112 | }, | ||
3113 | { | ||
3114 | "DeltaPatchHeaderSource": "string" | ||
3115 | } | ||
3116 | ] | ||
3117 | }, | ||
3118 | { | ||
3119 | "WixFileSearch": [ | ||
3120 | { | ||
3121 | "WixSearch_": "string" | ||
3122 | }, | ||
3123 | { | ||
3124 | "Path": "string" | ||
3125 | }, | ||
3126 | { | ||
3127 | "MinVersion": "string" | ||
3128 | }, | ||
3129 | { | ||
3130 | "MaxVersion": "string" | ||
3131 | }, | ||
3132 | { | ||
3133 | "MinSize": "number" | ||
3134 | }, | ||
3135 | { | ||
3136 | "MaxSize": "number" | ||
3137 | }, | ||
3138 | { | ||
3139 | "MinDate": "number" | ||
3140 | }, | ||
3141 | { | ||
3142 | "MaxDate": "number" | ||
3143 | }, | ||
3144 | { | ||
3145 | "Languages": "string" | ||
3146 | }, | ||
3147 | { | ||
3148 | "Attributes": "number" | ||
3149 | } | ||
3150 | ] | ||
3151 | }, | ||
3152 | { | ||
3153 | "WixFragment": [ | ||
3154 | { | ||
3155 | "WixFragment": "string" | ||
3156 | } | ||
3157 | ] | ||
3158 | }, | ||
3159 | { | ||
3160 | "WixGroup": [ | ||
3161 | { | ||
3162 | "ParentId": "string" | ||
3163 | }, | ||
3164 | { | ||
3165 | "ParentType": "string" | ||
3166 | }, | ||
3167 | { | ||
3168 | "ChildId": "string" | ||
3169 | }, | ||
3170 | { | ||
3171 | "ChildType": "string" | ||
3172 | } | ||
3173 | ] | ||
3174 | }, | ||
3175 | { | ||
3176 | "WixInstanceComponent": [ | ||
3177 | { | ||
3178 | "Component_": "string" | ||
3179 | } | ||
3180 | ] | ||
3181 | }, | ||
3182 | { | ||
3183 | "WixInstanceTransforms": [ | ||
3184 | { | ||
3185 | "Id": "string" | ||
3186 | }, | ||
3187 | { | ||
3188 | "PropertyId": "string" | ||
3189 | }, | ||
3190 | { | ||
3191 | "ProductCode": "string" | ||
3192 | }, | ||
3193 | { | ||
3194 | "ProductName": "string" | ||
3195 | }, | ||
3196 | { | ||
3197 | "UpgradeCode": "string" | ||
3198 | } | ||
3199 | ] | ||
3200 | }, | ||
3201 | { | ||
3202 | "WixMedia": [ | ||
3203 | { | ||
3204 | "DiskId_": "number" | ||
3205 | }, | ||
3206 | { | ||
3207 | "CompressionLevel": "number" | ||
3208 | }, | ||
3209 | { | ||
3210 | "Layout": "string" | ||
3211 | } | ||
3212 | ] | ||
3213 | }, | ||
3214 | { | ||
3215 | "WixMediaTemplate": [ | ||
3216 | { | ||
3217 | "CabinetTemplate": "string" | ||
3218 | }, | ||
3219 | { | ||
3220 | "CompressionLevel": "number" | ||
3221 | }, | ||
3222 | { | ||
3223 | "DiskPrompt": "string" | ||
3224 | }, | ||
3225 | { | ||
3226 | "VolumeLabel": "string" | ||
3227 | }, | ||
3228 | { | ||
3229 | "MaximumUncompressedMediaSize": "number" | ||
3230 | }, | ||
3231 | { | ||
3232 | "MaximumCabinetSizeForLargeFileSplitting": "number" | ||
3233 | } | ||
3234 | ] | ||
3235 | }, | ||
3236 | { | ||
3237 | "WixMerge": [ | ||
3238 | { | ||
3239 | "WixMerge": "string" | ||
3240 | }, | ||
3241 | { | ||
3242 | "Language": "number" | ||
3243 | }, | ||
3244 | { | ||
3245 | "Directory_": "string" | ||
3246 | }, | ||
3247 | { | ||
3248 | "SourceFile": "path" | ||
3249 | }, | ||
3250 | { | ||
3251 | "DiskId": "number" | ||
3252 | }, | ||
3253 | { | ||
3254 | "FileCompression": "number" | ||
3255 | }, | ||
3256 | { | ||
3257 | "ConfigurationData": "string" | ||
3258 | }, | ||
3259 | { | ||
3260 | "Feature_": "string" | ||
3261 | } | ||
3262 | ] | ||
3263 | }, | ||
3264 | { | ||
3265 | "WixOrdering": [ | ||
3266 | { | ||
3267 | "ItemType": "string" | ||
3268 | }, | ||
3269 | { | ||
3270 | "ItemId_": "string" | ||
3271 | }, | ||
3272 | { | ||
3273 | "DependsOnType": "string" | ||
3274 | }, | ||
3275 | { | ||
3276 | "DependsOnId_": "string" | ||
3277 | } | ||
3278 | ] | ||
3279 | }, | ||
3280 | { | ||
3281 | "WixPackageFeatureInfo": [ | ||
3282 | { | ||
3283 | "Package": "string" | ||
3284 | }, | ||
3285 | { | ||
3286 | "Feature": "string" | ||
3287 | }, | ||
3288 | { | ||
3289 | "Size": "string" | ||
3290 | }, | ||
3291 | { | ||
3292 | "Parent": "string" | ||
3293 | }, | ||
3294 | { | ||
3295 | "Title": "string" | ||
3296 | }, | ||
3297 | { | ||
3298 | "Description": "string" | ||
3299 | }, | ||
3300 | { | ||
3301 | "Display": "string" | ||
3302 | }, | ||
3303 | { | ||
3304 | "Level": "string" | ||
3305 | }, | ||
3306 | { | ||
3307 | "Directory": "string" | ||
3308 | }, | ||
3309 | { | ||
3310 | "Attributes": "string" | ||
3311 | } | ||
3312 | ] | ||
3313 | }, | ||
3314 | { | ||
3315 | "WixPackageProperties": [ | ||
3316 | { | ||
3317 | "Package": "string" | ||
3318 | }, | ||
3319 | { | ||
3320 | "Vital": "string" | ||
3321 | }, | ||
3322 | { | ||
3323 | "DisplayName": "string" | ||
3324 | }, | ||
3325 | { | ||
3326 | "Description": "string" | ||
3327 | }, | ||
3328 | { | ||
3329 | "DownloadSize": "string" | ||
3330 | }, | ||
3331 | { | ||
3332 | "PackageSize": "string" | ||
3333 | }, | ||
3334 | { | ||
3335 | "InstalledSize": "string" | ||
3336 | }, | ||
3337 | { | ||
3338 | "PackageType": "string" | ||
3339 | }, | ||
3340 | { | ||
3341 | "Permanent": "string" | ||
3342 | }, | ||
3343 | { | ||
3344 | "LogPathVariable": "string" | ||
3345 | }, | ||
3346 | { | ||
3347 | "RollbackLogPathVariable": "string" | ||
3348 | }, | ||
3349 | { | ||
3350 | "Compressed": "string" | ||
3351 | }, | ||
3352 | { | ||
3353 | "DisplayInternalUI": "string" | ||
3354 | }, | ||
3355 | { | ||
3356 | "ProductCode": "string" | ||
3357 | }, | ||
3358 | { | ||
3359 | "UpgradeCode": "string" | ||
3360 | }, | ||
3361 | { | ||
3362 | "Version": "string" | ||
3363 | }, | ||
3364 | { | ||
3365 | "InstallCondition": "string" | ||
3366 | }, | ||
3367 | { | ||
3368 | "Cache": "string" | ||
3369 | } | ||
3370 | ] | ||
3371 | }, | ||
3372 | { | ||
3373 | "WixPatchBaseline": [ | ||
3374 | { | ||
3375 | "WixPatchBaseline": "string" | ||
3376 | }, | ||
3377 | { | ||
3378 | "DiskId": "number" | ||
3379 | }, | ||
3380 | { | ||
3381 | "ValidationFlags": "number" | ||
3382 | } | ||
3383 | ] | ||
3384 | }, | ||
3385 | { | ||
3386 | "WixPatchFamilyGroup": [ | ||
3387 | { | ||
3388 | "WixPatchFamilyGroup": "string" | ||
3389 | } | ||
3390 | ] | ||
3391 | }, | ||
3392 | { | ||
3393 | "WixPatchId": [ | ||
3394 | { | ||
3395 | "ProductCode": "string" | ||
3396 | }, | ||
3397 | { | ||
3398 | "ClientPatchId": "string" | ||
3399 | }, | ||
3400 | { | ||
3401 | "OptimizePatchSizeForLargeFiles": "number" | ||
3402 | }, | ||
3403 | { | ||
3404 | "ApiPatchingSymbolFlags": "number" | ||
3405 | } | ||
3406 | ] | ||
3407 | }, | ||
3408 | { | ||
3409 | "WixPatchMetadata": [ | ||
3410 | { | ||
3411 | "Property": "string" | ||
3412 | }, | ||
3413 | { | ||
3414 | "Value": "string" | ||
3415 | } | ||
3416 | ] | ||
3417 | }, | ||
3418 | { | ||
3419 | "WixPatchRef": [ | ||
3420 | { | ||
3421 | "Table": "string" | ||
3422 | }, | ||
3423 | { | ||
3424 | "PrimaryKeys": "string" | ||
3425 | } | ||
3426 | ] | ||
3427 | }, | ||
3428 | { | ||
3429 | "WixPatchTarget": [ | ||
3430 | { | ||
3431 | "ProductCode": "string" | ||
3432 | } | ||
3433 | ] | ||
3434 | }, | ||
3435 | { | ||
3436 | "WixPayloadProperties": [ | ||
3437 | { | ||
3438 | "Payload": "string" | ||
3439 | }, | ||
3440 | { | ||
3441 | "Package": "string" | ||
3442 | }, | ||
3443 | { | ||
3444 | "Container": "string" | ||
3445 | }, | ||
3446 | { | ||
3447 | "Name": "string" | ||
3448 | }, | ||
3449 | { | ||
3450 | "Size": "string" | ||
3451 | }, | ||
3452 | { | ||
3453 | "DownloadUrl": "string" | ||
3454 | }, | ||
3455 | { | ||
3456 | "LayoutOnly": "string" | ||
3457 | } | ||
3458 | ] | ||
3459 | }, | ||
3460 | { | ||
3461 | "WixProductSearch": [ | ||
3462 | { | ||
3463 | "WixSearch_": "string" | ||
3464 | }, | ||
3465 | { | ||
3466 | "Guid": "string" | ||
3467 | }, | ||
3468 | { | ||
3469 | "Attributes": "number" | ||
3470 | } | ||
3471 | ] | ||
3472 | }, | ||
3473 | { | ||
3474 | "WixProperty": [ | ||
3475 | { | ||
3476 | "Property_": "string" | ||
3477 | }, | ||
3478 | { | ||
3479 | "Attributes": "number" | ||
3480 | } | ||
3481 | ] | ||
3482 | }, | ||
3483 | { | ||
3484 | "WixRegistrySearch": [ | ||
3485 | { | ||
3486 | "WixSearch_": "string" | ||
3487 | }, | ||
3488 | { | ||
3489 | "Root": "number" | ||
3490 | }, | ||
3491 | { | ||
3492 | "Key": "string" | ||
3493 | }, | ||
3494 | { | ||
3495 | "Value": "string" | ||
3496 | }, | ||
3497 | { | ||
3498 | "Attributes": "number" | ||
3499 | } | ||
3500 | ] | ||
3501 | }, | ||
3502 | { | ||
3503 | "WixRelatedBundle": [ | ||
3504 | { | ||
3505 | "Id": "string" | ||
3506 | }, | ||
3507 | { | ||
3508 | "Action": "number" | ||
3509 | } | ||
3510 | ] | ||
3511 | }, | ||
3512 | { | ||
3513 | "WixSearch": [ | ||
3514 | { | ||
3515 | "WixSearch": "string" | ||
3516 | }, | ||
3517 | { | ||
3518 | "Variable": "string" | ||
3519 | }, | ||
3520 | { | ||
3521 | "Condition": "string" | ||
3522 | } | ||
3523 | ] | ||
3524 | }, | ||
3525 | { | ||
3526 | "WixSearchRelation": [ | ||
3527 | { | ||
3528 | "WixSearch_": "string" | ||
3529 | }, | ||
3530 | { | ||
3531 | "ParentId_": "string" | ||
3532 | }, | ||
3533 | { | ||
3534 | "Attributes": "number" | ||
3535 | } | ||
3536 | ] | ||
3537 | }, | ||
3538 | { | ||
3539 | "WixSimpleReference": [ | ||
3540 | { | ||
3541 | "Table": "string" | ||
3542 | }, | ||
3543 | { | ||
3544 | "PrimaryKeys": "string" | ||
3545 | } | ||
3546 | ] | ||
3547 | }, | ||
3548 | { | ||
3549 | "WixSuppressAction": [ | ||
3550 | { | ||
3551 | "SequenceTable": "string" | ||
3552 | }, | ||
3553 | { | ||
3554 | "Action": "string" | ||
3555 | } | ||
3556 | ] | ||
3557 | }, | ||
3558 | { | ||
3559 | "WixSuppressModularization": [ | ||
3560 | { | ||
3561 | "WixSuppressModularization": "string" | ||
3562 | } | ||
3563 | ] | ||
3564 | }, | ||
3565 | { | ||
3566 | "WixUI": [ | ||
3567 | { | ||
3568 | "WixUI": "string" | ||
3569 | } | ||
3570 | ] | ||
3571 | }, | ||
3572 | { | ||
3573 | "WixUpdateRegistration": [ | ||
3574 | { | ||
3575 | "Manufacturer": "string" | ||
3576 | }, | ||
3577 | { | ||
3578 | "Department": "string" | ||
3579 | }, | ||
3580 | { | ||
3581 | "ProductFamily": "string" | ||
3582 | }, | ||
3583 | { | ||
3584 | "Name": "string" | ||
3585 | }, | ||
3586 | { | ||
3587 | "Classification": "string" | ||
3588 | } | ||
3589 | ] | ||
3590 | }, | ||
3591 | { | ||
3592 | "WixVariable": [ | ||
3593 | { | ||
3594 | "WixVariable": "string" | ||
3595 | }, | ||
3596 | { | ||
3597 | "Value": "string" | ||
3598 | }, | ||
3599 | { | ||
3600 | "Attributes": "number" | ||
3601 | } | ||
3602 | ] | ||
3603 | } | ||
3604 | ] \ No newline at end of file | ||
diff --git a/src/WixToolset.Data/WindowsInstallerStandard.cs b/src/WixToolset.Data/WindowsInstallerStandard.cs deleted file mode 100644 index 1060d11b..00000000 --- a/src/WixToolset.Data/WindowsInstallerStandard.cs +++ /dev/null | |||
@@ -1,444 +0,0 @@ | |||
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 System.Collections.Generic; | ||
6 | using System.Reflection; | ||
7 | using System.Xml; | ||
8 | using WixToolset.Data.Rows; | ||
9 | |||
10 | /// <summary> | ||
11 | /// Represents the Windows Installer standard objects. | ||
12 | /// </summary> | ||
13 | public static class WindowsInstallerStandard | ||
14 | { | ||
15 | private static readonly object lockObject = new object(); | ||
16 | |||
17 | private static TableDefinitionCollection tableDefinitions; | ||
18 | private static WixActionRowCollection standardActions; | ||
19 | |||
20 | private static HashSet<string> standardActionNames; | ||
21 | private static HashSet<string> standardDirectories; | ||
22 | private static HashSet<string> standardProperties; | ||
23 | |||
24 | |||
25 | /// <summary> | ||
26 | /// Gets the table definitions stored in this assembly. | ||
27 | /// </summary> | ||
28 | /// <returns>Table definition collection for tables stored in this assembly.</returns> | ||
29 | public static TableDefinitionCollection GetTableDefinitions() | ||
30 | { | ||
31 | lock (lockObject) | ||
32 | { | ||
33 | if (null == WindowsInstallerStandard.tableDefinitions) | ||
34 | { | ||
35 | using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.Data.tables.xml"))) | ||
36 | { | ||
37 | tableDefinitions = TableDefinitionCollection.Load(reader); | ||
38 | } | ||
39 | } | ||
40 | } | ||
41 | |||
42 | return WindowsInstallerStandard.tableDefinitions; | ||
43 | } | ||
44 | |||
45 | /// <summary> | ||
46 | /// Gets the standard actions stored in this assembly. | ||
47 | /// </summary> | ||
48 | /// <returns>Collection of standard actions in this assembly.</returns> | ||
49 | public static WixActionRowCollection GetStandardActions() | ||
50 | { | ||
51 | lock (lockObject) | ||
52 | { | ||
53 | if (null == standardActions) | ||
54 | { | ||
55 | using (XmlReader reader = XmlReader.Create(Assembly.GetExecutingAssembly().GetManifestResourceStream("WixToolset.Data.Data.actions.xml"))) | ||
56 | { | ||
57 | standardActions = WixActionRowCollection.Load(reader); | ||
58 | } | ||
59 | } | ||
60 | } | ||
61 | |||
62 | return standardActions; | ||
63 | } | ||
64 | |||
65 | |||
66 | /// <summary> | ||
67 | /// Gets (and loads if not yet loaded) the list of standard MSI directories. | ||
68 | /// </summary> | ||
69 | /// <value>The list of standard MSI directories.</value> | ||
70 | public static HashSet<string> GetStandardDirectories() | ||
71 | { | ||
72 | lock (lockObject) | ||
73 | { | ||
74 | if (null == standardDirectories) | ||
75 | { | ||
76 | LoadStandardDirectories(); | ||
77 | } | ||
78 | } | ||
79 | |||
80 | return standardDirectories; | ||
81 | } | ||
82 | |||
83 | /// <summary> | ||
84 | /// Find out if an action is a standard action. | ||
85 | /// </summary> | ||
86 | /// <param name="actionName">Name of the action.</param> | ||
87 | /// <returns>true if the action is standard, false otherwise.</returns> | ||
88 | public static bool IsStandardAction(string actionName) | ||
89 | { | ||
90 | lock (lockObject) | ||
91 | { | ||
92 | if (null == standardActionNames) | ||
93 | { | ||
94 | standardActionNames = new HashSet<string>(); | ||
95 | standardActionNames.Add("AllocateRegistrySpace"); | ||
96 | standardActionNames.Add("AppSearch"); | ||
97 | standardActionNames.Add("BindImage"); | ||
98 | standardActionNames.Add("CCPSearch"); | ||
99 | standardActionNames.Add("CostFinalize"); | ||
100 | standardActionNames.Add("CostInitialize"); | ||
101 | standardActionNames.Add("CreateFolders"); | ||
102 | standardActionNames.Add("CreateShortcuts"); | ||
103 | standardActionNames.Add("DeleteServices"); | ||
104 | standardActionNames.Add("DisableRollback"); | ||
105 | standardActionNames.Add("DuplicateFiles"); | ||
106 | standardActionNames.Add("ExecuteAction"); | ||
107 | standardActionNames.Add("FileCost"); | ||
108 | standardActionNames.Add("FindRelatedProducts"); | ||
109 | standardActionNames.Add("ForceReboot"); | ||
110 | standardActionNames.Add("InstallAdminPackage"); | ||
111 | standardActionNames.Add("InstallExecute"); | ||
112 | standardActionNames.Add("InstallExecuteAgain"); | ||
113 | standardActionNames.Add("InstallFiles"); | ||
114 | standardActionNames.Add("InstallFinalize"); | ||
115 | standardActionNames.Add("InstallInitialize"); | ||
116 | standardActionNames.Add("InstallODBC"); | ||
117 | standardActionNames.Add("InstallServices"); | ||
118 | standardActionNames.Add("InstallSFPCatalogFile"); | ||
119 | standardActionNames.Add("InstallValidate"); | ||
120 | standardActionNames.Add("IsolateComponents"); | ||
121 | standardActionNames.Add("LaunchConditions"); | ||
122 | standardActionNames.Add("MigrateFeatureStates"); | ||
123 | standardActionNames.Add("MoveFiles"); | ||
124 | standardActionNames.Add("MsiConfigureServices"); | ||
125 | standardActionNames.Add("MsiPublishAssemblies"); | ||
126 | standardActionNames.Add("MsiUnpublishAssemblies"); | ||
127 | standardActionNames.Add("PatchFiles"); | ||
128 | standardActionNames.Add("ProcessComponents"); | ||
129 | standardActionNames.Add("PublishComponents"); | ||
130 | standardActionNames.Add("PublishFeatures"); | ||
131 | standardActionNames.Add("PublishProduct"); | ||
132 | standardActionNames.Add("RegisterClassInfo"); | ||
133 | standardActionNames.Add("RegisterComPlus"); | ||
134 | standardActionNames.Add("RegisterExtensionInfo"); | ||
135 | standardActionNames.Add("RegisterFonts"); | ||
136 | standardActionNames.Add("RegisterMIMEInfo"); | ||
137 | standardActionNames.Add("RegisterProduct"); | ||
138 | standardActionNames.Add("RegisterProgIdInfo"); | ||
139 | standardActionNames.Add("RegisterTypeLibraries"); | ||
140 | standardActionNames.Add("RegisterUser"); | ||
141 | standardActionNames.Add("RemoveDuplicateFiles"); | ||
142 | standardActionNames.Add("RemoveEnvironmentStrings"); | ||
143 | standardActionNames.Add("RemoveExistingProducts"); | ||
144 | standardActionNames.Add("RemoveFiles"); | ||
145 | standardActionNames.Add("RemoveFolders"); | ||
146 | standardActionNames.Add("RemoveIniValues"); | ||
147 | standardActionNames.Add("RemoveODBC"); | ||
148 | standardActionNames.Add("RemoveRegistryValues"); | ||
149 | standardActionNames.Add("RemoveShortcuts"); | ||
150 | standardActionNames.Add("ResolveSource"); | ||
151 | standardActionNames.Add("RMCCPSearch"); | ||
152 | standardActionNames.Add("ScheduleReboot"); | ||
153 | standardActionNames.Add("SelfRegModules"); | ||
154 | standardActionNames.Add("SelfUnregModules"); | ||
155 | standardActionNames.Add("SetODBCFolders"); | ||
156 | standardActionNames.Add("StartServices"); | ||
157 | standardActionNames.Add("StopServices"); | ||
158 | standardActionNames.Add("UnpublishComponents"); | ||
159 | standardActionNames.Add("UnpublishFeatures"); | ||
160 | standardActionNames.Add("UnregisterClassInfo"); | ||
161 | standardActionNames.Add("UnregisterComPlus"); | ||
162 | standardActionNames.Add("UnregisterExtensionInfo"); | ||
163 | standardActionNames.Add("UnregisterFonts"); | ||
164 | standardActionNames.Add("UnregisterMIMEInfo"); | ||
165 | standardActionNames.Add("UnregisterProgIdInfo"); | ||
166 | standardActionNames.Add("UnregisterTypeLibraries"); | ||
167 | standardActionNames.Add("ValidateProductID"); | ||
168 | standardActionNames.Add("WriteEnvironmentStrings"); | ||
169 | standardActionNames.Add("WriteIniValues"); | ||
170 | standardActionNames.Add("WriteRegistryValues"); | ||
171 | } | ||
172 | } | ||
173 | |||
174 | return standardActionNames.Contains(actionName); | ||
175 | } | ||
176 | |||
177 | /// <summary> | ||
178 | /// Find out if a directory is a standard directory. | ||
179 | /// </summary> | ||
180 | /// <param name="directoryName">Name of the directory.</param> | ||
181 | /// <returns>true if the directory is standard, false otherwise.</returns> | ||
182 | public static bool IsStandardDirectory(string directoryName) | ||
183 | { | ||
184 | lock (lockObject) | ||
185 | { | ||
186 | if (null == standardDirectories) | ||
187 | { | ||
188 | LoadStandardDirectories(); | ||
189 | } | ||
190 | } | ||
191 | |||
192 | return standardDirectories.Contains(directoryName); | ||
193 | } | ||
194 | |||
195 | /// <summary> | ||
196 | /// Find out if a property is a standard property. | ||
197 | /// References: | ||
198 | /// Title: Property Reference [Windows Installer]: | ||
199 | /// URL: http://msdn.microsoft.com/library/en-us/msi/setup/property_reference.asp | ||
200 | /// </summary> | ||
201 | /// <param name="propertyName">Name of the property.</param> | ||
202 | /// <returns>true if a property is standard, false otherwise.</returns> | ||
203 | public static bool IsStandardProperty(string propertyName) | ||
204 | { | ||
205 | lock (lockObject) | ||
206 | { | ||
207 | if (null == standardProperties) | ||
208 | { | ||
209 | standardProperties = new HashSet<string>(); | ||
210 | standardProperties.Add("~"); // REG_MULTI_SZ/NULL marker | ||
211 | standardProperties.Add("ACTION"); | ||
212 | standardProperties.Add("ADDDEFAULT"); | ||
213 | standardProperties.Add("ADDLOCAL"); | ||
214 | standardProperties.Add("ADDDSOURCE"); | ||
215 | standardProperties.Add("AdminProperties"); | ||
216 | standardProperties.Add("AdminUser"); | ||
217 | standardProperties.Add("ADVERTISE"); | ||
218 | standardProperties.Add("AFTERREBOOT"); | ||
219 | standardProperties.Add("AllowProductCodeMismatches"); | ||
220 | standardProperties.Add("AllowProductVersionMajorMismatches"); | ||
221 | standardProperties.Add("ALLUSERS"); | ||
222 | standardProperties.Add("Alpha"); | ||
223 | standardProperties.Add("ApiPatchingSymbolFlags"); | ||
224 | standardProperties.Add("ARPAUTHORIZEDCDFPREFIX"); | ||
225 | standardProperties.Add("ARPCOMMENTS"); | ||
226 | standardProperties.Add("ARPCONTACT"); | ||
227 | standardProperties.Add("ARPHELPLINK"); | ||
228 | standardProperties.Add("ARPHELPTELEPHONE"); | ||
229 | standardProperties.Add("ARPINSTALLLOCATION"); | ||
230 | standardProperties.Add("ARPNOMODIFY"); | ||
231 | standardProperties.Add("ARPNOREMOVE"); | ||
232 | standardProperties.Add("ARPNOREPAIR"); | ||
233 | standardProperties.Add("ARPPRODUCTIONICON"); | ||
234 | standardProperties.Add("ARPREADME"); | ||
235 | standardProperties.Add("ARPSIZE"); | ||
236 | standardProperties.Add("ARPSYSTEMCOMPONENT"); | ||
237 | standardProperties.Add("ARPULRINFOABOUT"); | ||
238 | standardProperties.Add("ARPURLUPDATEINFO"); | ||
239 | standardProperties.Add("AVAILABLEFREEREG"); | ||
240 | standardProperties.Add("BorderSize"); | ||
241 | standardProperties.Add("BorderTop"); | ||
242 | standardProperties.Add("CaptionHeight"); | ||
243 | standardProperties.Add("CCP_DRIVE"); | ||
244 | standardProperties.Add("ColorBits"); | ||
245 | standardProperties.Add("COMPADDLOCAL"); | ||
246 | standardProperties.Add("COMPADDSOURCE"); | ||
247 | standardProperties.Add("COMPANYNAME"); | ||
248 | standardProperties.Add("ComputerName"); | ||
249 | standardProperties.Add("CostingComplete"); | ||
250 | standardProperties.Add("Date"); | ||
251 | standardProperties.Add("DefaultUIFont"); | ||
252 | standardProperties.Add("DISABLEADVTSHORTCUTS"); | ||
253 | standardProperties.Add("DISABLEMEDIA"); | ||
254 | standardProperties.Add("DISABLEROLLBACK"); | ||
255 | standardProperties.Add("DiskPrompt"); | ||
256 | standardProperties.Add("DontRemoveTempFolderWhenFinished"); | ||
257 | standardProperties.Add("EnableUserControl"); | ||
258 | standardProperties.Add("EXECUTEACTION"); | ||
259 | standardProperties.Add("EXECUTEMODE"); | ||
260 | standardProperties.Add("FASTOEM"); | ||
261 | standardProperties.Add("FILEADDDEFAULT"); | ||
262 | standardProperties.Add("FILEADDLOCAL"); | ||
263 | standardProperties.Add("FILEADDSOURCE"); | ||
264 | standardProperties.Add("IncludeWholeFilesOnly"); | ||
265 | standardProperties.Add("Installed"); | ||
266 | standardProperties.Add("INSTALLLEVEL"); | ||
267 | standardProperties.Add("Intel"); | ||
268 | standardProperties.Add("Intel64"); | ||
269 | standardProperties.Add("IsAdminPackage"); | ||
270 | standardProperties.Add("LeftUnit"); | ||
271 | standardProperties.Add("LIMITUI"); | ||
272 | standardProperties.Add("ListOfPatchGUIDsToReplace"); | ||
273 | standardProperties.Add("ListOfTargetProductCode"); | ||
274 | standardProperties.Add("LOGACTION"); | ||
275 | standardProperties.Add("LogonUser"); | ||
276 | standardProperties.Add("Manufacturer"); | ||
277 | standardProperties.Add("MEDIAPACKAGEPATH"); | ||
278 | standardProperties.Add("MediaSourceDir"); | ||
279 | standardProperties.Add("MinimumRequiredMsiVersion"); | ||
280 | standardProperties.Add("MsiAMD64"); | ||
281 | standardProperties.Add("MSIAPRSETTINGSIDENTIFIER"); | ||
282 | standardProperties.Add("MSICHECKCRCS"); | ||
283 | standardProperties.Add("MSIDISABLERMRESTART"); | ||
284 | standardProperties.Add("MSIENFORCEUPGRADECOMPONENTRULES"); | ||
285 | standardProperties.Add("MSIFASTINSTALL"); | ||
286 | standardProperties.Add("MsiFileToUseToCreatePatchTables"); | ||
287 | standardProperties.Add("MsiHiddenProperties"); | ||
288 | standardProperties.Add("MSIINSTALLPERUSER"); | ||
289 | standardProperties.Add("MSIINSTANCEGUID"); | ||
290 | standardProperties.Add("MsiLogFileLocation"); | ||
291 | standardProperties.Add("MsiLogging"); | ||
292 | standardProperties.Add("MsiNetAssemblySupport"); | ||
293 | standardProperties.Add("MSINEWINSTANCE"); | ||
294 | standardProperties.Add("MSINODISABLEMEDIA"); | ||
295 | standardProperties.Add("MsiNTProductType"); | ||
296 | standardProperties.Add("MsiNTSuiteBackOffice"); | ||
297 | standardProperties.Add("MsiNTSuiteDataCenter"); | ||
298 | standardProperties.Add("MsiNTSuiteEnterprise"); | ||
299 | standardProperties.Add("MsiNTSuiteSmallBusiness"); | ||
300 | standardProperties.Add("MsiNTSuiteSmallBusinessRestricted"); | ||
301 | standardProperties.Add("MsiNTSuiteWebServer"); | ||
302 | standardProperties.Add("MsiNTSuitePersonal"); | ||
303 | standardProperties.Add("MsiPatchRemovalList"); | ||
304 | standardProperties.Add("MSIPATCHREMOVE"); | ||
305 | standardProperties.Add("MSIRESTARTMANAGERCONTROL"); | ||
306 | standardProperties.Add("MsiRestartManagerSessionKey"); | ||
307 | standardProperties.Add("MSIRMSHUTDOWN"); | ||
308 | standardProperties.Add("MsiRunningElevated"); | ||
309 | standardProperties.Add("MsiUIHideCancel"); | ||
310 | standardProperties.Add("MsiUIProgressOnly"); | ||
311 | standardProperties.Add("MsiUISourceResOnly"); | ||
312 | standardProperties.Add("MsiSystemRebootPending"); | ||
313 | standardProperties.Add("MsiWin32AssemblySupport"); | ||
314 | standardProperties.Add("NOCOMPANYNAME"); | ||
315 | standardProperties.Add("NOUSERNAME"); | ||
316 | standardProperties.Add("OLEAdvtSupport"); | ||
317 | standardProperties.Add("OptimizePatchSizeForLargeFiles"); | ||
318 | standardProperties.Add("OriginalDatabase"); | ||
319 | standardProperties.Add("OutOfDiskSpace"); | ||
320 | standardProperties.Add("OutOfNoRbDiskSpace"); | ||
321 | standardProperties.Add("ParentOriginalDatabase"); | ||
322 | standardProperties.Add("ParentProductCode"); | ||
323 | standardProperties.Add("PATCH"); | ||
324 | standardProperties.Add("PATCH_CACHE_DIR"); | ||
325 | standardProperties.Add("PATCH_CACHE_ENABLED"); | ||
326 | standardProperties.Add("PatchGUID"); | ||
327 | standardProperties.Add("PATCHNEWPACKAGECODE"); | ||
328 | standardProperties.Add("PATCHNEWSUMMARYCOMMENTS"); | ||
329 | standardProperties.Add("PATCHNEWSUMMARYSUBJECT"); | ||
330 | standardProperties.Add("PatchOutputPath"); | ||
331 | standardProperties.Add("PatchSourceList"); | ||
332 | standardProperties.Add("PhysicalMemory"); | ||
333 | standardProperties.Add("PIDKEY"); | ||
334 | standardProperties.Add("PIDTemplate"); | ||
335 | standardProperties.Add("Preselected"); | ||
336 | standardProperties.Add("PRIMARYFOLDER"); | ||
337 | standardProperties.Add("PrimaryVolumePath"); | ||
338 | standardProperties.Add("PrimaryVolumeSpaceAvailable"); | ||
339 | standardProperties.Add("PrimaryVolumeSpaceRemaining"); | ||
340 | standardProperties.Add("PrimaryVolumeSpaceRequired"); | ||
341 | standardProperties.Add("Privileged"); | ||
342 | standardProperties.Add("ProductCode"); | ||
343 | standardProperties.Add("ProductID"); | ||
344 | standardProperties.Add("ProductLanguage"); | ||
345 | standardProperties.Add("ProductName"); | ||
346 | standardProperties.Add("ProductState"); | ||
347 | standardProperties.Add("ProductVersion"); | ||
348 | standardProperties.Add("PROMPTROLLBACKCOST"); | ||
349 | standardProperties.Add("REBOOT"); | ||
350 | standardProperties.Add("REBOOTPROMPT"); | ||
351 | standardProperties.Add("RedirectedDllSupport"); | ||
352 | standardProperties.Add("REINSTALL"); | ||
353 | standardProperties.Add("REINSTALLMODE"); | ||
354 | standardProperties.Add("RemoveAdminTS"); | ||
355 | standardProperties.Add("REMOVE"); | ||
356 | standardProperties.Add("ReplacedInUseFiles"); | ||
357 | standardProperties.Add("RestrictedUserControl"); | ||
358 | standardProperties.Add("RESUME"); | ||
359 | standardProperties.Add("RollbackDisabled"); | ||
360 | standardProperties.Add("ROOTDRIVE"); | ||
361 | standardProperties.Add("ScreenX"); | ||
362 | standardProperties.Add("ScreenY"); | ||
363 | standardProperties.Add("SecureCustomProperties"); | ||
364 | standardProperties.Add("ServicePackLevel"); | ||
365 | standardProperties.Add("ServicePackLevelMinor"); | ||
366 | standardProperties.Add("SEQUENCE"); | ||
367 | standardProperties.Add("SharedWindows"); | ||
368 | standardProperties.Add("ShellAdvtSupport"); | ||
369 | standardProperties.Add("SHORTFILENAMES"); | ||
370 | standardProperties.Add("SourceDir"); | ||
371 | standardProperties.Add("SOURCELIST"); | ||
372 | standardProperties.Add("SystemLanguageID"); | ||
373 | standardProperties.Add("TARGETDIR"); | ||
374 | standardProperties.Add("TerminalServer"); | ||
375 | standardProperties.Add("TextHeight"); | ||
376 | standardProperties.Add("Time"); | ||
377 | standardProperties.Add("TRANSFORMS"); | ||
378 | standardProperties.Add("TRANSFORMSATSOURCE"); | ||
379 | standardProperties.Add("TRANSFORMSSECURE"); | ||
380 | standardProperties.Add("TTCSupport"); | ||
381 | standardProperties.Add("UILevel"); | ||
382 | standardProperties.Add("UpdateStarted"); | ||
383 | standardProperties.Add("UpgradeCode"); | ||
384 | standardProperties.Add("UPGRADINGPRODUCTCODE"); | ||
385 | standardProperties.Add("UserLanguageID"); | ||
386 | standardProperties.Add("USERNAME"); | ||
387 | standardProperties.Add("UserSID"); | ||
388 | standardProperties.Add("Version9X"); | ||
389 | standardProperties.Add("VersionDatabase"); | ||
390 | standardProperties.Add("VersionMsi"); | ||
391 | standardProperties.Add("VersionNT"); | ||
392 | standardProperties.Add("VersionNT64"); | ||
393 | standardProperties.Add("VirtualMemory"); | ||
394 | standardProperties.Add("WindowsBuild"); | ||
395 | standardProperties.Add("WindowsVolume"); | ||
396 | } | ||
397 | } | ||
398 | |||
399 | return standardProperties.Contains(propertyName); | ||
400 | } | ||
401 | |||
402 | /// <summary> | ||
403 | /// Sets up a hashtable with the set of standard MSI directories | ||
404 | /// </summary> | ||
405 | private static void LoadStandardDirectories() | ||
406 | { | ||
407 | lock (lockObject) | ||
408 | { | ||
409 | if (null == standardDirectories) | ||
410 | { | ||
411 | standardDirectories = new HashSet<string>(); | ||
412 | standardDirectories.Add("TARGETDIR"); | ||
413 | standardDirectories.Add("AdminToolsFolder"); | ||
414 | standardDirectories.Add("AppDataFolder"); | ||
415 | standardDirectories.Add("CommonAppDataFolder"); | ||
416 | standardDirectories.Add("CommonFilesFolder"); | ||
417 | standardDirectories.Add("DesktopFolder"); | ||
418 | standardDirectories.Add("FavoritesFolder"); | ||
419 | standardDirectories.Add("FontsFolder"); | ||
420 | standardDirectories.Add("LocalAppDataFolder"); | ||
421 | standardDirectories.Add("MyPicturesFolder"); | ||
422 | standardDirectories.Add("PersonalFolder"); | ||
423 | standardDirectories.Add("ProgramFilesFolder"); | ||
424 | standardDirectories.Add("ProgramMenuFolder"); | ||
425 | standardDirectories.Add("SendToFolder"); | ||
426 | standardDirectories.Add("StartMenuFolder"); | ||
427 | standardDirectories.Add("StartupFolder"); | ||
428 | standardDirectories.Add("System16Folder"); | ||
429 | standardDirectories.Add("SystemFolder"); | ||
430 | standardDirectories.Add("TempFolder"); | ||
431 | standardDirectories.Add("TemplateFolder"); | ||
432 | standardDirectories.Add("WindowsFolder"); | ||
433 | standardDirectories.Add("CommonFiles64Folder"); | ||
434 | standardDirectories.Add("ProgramFiles64Folder"); | ||
435 | standardDirectories.Add("System64Folder"); | ||
436 | standardDirectories.Add("NetHoodFolder"); | ||
437 | standardDirectories.Add("PrintHoodFolder"); | ||
438 | standardDirectories.Add("RecentFolder"); | ||
439 | standardDirectories.Add("WindowsVolume"); | ||
440 | } | ||
441 | } | ||
442 | } | ||
443 | } | ||
444 | } | ||
diff --git a/src/WixToolset.Data/WixDataStrings.Designer.cs b/src/WixToolset.Data/WixDataStrings.Designer.cs index 27c2b22c..37cced32 100644 --- a/src/WixToolset.Data/WixDataStrings.Designer.cs +++ b/src/WixToolset.Data/WixDataStrings.Designer.cs | |||
@@ -14,7 +14,7 @@ namespace WixToolset.Data { | |||
14 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] | 14 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] |
15 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] | 15 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] |
16 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] | 16 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] |
17 | internal class WixDataStrings { | 17 | public class WixDataStrings { |
18 | 18 | ||
19 | private static global::System.Resources.ResourceManager resourceMan; | 19 | private static global::System.Resources.ResourceManager resourceMan; |
20 | 20 | ||
@@ -64,7 +64,7 @@ namespace WixToolset.Data { | |||
64 | /// <summary> | 64 | /// <summary> |
65 | /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. | 65 | /// Looks up a localized string similar to The value '{0}' is not a legal identifier and therefore cannot be modularized.. |
66 | /// </summary> | 66 | /// </summary> |
67 | internal static string EXP_CannotModularizeIllegalID { | 67 | public static string EXP_CannotModularizeIllegalID { |
68 | get { | 68 | get { |
69 | return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture); | 69 | return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture); |
70 | } | 70 | } |
@@ -73,7 +73,7 @@ namespace WixToolset.Data { | |||
73 | /// <summary> | 73 | /// <summary> |
74 | /// Looks up a localized string similar to A Merge table FileCompression column cannot be set to the invalid value '{0}'.. | 74 | /// Looks up a localized string similar to A Merge table FileCompression column cannot be set to the invalid value '{0}'.. |
75 | /// </summary> | 75 | /// </summary> |
76 | internal static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue { | 76 | public static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue { |
77 | get { | 77 | get { |
78 | return ResourceManager.GetString("EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue", resourceCulture); | 78 | return ResourceManager.GetString("EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue", resourceCulture); |
79 | } | 79 | } |
@@ -154,7 +154,7 @@ namespace WixToolset.Data { | |||
154 | /// <summary> | 154 | /// <summary> |
155 | /// Looks up a localized string similar to A Merge table FileCompression column contains an invalid value '{0}'.. | 155 | /// Looks up a localized string similar to A Merge table FileCompression column contains an invalid value '{0}'.. |
156 | /// </summary> | 156 | /// </summary> |
157 | internal static string EXP_MergeTableFileCompressionColumnContainsInvalidValue { | 157 | public static string EXP_MergeTableFileCompressionColumnContainsInvalidValue { |
158 | get { | 158 | get { |
159 | return ResourceManager.GetString("EXP_MergeTableFileCompressionColumnContainsInvalidValue", resourceCulture); | 159 | return ResourceManager.GetString("EXP_MergeTableFileCompressionColumnContainsInvalidValue", resourceCulture); |
160 | } | 160 | } |
@@ -190,7 +190,7 @@ namespace WixToolset.Data { | |||
190 | /// <summary> | 190 | /// <summary> |
191 | /// Looks up a localized string similar to Unexpected entry section type: {0}. | 191 | /// Looks up a localized string similar to Unexpected entry section type: {0}. |
192 | /// </summary> | 192 | /// </summary> |
193 | internal static string EXP_UnexpectedEntrySectionType { | 193 | public static string EXP_UnexpectedEntrySectionType { |
194 | get { | 194 | get { |
195 | return ResourceManager.GetString("EXP_UnexpectedEntrySectionType", resourceCulture); | 195 | return ResourceManager.GetString("EXP_UnexpectedEntrySectionType", resourceCulture); |
196 | } | 196 | } |
@@ -199,7 +199,7 @@ namespace WixToolset.Data { | |||
199 | /// <summary> | 199 | /// <summary> |
200 | /// Looks up a localized string similar to Unknown column type: {0}. | 200 | /// Looks up a localized string similar to Unknown column type: {0}. |
201 | /// </summary> | 201 | /// </summary> |
202 | internal static string EXP_UnknownColumnType { | 202 | public static string EXP_UnknownColumnType { |
203 | get { | 203 | get { |
204 | return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture); | 204 | return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture); |
205 | } | 205 | } |
@@ -217,7 +217,7 @@ namespace WixToolset.Data { | |||
217 | /// <summary> | 217 | /// <summary> |
218 | /// Looks up a localized string similar to The table {0} is not supported.. | 218 | /// Looks up a localized string similar to The table {0} is not supported.. |
219 | /// </summary> | 219 | /// </summary> |
220 | internal static string EXP_UnsupportedTable { | 220 | public static string EXP_UnsupportedTable { |
221 | get { | 221 | get { |
222 | return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); | 222 | return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture); |
223 | } | 223 | } |
diff --git a/src/WixToolset.Data/WixInvalidIdtException.cs b/src/WixToolset.Data/WixInvalidIdtException.cs deleted file mode 100644 index 33fd0591..00000000 --- a/src/WixToolset.Data/WixInvalidIdtException.cs +++ /dev/null | |||
@@ -1,32 +0,0 @@ | |||
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 System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// WiX invalid idt exception. | ||
9 | /// </summary> | ||
10 | [Serializable] | ||
11 | public sealed class WixInvalidIdtException : WixException | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Instantiate a new WixInvalidIdtException. | ||
15 | /// </summary> | ||
16 | /// <param name="idtFile">The invalid idt file.</param> | ||
17 | public WixInvalidIdtException(string idtFile) : | ||
18 | base(WixDataErrors.InvalidIdt(new SourceLineNumber(idtFile), idtFile)) | ||
19 | { | ||
20 | } | ||
21 | |||
22 | /// <summary> | ||
23 | /// Instantiate a new WixInvalidIdtException. | ||
24 | /// </summary> | ||
25 | /// <param name="idtFile">The invalid idt file.</param> | ||
26 | /// <param name="tableName">The table name of the invalid idt file.</param> | ||
27 | public WixInvalidIdtException(string idtFile, string tableName) : | ||
28 | base(WixDataErrors.InvalidIdt(new SourceLineNumber(idtFile), idtFile, tableName)) | ||
29 | { | ||
30 | } | ||
31 | } | ||
32 | } | ||
diff --git a/src/WixToolset.Data/WixMissingTableDefinitionException.cs b/src/WixToolset.Data/WixMissingTableDefinitionException.cs deleted file mode 100644 index 6295813b..00000000 --- a/src/WixToolset.Data/WixMissingTableDefinitionException.cs +++ /dev/null | |||
@@ -1,22 +0,0 @@ | |||
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 System; | ||
6 | |||
7 | /// <summary> | ||
8 | /// Exception thrown when a table definition is missing. | ||
9 | /// </summary> | ||
10 | [Serializable] | ||
11 | public class WixMissingTableDefinitionException : WixException | ||
12 | { | ||
13 | /// <summary> | ||
14 | /// Instantiate new WixMissingTableDefinitionException. | ||
15 | /// </summary> | ||
16 | /// <param name="error">Localized error information.</param> | ||
17 | public WixMissingTableDefinitionException(MessageEventArgs error) | ||
18 | : base(error) | ||
19 | { | ||
20 | } | ||
21 | } | ||
22 | } | ||
diff --git a/src/WixToolset.Data/WixToolset.Data.csproj b/src/WixToolset.Data/WixToolset.Data.csproj index e57f61ed..e8032768 100644 --- a/src/WixToolset.Data/WixToolset.Data.csproj +++ b/src/WixToolset.Data/WixToolset.Data.csproj | |||
@@ -10,11 +10,6 @@ | |||
10 | <Description></Description> | 10 | <Description></Description> |
11 | </PropertyGroup> | 11 | </PropertyGroup> |
12 | 12 | ||
13 | <ItemGroup> | ||
14 | <EmbeddedResource Include="Data\actions.xml" /> | ||
15 | <EmbeddedResource Include="Data\tables.xml" /> | ||
16 | </ItemGroup> | ||
17 | |||
18 | <!-- | 13 | <!-- |
19 | <ItemGroup> | 14 | <ItemGroup> |
20 | <MsgGenSource Include="Data\messages.xml"> | 15 | <MsgGenSource Include="Data\messages.xml"> |
diff --git a/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs new file mode 100644 index 00000000..53aa2196 --- /dev/null +++ b/src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs | |||
@@ -0,0 +1,135 @@ | |||
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 WixToolsetTest.Data | ||
4 | { | ||
5 | using WixToolset.Data; | ||
6 | using WixToolset.Data.Tuples; | ||
7 | using Xunit; | ||
8 | |||
9 | public class TupleDefinitionFixture | ||
10 | { | ||
11 | [Fact] | ||
12 | public void CanCreateFileTuple() | ||
13 | { | ||
14 | var tuple = TupleDefinitions.File.CreateTuple(); | ||
15 | Assert.IsType<FileTuple>(tuple); | ||
16 | Assert.Same(TupleDefinitions.File, tuple.Definition); | ||
17 | } | ||
18 | |||
19 | [Fact] | ||
20 | public void CanCreateFileTupleByName() | ||
21 | { | ||
22 | var tuple = TupleDefinitions.ByName("File").CreateTuple(); | ||
23 | Assert.IsType<FileTuple>(tuple); | ||
24 | Assert.Same(TupleDefinitions.File, tuple.Definition); | ||
25 | } | ||
26 | |||
27 | //[Fact] | ||
28 | //public void CanCreateFileTupleByType() | ||
29 | //{ | ||
30 | // var tuple = TupleDefinitions.CreateTuple<FileTuple>(); | ||
31 | // Assert.Same(TupleDefinitions.File, tuple.Definition); | ||
32 | //} | ||
33 | |||
34 | [Fact] | ||
35 | public void CanSetComponentFieldInFileTupleByCasting() | ||
36 | { | ||
37 | var fileTuple = (FileTuple)TupleDefinitions.File.CreateTuple(); | ||
38 | fileTuple.Component_ = "Foo"; | ||
39 | Assert.Equal("Foo", fileTuple.Component_); | ||
40 | } | ||
41 | |||
42 | [Fact] | ||
43 | public void CanCheckNameofField() | ||
44 | { | ||
45 | var fileTuple = new FileTuple(); | ||
46 | Assert.Equal("Component_", fileTuple.Definition.FieldDefinitions[1].Name); | ||
47 | Assert.Null(fileTuple.Fields[0]); | ||
48 | fileTuple.Component_ = "Foo"; | ||
49 | Assert.Equal("Component_", fileTuple.Fields[1].Name); | ||
50 | Assert.Same(fileTuple.Definition.FieldDefinitions[1].Name, fileTuple.Fields[1].Name); | ||
51 | } | ||
52 | |||
53 | [Fact] | ||
54 | public void CanSetComponentFieldInFileTupleByNew() | ||
55 | { | ||
56 | var fileTuple = new FileTuple(); | ||
57 | fileTuple.Component_ = "Foo"; | ||
58 | Assert.Equal("Foo", fileTuple.Component_); | ||
59 | } | ||
60 | |||
61 | [Fact] | ||
62 | public void CanGetContext() | ||
63 | { | ||
64 | using (new IntermediateFieldContext("bar")) | ||
65 | { | ||
66 | var fileTuple = new FileTuple(); | ||
67 | fileTuple.Component_ = "Foo"; | ||
68 | |||
69 | var field = fileTuple[FileTupleFields.Component_]; | ||
70 | Assert.Equal("Foo", field.AsString()); | ||
71 | Assert.Equal("bar", field.Context); | ||
72 | } | ||
73 | } | ||
74 | |||
75 | [Fact] | ||
76 | public void CanSetInNestedContext() | ||
77 | { | ||
78 | var fileTuple = new FileTuple(); | ||
79 | |||
80 | using (new IntermediateFieldContext("bar")) | ||
81 | { | ||
82 | fileTuple.Component_ = "Foo"; | ||
83 | |||
84 | var field = fileTuple[FileTupleFields.Component_]; | ||
85 | Assert.Equal("Foo", field.AsString()); | ||
86 | Assert.Equal("bar", field.Context); | ||
87 | |||
88 | using (new IntermediateFieldContext("baz")) | ||
89 | { | ||
90 | fileTuple.Component_ = "Foo2"; | ||
91 | |||
92 | field = fileTuple[FileTupleFields.Component_]; | ||
93 | Assert.Equal("Foo2", field.AsString()); | ||
94 | Assert.Equal("baz", field.Context); | ||
95 | |||
96 | Assert.Equal("Foo", (string)field.PreviousValue); | ||
97 | Assert.Equal("bar", field.PreviousValue.Context); | ||
98 | } | ||
99 | |||
100 | fileTuple.Component_ = "Foo3"; | ||
101 | |||
102 | field = fileTuple[FileTupleFields.Component_]; | ||
103 | Assert.Equal("Foo3", field.AsString()); | ||
104 | Assert.Equal("bar", field.Context); | ||
105 | |||
106 | Assert.Equal("Foo2", (string)field.PreviousValue); | ||
107 | Assert.Equal("baz", field.PreviousValue.Context); | ||
108 | |||
109 | Assert.Equal("Foo", (string)field.PreviousValue.PreviousValue); | ||
110 | Assert.Equal("bar", field.PreviousValue.PreviousValue.Context); | ||
111 | } | ||
112 | |||
113 | fileTuple.Component_ = "Foo4"; | ||
114 | |||
115 | var fieldOutside = fileTuple[FileTupleFields.Component_]; | ||
116 | Assert.Equal("Foo4", fieldOutside.AsString()); | ||
117 | Assert.Null(fieldOutside.Context); | ||
118 | } | ||
119 | |||
120 | //[Fact] | ||
121 | //public void CanSetComponentFieldInFileTuple() | ||
122 | //{ | ||
123 | // var fileTuple = TupleDefinitions.File.CreateTuple<FileTuple>(); | ||
124 | // fileTuple.Component_ = "Foo"; | ||
125 | // Assert.Equal("Foo", fileTuple.Component_); | ||
126 | //} | ||
127 | |||
128 | //[Fact] | ||
129 | //public void CanThrowOnMismatchTupleType() | ||
130 | //{ | ||
131 | // var e = Assert.Throws<InvalidCastException>(() => TupleDefinitions.File.CreateTuple<ComponentTuple>()); | ||
132 | // Assert.Equal("Requested wrong type WixToolset.Data.Tuples.ComponentTuple, actual type WixToolset.Data.Tuples.FileTuple", e.Message); | ||
133 | //} | ||
134 | } | ||
135 | } | ||
diff --git a/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj new file mode 100644 index 00000000..fe0d99c5 --- /dev/null +++ b/src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj | |||
@@ -0,0 +1,19 @@ | |||
1 | <Project Sdk="Microsoft.NET.Sdk"> | ||
2 | |||
3 | <PropertyGroup> | ||
4 | <TargetFramework>netcoreapp2.0</TargetFramework> | ||
5 | |||
6 | <IsPackable>false</IsPackable> | ||
7 | </PropertyGroup> | ||
8 | |||
9 | <ItemGroup> | ||
10 | <PackageReference Include="Microsoft.NET.Test.Sdk" Version="15.3.0-preview-20170628-02" /> | ||
11 | <PackageReference Include="xunit" Version="2.2.0" /> | ||
12 | <PackageReference Include="xunit.runner.visualstudio" Version="2.2.0" /> | ||
13 | </ItemGroup> | ||
14 | |||
15 | <ItemGroup> | ||
16 | <ProjectReference Include="..\..\WixToolset.Data\WixToolset.Data.csproj" /> | ||
17 | </ItemGroup> | ||
18 | |||
19 | </Project> | ||