aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/Symbols/WixPackageSymbol.cs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/WixToolset.Data/Symbols/WixPackageSymbol.cs111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/WixToolset.Data/Symbols/WixPackageSymbol.cs b/src/WixToolset.Data/Symbols/WixPackageSymbol.cs
new file mode 100644
index 00000000..e1720033
--- /dev/null
+++ b/src/WixToolset.Data/Symbols/WixPackageSymbol.cs
@@ -0,0 +1,111 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.Data
4{
5 using WixToolset.Data.Symbols;
6
7 public static partial class SymbolDefinitions
8 {
9 public static readonly IntermediateSymbolDefinition WixPackage = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixPackage,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.PackageId), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.UpgradeCode), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Name), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Language), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Version), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Manufacturer), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Attributes), IntermediateFieldType.Number),
20 new IntermediateFieldDefinition(nameof(WixPackageSymbolFields.Codepage), IntermediateFieldType.String),
21 },
22 typeof(WixPackageSymbol));
23 }
24}
25
26namespace WixToolset.Data.Symbols
27{
28 using System;
29
30 public enum WixPackageSymbolFields
31 {
32 PackageId,
33 UpgradeCode,
34 Name,
35 Language,
36 Version,
37 Manufacturer,
38 Attributes,
39 Codepage,
40 }
41
42 [Flags]
43 public enum WixPackageAttributes
44 {
45 None = 0x0,
46 PerMachine = 0x1,
47 }
48
49 public class WixPackageSymbol : IntermediateSymbol
50 {
51 public WixPackageSymbol() : base(SymbolDefinitions.WixPackage, null, null)
52 {
53 }
54
55 public WixPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixPackage, sourceLineNumber, id)
56 {
57 }
58
59 public IntermediateField this[WixPackageSymbolFields index] => this.Fields[(int)index];
60
61 public string PackageId
62 {
63 get => (string)this.Fields[(int)WixPackageSymbolFields.PackageId];
64 set => this.Set((int)WixPackageSymbolFields.PackageId, value);
65 }
66
67 public string UpgradeCode
68 {
69 get => (string)this.Fields[(int)WixPackageSymbolFields.UpgradeCode];
70 set => this.Set((int)WixPackageSymbolFields.UpgradeCode, value);
71 }
72
73 public string Name
74 {
75 get => (string)this.Fields[(int)WixPackageSymbolFields.Name];
76 set => this.Set((int)WixPackageSymbolFields.Name, value);
77 }
78
79 public string Language
80 {
81 get => (string)this.Fields[(int)WixPackageSymbolFields.Language];
82 set => this.Set((int)WixPackageSymbolFields.Language, value);
83 }
84
85 public string Version
86 {
87 get => (string)this.Fields[(int)WixPackageSymbolFields.Version];
88 set => this.Set((int)WixPackageSymbolFields.Version, value);
89 }
90
91 public string Manufacturer
92 {
93 get => (string)this.Fields[(int)WixPackageSymbolFields.Manufacturer];
94 set => this.Set((int)WixPackageSymbolFields.Manufacturer, value);
95 }
96
97 public WixPackageAttributes Attributes
98 {
99 get => (WixPackageAttributes)this.Fields[(int)WixPackageSymbolFields.Attributes].AsNumber();
100 set => this.Set((int)WixPackageSymbolFields.Attributes, (int)value);
101 }
102
103 public string Codepage
104 {
105 get => (string)this.Fields[(int)WixPackageSymbolFields.Codepage];
106 set => this.Set((int)WixPackageSymbolFields.Codepage, value);
107 }
108
109 public bool PerMachine => (this.Attributes & WixPackageAttributes.PerMachine) == WixPackageAttributes.PerMachine;
110 }
111}