main
cs 101 lines 3.59 KB
Raw
1 // Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3 namespace WixToolset.Data
4 {
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixAction = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixAction,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.SequenceTable), IntermediateFieldType.Number),
14 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Action), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Condition), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Sequence), IntermediateFieldType.Number),
17 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Before), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.After), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixActionSymbolFields.Overridable), IntermediateFieldType.Bool),
20 },
21 typeof(WixActionSymbol));
22 }
23 }
24
25 namespace WixToolset.Data.Symbols
26 {
27 public enum WixActionSymbolFields
28 {
29 SequenceTable,
30 Action,
31 Condition,
32 Sequence,
33 Before,
34 After,
35 Overridable,
36 }
37
38 public enum SequenceTable
39 {
40 AdminUISequence,
41 AdminExecuteSequence,
42 AdvertiseExecuteSequence,
43 InstallUISequence,
44 InstallExecuteSequence
45 }
46
47 public class WixActionSymbol : IntermediateSymbol
48 {
49 public WixActionSymbol() : base(SymbolDefinitions.WixAction, null, null)
50 {
51 }
52
53 public WixActionSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixAction, sourceLineNumber, id)
54 {
55 }
56
57 public IntermediateField this[WixActionSymbolFields index] => this.Fields[(int)index];
58
59 public SequenceTable SequenceTable
60 {
61 get => (SequenceTable)this.Fields[(int)WixActionSymbolFields.SequenceTable].AsNumber();
62 set => this.Set((int)WixActionSymbolFields.SequenceTable, (int)value);
63 }
64
65 public string Action
66 {
67 get => (string)this.Fields[(int)WixActionSymbolFields.Action];
68 set => this.Set((int)WixActionSymbolFields.Action, value);
69 }
70
71 public string Condition
72 {
73 get => (string)this.Fields[(int)WixActionSymbolFields.Condition];
74 set => this.Set((int)WixActionSymbolFields.Condition, value);
75 }
76
77 public int? Sequence
78 {
79 get => (int?)this.Fields[(int)WixActionSymbolFields.Sequence];
80 set => this.Set((int)WixActionSymbolFields.Sequence, value);
81 }
82
83 public string Before
84 {
85 get => (string)this.Fields[(int)WixActionSymbolFields.Before];
86 set => this.Set((int)WixActionSymbolFields.Before, value);
87 }
88
89 public string After
90 {
91 get => (string)this.Fields[(int)WixActionSymbolFields.After];
92 set => this.Set((int)WixActionSymbolFields.After, value);
93 }
94
95 public bool Overridable
96 {
97 get => this.Fields[(int)WixActionSymbolFields.Overridable].AsBool();
98 set => this.Set((int)WixActionSymbolFields.Overridable, value);
99 }
100 }
101 }