main
cs 160 lines 5.71 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 WixBundleRelatedPackage = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixBundleRelatedPackage,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.PackagePayloadRef), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.RelatedId), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MinVersion), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.MaxVersion), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Languages), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(WixBundleRelatedPackageSymbolFields.Attributes), IntermediateFieldType.Number),
19 },
20 typeof(WixBundleRelatedPackageSymbol));
21 }
22 }
23
24 namespace WixToolset.Data.Symbols
25 {
26 using System;
27
28 public enum WixBundleRelatedPackageSymbolFields
29 {
30 PackagePayloadRef,
31 RelatedId,
32 MinVersion,
33 MaxVersion,
34 Languages,
35 Attributes,
36 }
37
38 [Flags]
39 public enum WixBundleRelatedPackageAttributes
40 {
41 None = 0x0,
42 OnlyDetect = 0x1,
43 MinInclusive = 0x2,
44 MaxInclusive = 0x4,
45 LangInclusive = 0x8,
46 }
47
48 public class WixBundleRelatedPackageSymbol : IntermediateSymbol
49 {
50 public WixBundleRelatedPackageSymbol() : base(SymbolDefinitions.WixBundleRelatedPackage, null, null)
51 {
52 }
53
54 public WixBundleRelatedPackageSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixBundleRelatedPackage, sourceLineNumber, id)
55 {
56 }
57
58 public IntermediateField this[WixBundleRelatedPackageSymbolFields index] => this.Fields[(int)index];
59
60 public string PackagePayloadRef
61 {
62 get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.PackagePayloadRef];
63 set => this.Set((int)WixBundleRelatedPackageSymbolFields.PackagePayloadRef, value);
64 }
65
66 public string RelatedId
67 {
68 get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.RelatedId];
69 set => this.Set((int)WixBundleRelatedPackageSymbolFields.RelatedId, value);
70 }
71
72 public string MinVersion
73 {
74 get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MinVersion];
75 set => this.Set((int)WixBundleRelatedPackageSymbolFields.MinVersion, value);
76 }
77
78 public string MaxVersion
79 {
80 get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.MaxVersion];
81 set => this.Set((int)WixBundleRelatedPackageSymbolFields.MaxVersion, value);
82 }
83
84 public string Languages
85 {
86 get => (string)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Languages];
87 set => this.Set((int)WixBundleRelatedPackageSymbolFields.Languages, value);
88 }
89
90 public WixBundleRelatedPackageAttributes Attributes
91 {
92 get => (WixBundleRelatedPackageAttributes)this.Fields[(int)WixBundleRelatedPackageSymbolFields.Attributes].AsNumber();
93 set => this.Set((int)WixBundleRelatedPackageSymbolFields.Attributes, (int)value);
94 }
95
96 public bool MinInclusive
97 {
98 get { return this.Attributes.HasFlag(WixBundleRelatedPackageAttributes.MinInclusive); }
99 set
100 {
101 if (value)
102 {
103 this.Attributes |= WixBundleRelatedPackageAttributes.MinInclusive;
104 }
105 else
106 {
107 this.Attributes &= ~WixBundleRelatedPackageAttributes.MinInclusive;
108 }
109 }
110 }
111
112 public bool MaxInclusive
113 {
114 get { return this.Attributes.HasFlag(WixBundleRelatedPackageAttributes.MaxInclusive); }
115 set
116 {
117 if (value)
118 {
119 this.Attributes |= WixBundleRelatedPackageAttributes.MaxInclusive;
120 }
121 else
122 {
123 this.Attributes &= ~WixBundleRelatedPackageAttributes.MaxInclusive;
124 }
125 }
126 }
127
128 public bool OnlyDetect
129 {
130 get { return this.Attributes.HasFlag(WixBundleRelatedPackageAttributes.OnlyDetect); }
131 set
132 {
133 if (value)
134 {
135 this.Attributes |= WixBundleRelatedPackageAttributes.OnlyDetect;
136 }
137 else
138 {
139 this.Attributes &= ~WixBundleRelatedPackageAttributes.OnlyDetect;
140 }
141 }
142 }
143
144 public bool LangInclusive
145 {
146 get { return this.Attributes.HasFlag(WixBundleRelatedPackageAttributes.LangInclusive); }
147 set
148 {
149 if (value)
150 {
151 this.Attributes |= WixBundleRelatedPackageAttributes.LangInclusive;
152 }
153 else
154 {
155 this.Attributes &= ~WixBundleRelatedPackageAttributes.LangInclusive;
156 }
157 }
158 }
159 }
160 }