aboutsummaryrefslogtreecommitdiff
path: root/src/ext/Bal/wixext/Symbols/BalSymbolDefinitions.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/ext/Bal/wixext/Symbols/BalSymbolDefinitions.cs')
-rw-r--r--src/ext/Bal/wixext/Symbols/BalSymbolDefinitions.cs80
1 files changed, 80 insertions, 0 deletions
diff --git a/src/ext/Bal/wixext/Symbols/BalSymbolDefinitions.cs b/src/ext/Bal/wixext/Symbols/BalSymbolDefinitions.cs
new file mode 100644
index 00000000..90865621
--- /dev/null
+++ b/src/ext/Bal/wixext/Symbols/BalSymbolDefinitions.cs
@@ -0,0 +1,80 @@
1// Copyright (c) .NET Foundation 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.Bal
4{
5 using System;
6 using WixToolset.Data;
7 using WixToolset.Data.Burn;
8
9 public enum BalSymbolDefinitionType
10 {
11 WixBalBAFactoryAssembly,
12 WixBalBAFunctions,
13 WixBalCondition,
14 WixBalPackageInfo,
15 WixDncOptions,
16 WixMbaPrereqInformation,
17 WixStdbaOptions,
18 WixStdbaOverridableVariable,
19 }
20
21 public static partial class BalSymbolDefinitions
22 {
23 public static readonly Version Version = new Version("4.0.0");
24
25 public static IntermediateSymbolDefinition ByName(string name)
26 {
27 if (!Enum.TryParse(name, out BalSymbolDefinitionType type))
28 {
29 return null;
30 }
31
32 return ByType(type);
33 }
34
35 public static IntermediateSymbolDefinition ByType(BalSymbolDefinitionType type)
36 {
37 switch (type)
38 {
39 case BalSymbolDefinitionType.WixBalBAFactoryAssembly:
40 return BalSymbolDefinitions.WixBalBAFactoryAssembly;
41
42 case BalSymbolDefinitionType.WixBalBAFunctions:
43 return BalSymbolDefinitions.WixBalBAFunctions;
44
45 case BalSymbolDefinitionType.WixBalCondition:
46 return BalSymbolDefinitions.WixBalCondition;
47
48 case BalSymbolDefinitionType.WixBalPackageInfo:
49 return BalSymbolDefinitions.WixBalPackageInfo;
50
51 case BalSymbolDefinitionType.WixDncOptions:
52 return BalSymbolDefinitions.WixDncOptions;
53
54 case BalSymbolDefinitionType.WixMbaPrereqInformation:
55 return BalSymbolDefinitions.WixMbaPrereqInformation;
56
57 case BalSymbolDefinitionType.WixStdbaOptions:
58 return BalSymbolDefinitions.WixStdbaOptions;
59
60 case BalSymbolDefinitionType.WixStdbaOverridableVariable:
61 return BalSymbolDefinitions.WixStdbaOverridableVariable;
62
63 default:
64 throw new ArgumentOutOfRangeException(nameof(type));
65 }
66 }
67
68 static BalSymbolDefinitions()
69 {
70 WixBalBAFactoryAssembly.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
71 WixBalBAFunctions.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
72 WixBalCondition.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
73 WixBalPackageInfo.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
74 WixDncOptions.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
75 WixMbaPrereqInformation.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
76 WixStdbaOptions.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
77 WixStdbaOverridableVariable.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
78 }
79 }
80}