@joebigelow / wix-1 / commits / 69b15d96

Introduce WiX Intermediate Representation

Rob Mensching committed Nov 1, 2017 at 10:56 UTC 69b15d96cebdbb7201b1849b4f62786633d70b8d
313 files changed +22797 -12677
src/WixToolset.Data/AssemblyInfo.cs
+1 -1
@@ -5,5 +5,5 @@ using System.Reflection;
5 using System.Runtime.InteropServices;
6
7 [assembly: AssemblyCulture("")]
8 -[assembly:CLSCompliant(true)]
8 +[assembly: CLSCompliant(true)]
9 [assembly: ComVisible(false)]
src/WixToolset.Data/Bind/BindPath.cs renamed
src/WixToolset.Data/Bind/BindVariable.cs new
+33
@@ -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 +}
src/WixToolset.Data/ColumnDefinition.cs deleted
-1032
@@ -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 -}
src/WixToolset.Data/Common.cs
+1 -16
@@ -11,14 +11,12 @@ namespace WixToolset.Data
11
12 internal static class Common
13 {
14 - public const int IntegerNotSet = int.MinValue;
14 + public const int IntegerNotSet = Int32.MinValue;
15
16 internal static readonly XNamespace W3SchemaPrefix = "http://www.w3.org/";
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" };
19
20 - private static readonly Regex LegalIdentifierCharacters = new Regex(@"^[_A-Za-z][0-9A-Za-z_\.]*$", RegexOptions.Compiled);
21 -
20 internal static string GetFileHash(FileInfo fileInfo)
21 {
22 byte[] hashBytes;
@@ -38,18 +36,5 @@ namespace WixToolset.Data
36
37 return sb.ToString();
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 - }
39 }
40 }
src/WixToolset.Data/CompressionLevel.cs
+2 -3
@@ -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
3 namespace WixToolset.Data
4 {
5 -
5 /// <summary>
6 /// Compression level to use when creating cabinet.
7 /// </summary>
@@ -23,4 +22,4 @@ namespace WixToolset.Data
22 /// <summary>Use ms-zip compression.</summary>
23 Mszip
24 }
26 -}
25 +}
\ No newline at end of file
src/WixToolset.Data/Data/actions.xml deleted
-76
@@ -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>
src/WixToolset.Data/Data/tables.xml deleted
-1962
@@ -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 &quot;short name|long name&quot; 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 &quot;ole32.dll&quot; or &quot;mapi32.dll&quot;"/>
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 &quot;type/format&quot; 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 &quot;type/format&quot;."/>
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 &quot;selected&quot; 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 &quot;short name|long name&quot; 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 &quot;ALL&quot;."/>
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>
src/WixToolset.Data/DuplicateSymbolsException.cs
+2
@@ -5,6 +5,7 @@ namespace WixToolset.Data
5 using System;
6 using System.Collections;
7
8 +#if false
9 /// <summary>
10 /// Duplicate symbols exception.
11 /// </summary>
@@ -32,4 +33,5 @@ namespace WixToolset.Data
33 return this.duplicateSymbols;
34 }
35 }
36 +#endif
37 }
src/WixToolset.Data/Field.cs deleted
-266
@@ -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 -}
src/WixToolset.Data/FileFormat.cs
+2
@@ -13,5 +13,7 @@ namespace WixToolset.Data
13 Wixout,
14
15 Wixpdb,
16 +
17 + WixIR,
18 }
19 }
src/WixToolset.Data/FileStructure.cs
+43 -22
@@ -7,6 +7,7 @@ namespace WixToolset.Data
7 using System.Diagnostics;
8 using System.IO;
9 using System.Linq;
10 + using System.Text;
11
12 /// <summary>
13 /// Class that understands the standard file structures in the WiX toolset.
@@ -20,6 +21,8 @@ namespace WixToolset.Data
21
22 private static readonly Dictionary<string, FileFormat> SupportedFileFormats = new Dictionary<string, FileFormat>()
23 {
24 + { "wir", FileFormat.WixIR },
25 + { "wixirf", FileFormat.WixIR },
26 { "wixobj", FileFormat.Wixobj },
27 { "wixlib", FileFormat.Wixlib },
28 { "wixout", FileFormat.Wixout },
@@ -36,7 +39,7 @@ namespace WixToolset.Data
39 /// <summary>
40 /// Count of embedded files in the file structure.
41 /// </summary>
39 - public int EmbeddedFileCount { get { return this.embeddedFileSizes.Length; } }
42 + public int EmbeddedFileCount => this.embeddedFileSizes.Length;
43
44 /// <summary>
45 /// File format of the file structure.
@@ -50,15 +53,15 @@ namespace WixToolset.Data
53 /// <param name="fileFormat">File format for the file structure.</param>
54 /// <param name="embedFilePaths">Paths to files to embedd in the file structure.</param>
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)
57 {
55 - FileStructure fs = new FileStructure();
56 - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream))
57 - using (BinaryWriter writer = new BinaryWriter(wrapper))
58 + var fs = new FileStructure();
59 +
60 + using (var writer = new BinaryWriter(stream, Encoding.UTF8, true))
61 {
62 fs.WriteType(writer, fileFormat);
63
61 - fs.WriteEmbeddedFiles(writer, embedFilePaths ?? new List<string>());
64 + fs.WriteEmbeddedFiles(writer, embedFilePaths.ToArray());
65
66 // Remember the data stream offset, which is right after the embedded files have been written.
67 fs.dataStreamOffset = stream.Position;
@@ -76,13 +79,13 @@ namespace WixToolset.Data
79 /// <returns>File structure populated from the stream.</returns>
80 public static FileStructure Read(Stream stream)
81 {
79 - FileStructure fs = new FileStructure();
80 - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream))
81 - using (BinaryReader reader = new BinaryReader(wrapper))
82 + var fs = new FileStructure();
83 +
84 + using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
85 {
86 fs.FileFormat = FileStructure.ReadFileFormat(reader);
87
85 - if (FileFormat.Unknown != fs.FileFormat)
88 + if (fs.FileFormat != FileFormat.Unknown)
89 {
90 fs.embeddedFileSizes = FileStructure.ReadEmbeddedFileSizes(reader);
91
@@ -107,8 +110,7 @@ namespace WixToolset.Data
110 /// <returns>Best guess at file format.</returns>
111 public static FileFormat GuessFileFormatFromExtension(string extension)
112 {
110 - FileFormat format;
111 - return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out format) ? format : FileFormat.Unknown;
113 + return FileStructure.SupportedFileFormats.TryGetValue(extension.TrimStart('.').ToLowerInvariant(), out var format) ? format : FileFormat.Unknown;
114 }
115
116 /// <summary>
@@ -124,8 +126,7 @@ namespace WixToolset.Data
126
127 try
128 {
127 - using (NonClosingStreamWrapper wrapper = new NonClosingStreamWrapper(stream))
128 - using (BinaryReader reader = new BinaryReader(wrapper))
129 + using (var reader = new BinaryReader(stream, Encoding.UTF8, true))
130 {
131 format = FileStructure.ReadFileFormat(reader);
132 }
@@ -182,7 +183,21 @@ namespace WixToolset.Data
183 }
184
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.
201 /// </summary>
202 public void Dispose()
203 {
@@ -217,7 +232,13 @@ namespace WixToolset.Data
232 {
233 FileFormat format = FileFormat.Unknown;
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));
242 FileStructure.SupportedFileFormats.TryGetValue(type, out format);
243
244 return format;
@@ -256,21 +277,21 @@ namespace WixToolset.Data
277
278 this.FileFormat = fileFormat;
279
259 - Debug.Assert(6 == type.ToCharArray().Length);
280 + Debug.Assert(3 == type.ToCharArray().Length || 6 == type.ToCharArray().Length);
281 writer.Write(type.ToCharArray());
282 return writer;
283 }
284
264 - private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, List<string> embedFilePaths)
285 + private BinaryWriter WriteEmbeddedFiles(BinaryWriter writer, string[] embedFilePaths)
286 {
287 // First write the count of embedded files as a Uint32;
267 - writer.Write((uint)embedFilePaths.Count);
288 + writer.Write((uint)embedFilePaths.Length);
289
269 - this.embeddedFileSizes = new long[embedFilePaths.Count];
290 + this.embeddedFileSizes = new long[embedFilePaths.Length];
291
292 // Next write out the size of each file as a Uint64 in order.
272 - FileInfo[] files = new FileInfo[embedFilePaths.Count];
273 - for (int i = 0; i < embedFilePaths.Count; ++i)
293 + FileInfo[] files = new FileInfo[embedFilePaths.Length];
294 + for (int i = 0; i < embedFilePaths.Length; ++i)
295 {
296 files[i] = new FileInfo(embedFilePaths[i]);
297
src/WixToolset.Data/ITupleDefinitionCreator.cs new
+9
@@ -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 +}
src/WixToolset.Data/Identifier.cs
+10
@@ -2,9 +2,13 @@
2
3 namespace WixToolset.Data
4 {
5 + using System;
6 + using System.Diagnostics;
7 +
8 /// <summary>
9 /// Class to define the identifier and access for a row.
10 /// </summary>
11 + [DebuggerDisplay("{Access} {Id,nq}")]
12 public class Identifier
13 {
14 public static Identifier Invalid = new Identifier(null, AccessModifier.Private);
@@ -15,6 +19,12 @@ namespace WixToolset.Data
19 this.Access = access;
20 }
21
22 + public Identifier(int id, AccessModifier access)
23 + {
24 + this.Id = id.ToString();
25 + this.Access = access;
26 + }
27 +
28 /// <summary>
29 /// Access modifier for a row.
30 /// </summary>
src/WixToolset.Data/Intermediate.cs
+174 -15
@@ -5,7 +5,7 @@ namespace WixToolset.Data
5 using System;
6 using System.Collections.Generic;
7 using System.IO;
8 - using System.Xml;
8 + using SimpleJson;
9
10 /// <summary>
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";
16 private static readonly Version CurrentVersion = new Version("4.0.0.0");
17
18 - private string id;
19 - private List<Section> sections;
18 + private Dictionary<string, Localization> localizationsByCulture;
19
20 /// <summary>
21 /// Instantiate a new Intermediate.
22 /// </summary>
23 public Intermediate()
24 {
26 - this.id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_');
27 - this.sections = new List<Section>();
25 + this.Id = Convert.ToBase64String(Guid.NewGuid().ToByteArray()).TrimEnd('=').Replace('+', '.').Replace('/', '_');
26 + this.EmbedFilePaths = new List<string>();
27 + this.localizationsByCulture = new Dictionary<string, Localization>(StringComparer.OrdinalIgnoreCase);
28 + this.Sections = new List<IntermediateSection>();
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 +
54 /// <summary>
55 /// Get the sections contained in this intermediate.
56 /// </summary>
33 - /// <value>Sections contained in this intermediate.</value>
34 - public IEnumerable<Section> Sections { get { return this.sections; } }
57 + public IList<IntermediateSection> Sections { get; }
58
59 /// <summary>
37 - /// Adds a section to the intermediate.
60 + /// Adds a localization to the intermediate.
61 /// </summary>
39 - /// <param name="section">Section to add to the intermediate.</param>
40 - public void AddSection(Section section)
62 + /// <param name="localization">Localization to add to the intermediate.</param>
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)
111 {
42 - section.IntermediateId = this.id;
43 - this.sections.Add(section);
112 + JsonObject jsonObject;
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 + }
201 }
202
203 +#if false
204 /// <summary>
205 /// Loads an intermediate from a path on disk.
206 /// </summary>
@@ -84,9 +242,9 @@ namespace WixToolset.Data
242 {
243 Directory.CreateDirectory(Path.GetDirectoryName(Path.GetFullPath(path)));
244
87 - using (FileStream stream = File.Create(path))
88 - using (FileStructure fs = FileStructure.Create(stream, FileFormat.Wixobj, null))
89 - using (XmlWriter writer = XmlWriter.Create(fs.GetDataStream()))
245 + using (var stream = File.Create(path))
246 + using (var fs = FileStructure.Create(stream, FileFormat.Wixobj, null))
247 + using (var writer = XmlWriter.Create(fs.GetDataStream()))
248 {
249 writer.WriteStartDocument();
250 this.Write(writer);
@@ -185,5 +343,6 @@ namespace WixToolset.Data
343
344 writer.WriteEndElement();
345 }
346 +#endif
347 }
348 }
src/WixToolset.Data/IntermediateField.cs new
+70
@@ -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 +}
src/WixToolset.Data/IntermediateFieldContext.cs new
+38
@@ -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 +}
src/WixToolset.Data/IntermediateFieldDefinition.cs new
+25
@@ -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 +}
src/WixToolset.Data/IntermediateFieldExtensions.cs new
+206
@@ -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 +}
src/WixToolset.Data/IntermediateFieldPathValue.cs new
+27
@@ -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 +}
src/WixToolset.Data/IntermediateFieldValue.cs new
+131
@@ -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 +}
src/WixToolset.Data/IntermediateFieldValueExtensions.cs new
+37
@@ -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 +}
src/WixToolset.Data/IntermediateSection.cs new
+118
@@ -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 +}
src/WixToolset.Data/IntermediateTuple.cs new
+70
@@ -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 +}
src/WixToolset.Data/IntermediateTupleDefinition.cs new
+47
@@ -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 +}
src/WixToolset.Data/IntermediateTupleExtensions.cs new
+41
@@ -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 +}
src/WixToolset.Data/Json/JsonObjectExtensions.cs new
+29
@@ -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 +}
src/WixToolset.Data/Json/SimpleJson.cs new
+2127
@@ -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&lt;object>) and JsonObject(IDictionary&lt;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&lt;object>, a IDictionary&lt;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&lt;string,object> / IList&lt;object> object into a JSON string
600 + /// </summary>
601 + /// <param name="json">A IDictionary&lt;string,object> / IList&lt;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
src/WixToolset.Data/Library.cs
+3 -1
@@ -15,6 +15,7 @@ namespace WixToolset.Data
15 public const string XmlNamespaceUri = "http://wixtoolset.org/schemas/v4/wixlib";
16 private static readonly Version CurrentVersion = new Version("4.0.0.0");
17
18 +#if false
19 private string id;
20 private List<string> embedFilePaths;
21 private Dictionary<string, Localization> localizations;
@@ -186,7 +187,7 @@ namespace WixToolset.Data
187 switch (reader.LocalName)
188 {
189 case "localization":
189 - Localization localization = Localization.Read(reader, tableDefinitions);
190 + Localization localization = Localization.Read(reader);
191 library.localizations.Add(localization.Culture, localization);
192 break;
193 case "section":
@@ -237,5 +238,6 @@ namespace WixToolset.Data
238
239 writer.WriteEndElement();
240 }
241 +#endif
242 }
243 }
src/WixToolset.Data/Localization.cs
+14 -28
@@ -3,17 +3,10 @@
3 namespace WixToolset.Data
4 {
5 using System;
6 - using System.Collections;
6 using System.Collections.Generic;
7 using System.Diagnostics;
9 - using System.Diagnostics.CodeAnalysis;
8 using System.Globalization;
11 - using System.IO;
12 - using System.Linq;
13 - using System.Reflection;
9 using System.Xml;
15 - using System.Xml.Linq;
16 - using System.Xml.Schema;
10 using WixToolset.Data.Msi;
11 using WixToolset.Data.Rows;
12
@@ -24,17 +17,17 @@ namespace WixToolset.Data
17 {
18 private static string XmlElementName = "localization";
19
27 - private Dictionary<string, WixVariableRow> variables = new Dictionary<string, WixVariableRow>();
20 + private Dictionary<string, BindVariable> variables = new Dictionary<string, BindVariable>();
21 private Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>();
22
23 /// <summary>
24 /// Instantiates a new localization object.
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)
27 {
28 this.Codepage = codepage;
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);
31 this.localizedControls = new Dictionary<string, LocalizedControl>(localizedControls);
32 }
33
@@ -54,19 +47,13 @@ namespace WixToolset.Data
47 /// Gets the variables.
48 /// </summary>
49 /// <value>The variables.</value>
57 - public ICollection<WixVariableRow> Variables
58 - {
59 - get { return this.variables.Values; }
60 - }
50 + public ICollection<BindVariable> Variables => this.variables.Values;
51
52 /// <summary>
53 /// Gets the localized controls.
54 /// </summary>
55 /// <value>The localized controls.</value>
66 - public ICollection<KeyValuePair<string, LocalizedControl>> LocalizedControls
67 - {
68 - get { return this.localizedControls; }
69 - }
56 + public ICollection<KeyValuePair<string, LocalizedControl>> LocalizedControls => this.localizedControls;
57
58 /// <summary>
59 /// Merge the information from another localization object into this one.
@@ -74,10 +61,9 @@ namespace WixToolset.Data
61 /// <param name="localization">The localization object to be merged into this one.</param>
62 public void Merge(Localization localization)
63 {
77 - foreach (WixVariableRow wixVariableRow in localization.Variables)
64 + foreach (BindVariable wixVariableRow in localization.Variables)
65 {
79 - WixVariableRow existingWixVariableRow;
80 - if (!this.variables.TryGetValue(wixVariableRow.Id, out existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable))
66 + if (!this.variables.TryGetValue(wixVariableRow.Id, out BindVariable existingWixVariableRow) || (existingWixVariableRow.Overridable && !wixVariableRow.Overridable))
67 {
68 variables[wixVariableRow.Id] = wixVariableRow;
69 }
@@ -94,7 +80,7 @@ namespace WixToolset.Data
80 /// <param name="reader">XmlReader where the intermediate is persisted.</param>
81 /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param>
82 /// <returns>Returns the loaded localization.</returns>
97 - internal static Localization Read(XmlReader reader, TableDefinitionCollection tableDefinitions)
83 + internal static Localization Read(XmlReader reader)
84 {
85 Debug.Assert("localization" == reader.LocalName);
86
@@ -115,8 +101,7 @@ namespace WixToolset.Data
101 }
102 }
103
118 - TableDefinition wixVariableTable = tableDefinitions["WixVariable"];
119 - Dictionary<string, WixVariableRow> variables = new Dictionary<string, WixVariableRow>();
104 + Dictionary<string, BindVariable> variables = new Dictionary<string, BindVariable>();
105 Dictionary<string, LocalizedControl> localizedControls = new Dictionary<string, LocalizedControl>();
106
107 if (!empty)
@@ -131,7 +116,7 @@ namespace WixToolset.Data
116 switch (reader.LocalName)
117 {
118 case "string":
134 - WixVariableRow row = Localization.ReadString(reader, wixVariableTable);
119 + BindVariable row = Localization.ReadString(reader);
120 variables.Add(row.Id, row);
121 break;
122
@@ -177,7 +162,7 @@ namespace WixToolset.Data
162 writer.WriteAttributeString("culture", this.Culture);
163 }
164
180 - foreach (WixVariableRow wixVariableRow in this.variables.Values)
165 + foreach (BindVariable wixVariableRow in this.variables.Values)
166 {
167 writer.WriteStartElement("string", Library.XmlNamespaceUri);
168
@@ -265,7 +250,7 @@ namespace WixToolset.Data
250 /// <param name="reader">XmlReader where the intermediate is persisted.</param>
251 /// <param name="tableDefinitions">Collection containing TableDefinitions to use when loading the localization file.</param>
252 /// <returns>Returns the loaded localization.</returns>
268 - private static WixVariableRow ReadString(XmlReader reader, TableDefinition wixVariableTable)
253 + private static BindVariable ReadString(XmlReader reader)
254 {
255 Debug.Assert("string" == reader.LocalName);
256
@@ -302,7 +287,8 @@ namespace WixToolset.Data
287 }
288 }
289
305 - WixVariableRow wixVariableRow = new WixVariableRow(SourceLineNumber.CreateFromUri(reader.BaseURI), wixVariableTable);
290 + BindVariable wixVariableRow = new BindVariable();
291 + wixVariableRow.SourceLineNumbers = SourceLineNumber.CreateFromUri(reader.BaseURI);
292 wixVariableRow.Id = id;
293 wixVariableRow.Overridable = overridable;
294 wixVariableRow.Value = value;
src/WixToolset.Data/Msi/MsiInterop.cs
+22 -22
@@ -2,25 +2,25 @@
2
3 namespace WixToolset.Data.Msi
4 {
5 - class MsiInterop
5 + public class MsiInterop
6 {
7 // Patching constants
8 internal const int MsiMaxStreamNameLength = 62; // http://msdn2.microsoft.com/library/aa370551.aspx
9
10 // Component.Attributes
11 - internal const int MsidbComponentAttributesLocalOnly = 0;
12 - internal const int MsidbComponentAttributesSourceOnly = 1;
13 - internal const int MsidbComponentAttributesOptional = 2;
14 - internal const int MsidbComponentAttributesRegistryKeyPath = 4;
15 - internal const int MsidbComponentAttributesSharedDllRefCount = 8;
16 - internal const int MsidbComponentAttributesPermanent = 16;
17 - internal const int MsidbComponentAttributesODBCDataSource = 32;
18 - internal const int MsidbComponentAttributesTransitive = 64;
19 - internal const int MsidbComponentAttributesNeverOverwrite = 128;
20 - internal const int MsidbComponentAttributes64bit = 256;
21 - internal const int MsidbComponentAttributesDisableRegistryReflection = 512;
22 - internal const int MsidbComponentAttributesUninstallOnSupersedence = 1024;
23 - internal const int MsidbComponentAttributesShared = 2048;
11 + public const int MsidbComponentAttributesLocalOnly = 0;
12 + public const int MsidbComponentAttributesSourceOnly = 1;
13 + public const int MsidbComponentAttributesOptional = 2;
14 + public const int MsidbComponentAttributesRegistryKeyPath = 4;
15 + public const int MsidbComponentAttributesSharedDllRefCount = 8;
16 + public const int MsidbComponentAttributesPermanent = 16;
17 + public const int MsidbComponentAttributesODBCDataSource = 32;
18 + public const int MsidbComponentAttributesTransitive = 64;
19 + public const int MsidbComponentAttributesNeverOverwrite = 128;
20 + public const int MsidbComponentAttributes64bit = 256;
21 + public const int MsidbComponentAttributesDisableRegistryReflection = 512;
22 + public const int MsidbComponentAttributesUninstallOnSupersedence = 1024;
23 + public const int MsidbComponentAttributesShared = 2048;
24
25 // BBControl.Attributes & Control.Attributes
26 internal const int MsidbControlAttributesVisible = 0x00000001;
@@ -141,14 +141,14 @@ namespace WixToolset.Data.Msi
141 internal const int MsidbFeatureAttributesNoUnsupportedAdvertise = 32;
142
143 // File.Attributes
144 - internal const int MsidbFileAttributesReadOnly = 1;
145 - internal const int MsidbFileAttributesHidden = 2;
146 - internal const int MsidbFileAttributesSystem = 4;
147 - internal const int MsidbFileAttributesVital = 512;
148 - internal const int MsidbFileAttributesChecksum = 1024;
149 - internal const int MsidbFileAttributesPatchAdded = 4096;
150 - internal const int MsidbFileAttributesNoncompressed = 8192;
151 - internal const int MsidbFileAttributesCompressed = 16384;
144 + public const int MsidbFileAttributesReadOnly = 1;
145 + public const int MsidbFileAttributesHidden = 2;
146 + public const int MsidbFileAttributesSystem = 4;
147 + public const int MsidbFileAttributesVital = 512;
148 + public const int MsidbFileAttributesChecksum = 1024;
149 + public const int MsidbFileAttributesPatchAdded = 4096;
150 + public const int MsidbFileAttributesNoncompressed = 8192;
151 + public const int MsidbFileAttributesCompressed = 16384;
152
153 // IniFile.Action & RemoveIniFile.Action
154 internal const int MsidbIniFileActionAddLine = 0;
src/WixToolset.Data/NonClosingStreamWrapper.cs
+35 -56
@@ -18,88 +18,67 @@ namespace WixToolset.Data
18 this.stream = stream;
19 }
20
21 - public override bool CanRead { get { return this.stream.CanRead; } }
21 + public override bool CanRead => this.stream.CanRead;
22
23 - public override bool CanSeek { get { return this.stream.CanSeek; } }
23 + public override bool CanSeek => this.stream.CanSeek;
24
25 - public override bool CanTimeout { get { return this.stream.CanTimeout; } }
25 + public override bool CanTimeout => this.stream.CanTimeout;
26
27 - public override bool CanWrite { get { return this.stream.CanWrite; } }
27 + public override bool CanWrite => this.stream.CanWrite;
28
29 - public override long Length { get { return this.stream.Length; } }
29 + public override long Length => this.stream.Length;
30
31 - public override long Position { get { return this.stream.Position; } set { this.stream.Position = value; } }
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)
31 + public override long Position
32 {
39 - return this.stream.BeginRead(buffer, offset, count, callback, state);
33 + get => this.stream.Position;
34 + set => this.stream.Position = value;
35 }
36
42 - public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state)
37 + public override int ReadTimeout
38 {
44 - return this.stream.BeginWrite(buffer, offset, count, callback, state);
39 + get => this.stream.ReadTimeout;
40 + set => this.stream.ReadTimeout = value;
41 }
42
47 - public override void Close()
43 + public override int WriteTimeout
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;
47 }
48
52 - protected override void Dispose(bool disposing)
53 - {
54 - if (disposing)
55 - {
56 - this.stream.Flush();
57 - }
58 - }
49 + public override IAsyncResult BeginRead(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginRead(buffer, offset, count, callback, state);
50
60 - public override int EndRead(IAsyncResult asyncResult)
61 - {
62 - return this.stream.EndRead(asyncResult);
63 - }
51 + public override IAsyncResult BeginWrite(byte[] buffer, int offset, int count, AsyncCallback callback, object state) => this.stream.BeginWrite(buffer, offset, count, callback, state);
52
65 - public override void EndWrite(IAsyncResult asyncResult)
66 - {
67 - this.stream.EndWrite(asyncResult);
68 - }
53 + public override int EndRead(IAsyncResult asyncResult) => this.stream.EndRead(asyncResult);
54
70 - public override void Flush()
71 - {
72 - this.stream.Flush();
73 - }
55 + public override void EndWrite(IAsyncResult asyncResult) => this.stream.EndWrite(asyncResult);
56
75 - public override int Read(byte[] buffer, int offset, int count)
76 - {
77 - return this.stream.Read(buffer, offset, count);
78 - }
57 + public override void Flush() => this.stream.Flush();
58
80 - public override int ReadByte()
81 - {
82 - return this.stream.ReadByte();
83 - }
59 + public override int Read(byte[] buffer, int offset, int count) => this.stream.Read(buffer, offset, count);
60
85 - public override long Seek(long offset, SeekOrigin origin)
86 - {
87 - return this.stream.Seek(offset, origin);
88 - }
61 + public override int ReadByte() => this.stream.ReadByte();
62
90 - public override void SetLength(long value)
91 - {
92 - this.stream.SetLength(value);
93 - }
63 + public override long Seek(long offset, SeekOrigin origin) => this.stream.Seek(offset, origin);
64 +
65 + public override void SetLength(long value) => this.stream.SetLength(value);
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()
72 {
97 - this.stream.Write(buffer, offset, count);
73 + // Do not pass through the call since this is what we are overriding.
74 }
75
100 - public override void WriteByte(byte value)
76 + protected override void Dispose(bool disposing)
77 {
102 - this.stream.WriteByte(value);
78 + if (disposing)
79 + {
80 + this.stream.Flush();
81 + }
82 }
83 }
84 }
src/WixToolset.Data/ObjectField.cs deleted
-183
@@ -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 -}
src/WixToolset.Data/Output.cs deleted
-394
@@ -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 -}
src/WixToolset.Data/Pdb.cs deleted
-163
@@ -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 -}
src/WixToolset.Data/Row.cs deleted
-626
@@ -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 -}
src/WixToolset.Data/RowDictionary.cs deleted
-84
@@ -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 -}
src/WixToolset.Data/RowIndexedList.cs deleted
-301
@@ -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 -}
src/WixToolset.Data/RowOperation.cs deleted
-30
@@ -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 -}
src/WixToolset.Data/Rows/BBControlRow.cs deleted
-113
@@ -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 -}
src/WixToolset.Data/Rows/ComponentRow.cs deleted
-245
@@ -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 -}
src/WixToolset.Data/Rows/ContainerType.cs deleted
-13
@@ -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 -}
src/WixToolset.Data/Rows/ControlRow.cs deleted
-143
@@ -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 -}
src/WixToolset.Data/Rows/ExitCodeBehaviorType.cs deleted
-13
@@ -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 -}
src/WixToolset.Data/Rows/FileAssemblyType.cs deleted
-19
@@ -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 -}
src/WixToolset.Data/Rows/FileRow.cs deleted
-640
@@ -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 -}
src/WixToolset.Data/Rows/MediaRow.cs deleted
-80
@@ -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 -}
src/WixToolset.Data/Rows/PatchAttributeType.cs deleted
-27
@@ -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 -}
src/WixToolset.Data/Rows/PropertyRow.cs deleted
-42
@@ -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 -}
src/WixToolset.Data/Rows/SummaryInfoRowCollection.cs deleted
-42
@@ -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 -}
src/WixToolset.Data/Rows/SymbolPathType.cs deleted
-17
@@ -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 -}
src/WixToolset.Data/Rows/UpgradeRow.cs deleted
-90
@@ -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 -}
src/WixToolset.Data/Rows/WixActionRow.cs deleted
-374
@@ -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 -}
src/WixToolset.Data/Rows/WixActionRowCollection.cs deleted
-222
@@ -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 -}
src/WixToolset.Data/Rows/WixApprovedExeForElevationRow.cs deleted
-79
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleCatalogRow.cs deleted
-50
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleContainerRow.cs deleted
-78
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleExePackageAttributes.cs deleted
-12
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleExePackageRow.cs deleted
-101
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMsiFeatureRow.cs deleted
-93
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMsiPackageAttributes.cs deleted
-15
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMsiPackageRow.cs deleted
-137
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMsiPropertyRow.cs deleted
-58
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMspPackageAttributes.cs deleted
-14
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMspPackageRow.cs deleted
-99
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleMsuPackageRow.cs deleted
-57
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePackageAttributes.cs deleted
-13
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePackageCommandLineRow.cs deleted
-82
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePackageExitCodeRow.cs deleted
-51
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePackageRow.cs deleted
-226
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePackageType.cs deleted
-15
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePatchTargetCodeRow.cs deleted
-81
@@ -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 -}
src/WixToolset.Data/Rows/WixBundlePayloadRow.cs deleted
-185
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleRelatedPackageRow.cs deleted
-87
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleRollbackBoundaryRow.cs deleted
-59
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleRow.cs deleted
-228
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleSlipstreamMspRow.cs deleted
-48
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleUpdateRow.cs deleted
-38
@@ -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 -}
src/WixToolset.Data/Rows/WixBundleVariableRow.cs deleted
-80
@@ -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 -}
src/WixToolset.Data/Rows/WixChainAttributes.cs deleted
-15
@@ -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 -}
src/WixToolset.Data/Rows/WixChainItemRow.cs deleted
-39
@@ -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 -}
src/WixToolset.Data/Rows/WixChainRow.cs deleted
-63
@@ -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 -}
src/WixToolset.Data/Rows/WixComplexReferenceRow.cs deleted
-208
@@ -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 -}
src/WixToolset.Data/Rows/WixDeltaPatchFileRow.cs deleted
-142
@@ -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 -}
src/WixToolset.Data/Rows/WixDeltaPatchSymbolPathsRow.cs deleted
-58
@@ -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 -}
src/WixToolset.Data/Rows/WixFileRow.cs deleted
-161
@@ -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 -}
src/WixToolset.Data/Rows/WixGroupRow.cs deleted
-62
@@ -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 -}
src/WixToolset.Data/Rows/WixMediaRow.cs deleted
-60
@@ -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 -}
src/WixToolset.Data/Rows/WixMediaTemplateRow.cs deleted
-81
@@ -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 -}
src/WixToolset.Data/Rows/WixMergeRow.cs deleted
-149
@@ -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 -}
src/WixToolset.Data/Rows/WixPayloadPropertiesRow.cs deleted
-81
@@ -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 -}
src/WixToolset.Data/Rows/WixPropertyRow.cs deleted
-118
@@ -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 -}
src/WixToolset.Data/Rows/WixRelatedBundleRow.cs deleted
-52
@@ -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 -}
src/WixToolset.Data/Rows/WixSimpleReferenceRow.cs deleted
-63
@@ -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 -}
src/WixToolset.Data/Rows/WixUpdateRegistrationRow.cs deleted
-62
@@ -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 -}
src/WixToolset.Data/Rows/WixVariableRow.cs deleted
-81
@@ -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 -}
src/WixToolset.Data/Section.cs
+2
@@ -2,6 +2,7 @@
2
3 namespace WixToolset.Data
4 {
5 +#if false
6 using System;
7 using System.Collections.Generic;
8 using System.Diagnostics;
@@ -237,4 +238,5 @@ namespace WixToolset.Data
238 writer.WriteEndElement();
239 }
240 }
241 +#endif
242 }
src/WixToolset.Data/SimpleTupleDefinitionCreator.cs new
+13
@@ -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
src/WixToolset.Data/SubStorage.cs deleted
-109
@@ -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 -}
src/WixToolset.Data/Symbol.cs
+7 -6
@@ -18,17 +18,18 @@ namespace WixToolset.Data
18 /// Creates a symbol for a row.
19 /// </summary>
20 /// <param name="row">Row for the symbol</param>
21 - public Symbol(Row row)
21 + public Symbol(IntermediateSection section, IntermediateTuple tuple)
22 {
23 - this.Row = row;
24 - this.Name = String.Concat(this.Row.TableDefinition.Name, ":", this.Row.GetPrimaryKey());
23 + this.Row = tuple;
24 + this.Section = section;
25 + this.Name = String.Concat(this.Row.Definition.Name, ":", this.Row.Id.Id);
26 }
27
28 /// <summary>
29 /// Gets the accessibility of the symbol which is a direct reflection of the accessibility of the row's accessibility.
30 /// </summary>
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; } }
33
34 /// <summary>
35 /// Gets the name of the symbol.
@@ -40,13 +41,13 @@ namespace WixToolset.Data
41 /// Gets the row for this symbol.
42 /// </summary>
43 /// <value>Row for this symbol.</value>
43 - public Row Row { get; private set; }
44 + public IntermediateTuple Row { get; private set; }
45
46 /// <summary>
47 /// Gets the section for the symbol.
48 /// </summary>
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; } }
51
52 /// <summary>
53 /// Gets any duplicates of this symbol that are possible conflicts.
src/WixToolset.Data/Table.cs deleted
-446
@@ -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 -}
src/WixToolset.Data/TableDefinition.cs deleted
-334
@@ -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 -}
src/WixToolset.Data/TableDefinitionCollection.cs deleted
-229
@@ -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 -}
src/WixToolset.Data/TableExtensions.cs deleted
-23
@@ -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 -}
src/WixToolset.Data/TableIndexedCollection.cs deleted
-153
@@ -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 -}
src/WixToolset.Data/TableOperation.cs deleted
-25
@@ -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 -}
src/WixToolset.Data/Tuples/ActionTextTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/AdminExecuteSequenceTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/AdminUISequenceTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/AdvtExecuteSequenceTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/AppIdTuple.cs new
+92
@@ -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
src/WixToolset.Data/Tuples/AppSearchTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/BBControlTuple.cs new
+108
@@ -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
src/WixToolset.Data/Tuples/BillboardTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/BinaryTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/BindImageTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/CCPSearchTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/CheckBoxTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/ClassTuple.cs new
+140
@@ -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
src/WixToolset.Data/Tuples/ComboBoxTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/CompLocatorTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/ComplusTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/ComponentTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/ConditionTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/ControlConditionTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/ControlEventTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/ControlTuple.cs new
+132
@@ -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
src/WixToolset.Data/Tuples/CreateFolderTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/CustomActionTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/DialogTuple.cs new
+116
@@ -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
src/WixToolset.Data/Tuples/DirectoryTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/DrLocatorTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/DuplicateFileTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/EnvironmentTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/ErrorTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/EventMappingTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/ExtensionTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ExternalFilesTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/FamilyFileRangesTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/FeatureComponentsTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/FeatureTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/FileSFPCatalogTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/FileTuple.cs new
+140
@@ -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 +}
src/WixToolset.Data/Tuples/FontTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/IconTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/ImageFamiliesTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/IniFileTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/IniLocatorTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/InstallExecuteSequenceTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/InstallUISequenceTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/IsolatedComponentTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/LaunchConditionTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/ListBoxTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/ListViewTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/LockPermissionsTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/MIMETuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/MediaTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/ModuleAdminExecuteSequenceTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ModuleAdminUISequenceTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ModuleAdvtExecuteSequenceTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ModuleComponentsTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/ModuleConfigurationTuple.cs new
+116
@@ -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
src/WixToolset.Data/Tuples/ModuleDependencyTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ModuleExclusionTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/ModuleIgnoreTableTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/ModuleInstallExecuteSequenceTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ModuleInstallUISequenceTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ModuleSignatureTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/ModuleSubstitutionTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/MoveFileTuple.cs new
+92
@@ -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
src/WixToolset.Data/Tuples/MsiAssemblyNameTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/MsiAssemblyTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/MsiDigitalCertificateTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/MsiDigitalSignatureTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/MsiEmbeddedChainerTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/MsiEmbeddedUITuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/MsiFileHashTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/MsiLockPermissionsExTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/MsiPackageCertificateTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/MsiPatchCertificateTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/MsiPatchHeadersTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/MsiPatchMetadataTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/MsiPatchOldAssemblyFileTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/MsiPatchOldAssemblyNameTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/MsiPatchSequenceTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/MsiServiceConfigFailureActionsTuple.cs new
+108
@@ -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
src/WixToolset.Data/Tuples/MsiServiceConfigTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/MsiShortcutPropertyTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/ODBCAttributeTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/ODBCDataSourceTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ODBCDriverTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ODBCSourceAttributeTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/ODBCTranslatorTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/PatchMetadataTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/PatchPackageTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/PatchSequenceTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/PatchTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/ProgIdTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/PropertiesTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/PropertyTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/PublishComponentTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/RadioButtonTuple.cs new
+108
@@ -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
src/WixToolset.Data/Tuples/RegLocatorTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/RegistryTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/RemoveFileTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/RemoveIniFileTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/RemoveRegistryTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/ReserveCostTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/SFPCatalogTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/SelfRegTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/ServiceControlTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/ServiceInstallTuple.cs new
+140
@@ -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
src/WixToolset.Data/Tuples/ShortcutTuple.cs new
+164
@@ -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
src/WixToolset.Data/Tuples/SignatureTuple.cs new
+108
@@ -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
src/WixToolset.Data/Tuples/TargetFiles_OptionalDataTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/TargetImagesTuple.cs new
+92
@@ -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
src/WixToolset.Data/Tuples/TextStyleTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/TupleDefinitions.cs new
+815
@@ -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 +}
src/WixToolset.Data/Tuples/TypeLibTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/UITextTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/UpgradeTuple.cs new
+92
@@ -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
src/WixToolset.Data/Tuples/UpgradedFilesToIgnoreTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/UpgradedFiles_OptionalDataTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/UpgradedImagesTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/VerbTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/WixActionTuple.cs new
+103
@@ -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
src/WixToolset.Data/Tuples/WixApprovedExeForElevationTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixBBControlTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixBindUpdatedFilesTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixBootstrapperApplicationTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixBuildInfoTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixBundleCatalogTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs new
+111
@@ -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
src/WixToolset.Data/Tuples/WixBundleExePackageTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/WixBundleMsiFeatureTuple.cs new
+116
@@ -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
src/WixToolset.Data/Tuples/WixBundleMsiPackageTuple.cs new
+111
@@ -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
src/WixToolset.Data/Tuples/WixBundleMsiPropertyTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixBundleMspPackageTuple.cs new
+86
@@ -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
src/WixToolset.Data/Tuples/WixBundleMsuPackageTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixBundlePackageCommandLineTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/WixBundlePackageExitCodeTuple.cs new
+71
@@ -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
src/WixToolset.Data/Tuples/WixBundlePackageGroupTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixBundlePackageTuple.cs new
+216
@@ -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
src/WixToolset.Data/Tuples/WixBundlePatchTargetCodeTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixBundlePayloadGroupTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixBundlePayloadTuple.cs new
+214
@@ -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
src/WixToolset.Data/Tuples/WixBundlePropertiesTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/WixBundleRelatedPackageTuple.cs new
+108
@@ -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
src/WixToolset.Data/Tuples/WixBundleRollbackBoundaryTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixBundleSlipstreamMspTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixBundleTuple.cs new
+220
@@ -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
src/WixToolset.Data/Tuples/WixBundleUpdateTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixBundleVariableTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/WixChainItemTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixChainTuple.cs new
+55
@@ -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
src/WixToolset.Data/Tuples/WixComplexReferenceTuple.cs new
+86
@@ -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
src/WixToolset.Data/Tuples/WixComponentGroupTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixComponentSearchTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixControlTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixCustomRowTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixCustomTableTuple.cs new
+148
@@ -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
src/WixToolset.Data/Tuples/WixDeltaPatchFileTuple.cs new
+84
@@ -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
src/WixToolset.Data/Tuples/WixDeltaPatchSymbolPathsTuple.cs new
+75
@@ -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
src/WixToolset.Data/Tuples/WixDirectoryTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixEnsureTableTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixFeatureGroupTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixFeatureModulesTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixFileSearchTuple.cs new
+116
@@ -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
src/WixToolset.Data/Tuples/WixFileTuple.cs new
+170
@@ -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
src/WixToolset.Data/Tuples/WixFragmentTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixGroupTuple.cs new
+70
@@ -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
src/WixToolset.Data/Tuples/WixInstanceComponentTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixInstanceTransformsTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/WixMediaTemplateTuple.cs new
+86
@@ -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
src/WixToolset.Data/Tuples/WixMediaTuple.cs new
+62
@@ -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
src/WixToolset.Data/Tuples/WixMergeTuple.cs new
+100
@@ -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
src/WixToolset.Data/Tuples/WixOrderingTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixPackageFeatureInfoTuple.cs new
+116
@@ -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
src/WixToolset.Data/Tuples/WixPackagePropertiesTuple.cs new
+180
@@ -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
src/WixToolset.Data/Tuples/WixPatchBaselineTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixPatchFamilyGroupTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixPatchIdTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixPatchMetadataTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixPatchRefTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixPatchTargetTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixPayloadPropertiesTuple.cs new
+92
@@ -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
src/WixToolset.Data/Tuples/WixProductSearchTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixPropertyTuple.cs new
+68
@@ -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
src/WixToolset.Data/Tuples/WixRegistrySearchTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/WixRelatedBundleTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixSearchRelationTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixSearchTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixSimpleReferenceTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/WixSuppressActionTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/WixSuppressModularizationTuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixUITuple.cs new
+44
@@ -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
src/WixToolset.Data/Tuples/WixUpdateRegistrationTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/WixVariableTuple.cs new
+60
@@ -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
src/WixToolset.Data/Tuples/_ByHandComponentTuple.cs new
+55
@@ -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 +}
src/WixToolset.Data/Tuples/_ByHandFileTuple.cs new
+88
@@ -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 +}
src/WixToolset.Data/Tuples/_ByHandTupleDefinitions.cs new
+55
@@ -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
src/WixToolset.Data/Tuples/_StreamsTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/_SummaryInformationTuple.cs new
+52
@@ -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
src/WixToolset.Data/Tuples/_TransformViewTuple.cs new
+76
@@ -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
src/WixToolset.Data/Tuples/_ValidationTuple.cs new
+116
@@ -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
src/WixToolset.Data/Tuples/tuples_new.json new
+3604
@@ -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
src/WixToolset.Data/WindowsInstallerStandard.cs deleted
-444
@@ -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 -}
src/WixToolset.Data/WixDataStrings.Designer.cs
+7 -7
@@ -14,7 +14,7 @@ namespace WixToolset.Data {
14 [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
15 [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
16 [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
17 - internal class WixDataStrings {
17 + public class WixDataStrings {
18
19 private static global::System.Resources.ResourceManager resourceMan;
20
@@ -64,7 +64,7 @@ namespace WixToolset.Data {
64 /// <summary>
65 /// Looks up a localized string similar to The value &apos;{0}&apos; is not a legal identifier and therefore cannot be modularized..
66 /// </summary>
67 - internal static string EXP_CannotModularizeIllegalID {
67 + public static string EXP_CannotModularizeIllegalID {
68 get {
69 return ResourceManager.GetString("EXP_CannotModularizeIllegalID", resourceCulture);
70 }
@@ -73,7 +73,7 @@ namespace WixToolset.Data {
73 /// <summary>
74 /// Looks up a localized string similar to A Merge table FileCompression column cannot be set to the invalid value &apos;{0}&apos;..
75 /// </summary>
76 - internal static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue {
76 + public static string EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue {
77 get {
78 return ResourceManager.GetString("EXP_CannotSetMergeTableFileCompressionColumnToInvalidValue", resourceCulture);
79 }
@@ -154,7 +154,7 @@ namespace WixToolset.Data {
154 /// <summary>
155 /// Looks up a localized string similar to A Merge table FileCompression column contains an invalid value &apos;{0}&apos;..
156 /// </summary>
157 - internal static string EXP_MergeTableFileCompressionColumnContainsInvalidValue {
157 + public static string EXP_MergeTableFileCompressionColumnContainsInvalidValue {
158 get {
159 return ResourceManager.GetString("EXP_MergeTableFileCompressionColumnContainsInvalidValue", resourceCulture);
160 }
@@ -190,7 +190,7 @@ namespace WixToolset.Data {
190 /// <summary>
191 /// Looks up a localized string similar to Unexpected entry section type: {0}.
192 /// </summary>
193 - internal static string EXP_UnexpectedEntrySectionType {
193 + public static string EXP_UnexpectedEntrySectionType {
194 get {
195 return ResourceManager.GetString("EXP_UnexpectedEntrySectionType", resourceCulture);
196 }
@@ -199,7 +199,7 @@ namespace WixToolset.Data {
199 /// <summary>
200 /// Looks up a localized string similar to Unknown column type: {0}.
201 /// </summary>
202 - internal static string EXP_UnknownColumnType {
202 + public static string EXP_UnknownColumnType {
203 get {
204 return ResourceManager.GetString("EXP_UnknownColumnType", resourceCulture);
205 }
@@ -217,7 +217,7 @@ namespace WixToolset.Data {
217 /// <summary>
218 /// Looks up a localized string similar to The table {0} is not supported..
219 /// </summary>
220 - internal static string EXP_UnsupportedTable {
220 + public static string EXP_UnsupportedTable {
221 get {
222 return ResourceManager.GetString("EXP_UnsupportedTable", resourceCulture);
223 }
src/WixToolset.Data/WixInvalidIdtException.cs deleted
-32
@@ -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 -}
src/WixToolset.Data/WixMissingTableDefinitionException.cs deleted
-22
@@ -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 -}
src/WixToolset.Data/WixToolset.Data.csproj
-5
@@ -10,11 +10,6 @@
10 <Description></Description>
11 </PropertyGroup>
12
13 - <ItemGroup>
14 - <EmbeddedResource Include="Data\actions.xml" />
15 - <EmbeddedResource Include="Data\tables.xml" />
16 - </ItemGroup>
17 -
13 <!--
14 <ItemGroup>
15 <MsgGenSource Include="Data\messages.xml">
src/test/WixToolsetTest.Data/TupleDefinitionFixture.cs new
+135
@@ -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 +}
src/test/WixToolsetTest.Data/WixToolsetTest.Data.csproj new
+19
@@ -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>