aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs')
-rw-r--r--src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs87
1 files changed, 87 insertions, 0 deletions
diff --git a/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
new file mode 100644
index 00000000..3ede1097
--- /dev/null
+++ b/src/WixToolset.Data/Symbols/WixDependencyProviderSymbol.cs
@@ -0,0 +1,87 @@
1// Copyright (c) .NET Foundation 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 WixDependencyProvider = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.WixDependencyProvider.ToString(),
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ComponentRef), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.ProviderKey), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Version), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.DisplayName), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixDependencyProviderSymbolFields.Attributes), IntermediateFieldType.Number),
18 },
19 typeof(WixDependencyProviderSymbol));
20 }
21}
22
23namespace WixToolset.Data.Symbols
24{
25 using System;
26 using WixToolset.Data;
27
28 public enum WixDependencyProviderSymbolFields
29 {
30 ComponentRef,
31 ProviderKey,
32 Version,
33 DisplayName,
34 Attributes,
35 }
36
37 [Flags]
38 public enum WixDependencyProviderAttributes
39 {
40 ProvidesAttributesBundle = 0x10000
41 }
42
43 public class WixDependencyProviderSymbol : IntermediateSymbol
44 {
45 public WixDependencyProviderSymbol() : base(SymbolDefinitions.WixDependencyProvider, null, null)
46 {
47 }
48
49 public WixDependencyProviderSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.WixDependencyProvider, sourceLineNumber, id)
50 {
51 }
52
53 public IntermediateField this[WixDependencyProviderSymbolFields index] => this.Fields[(int)index];
54
55 public string ComponentRef
56 {
57 get => this.Fields[(int)WixDependencyProviderSymbolFields.ComponentRef].AsString();
58 set => this.Set((int)WixDependencyProviderSymbolFields.ComponentRef, value);
59 }
60
61 public string ProviderKey
62 {
63 get => this.Fields[(int)WixDependencyProviderSymbolFields.ProviderKey].AsString();
64 set => this.Set((int)WixDependencyProviderSymbolFields.ProviderKey, value);
65 }
66
67 public string Version
68 {
69 get => this.Fields[(int)WixDependencyProviderSymbolFields.Version].AsString();
70 set => this.Set((int)WixDependencyProviderSymbolFields.Version, value);
71 }
72
73 public string DisplayName
74 {
75 get => this.Fields[(int)WixDependencyProviderSymbolFields.DisplayName].AsString();
76 set => this.Set((int)WixDependencyProviderSymbolFields.DisplayName, value);
77 }
78
79 public WixDependencyProviderAttributes Attributes
80 {
81 get => (WixDependencyProviderAttributes)(int)this.Fields[(int)WixDependencyProviderSymbolFields.Attributes];
82 set => this.Set((int)WixDependencyProviderSymbolFields.Attributes, (int)value);
83 }
84
85 public bool Bundle => (this.Attributes & WixDependencyProviderAttributes.ProvidesAttributesBundle) == WixDependencyProviderAttributes.ProvidesAttributesBundle;
86 }
87}