main
cs 92 lines 3.68 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.BootstrapperApplications
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 WixPrereqInformation,
17 WixStdbaCommandLine,
18 WixStdbaOptions,
19 WixStdbaOverridableVariable,
20 WixPrereqOptions,
21 WixBalBootstrapperApplication,
22 }
23
24 public static partial class BalSymbolDefinitions
25 {
26 public static IntermediateSymbolDefinition ByName(string name)
27 {
28 if (!Enum.TryParse(name, out BalSymbolDefinitionType type))
29 {
30 return null;
31 }
32
33 return ByType(type);
34 }
35
36 public static IntermediateSymbolDefinition ByType(BalSymbolDefinitionType type)
37 {
38 switch (type)
39 {
40 #pragma warning disable 0612 // obsolete
41 case BalSymbolDefinitionType.WixBalBAFactoryAssembly:
42 return BalSymbolDefinitions.WixBalBAFactoryAssembly;
43 #pragma warning restore 0612
44
45 case BalSymbolDefinitionType.WixBalBAFunctions:
46 return BalSymbolDefinitions.WixBalBAFunctions;
47
48 case BalSymbolDefinitionType.WixBalCondition:
49 return BalSymbolDefinitions.WixBalCondition;
50
51 case BalSymbolDefinitionType.WixBalPackageInfo:
52 return BalSymbolDefinitions.WixBalPackageInfo;
53
54 case BalSymbolDefinitionType.WixPrereqInformation:
55 return BalSymbolDefinitions.WixPrereqInformation;
56
57 case BalSymbolDefinitionType.WixStdbaCommandLine:
58 return BalSymbolDefinitions.WixStdbaCommandLine;
59
60 case BalSymbolDefinitionType.WixStdbaOptions:
61 return BalSymbolDefinitions.WixStdbaOptions;
62
63 case BalSymbolDefinitionType.WixStdbaOverridableVariable:
64 return BalSymbolDefinitions.WixStdbaOverridableVariable;
65
66 case BalSymbolDefinitionType.WixPrereqOptions:
67 return BalSymbolDefinitions.WixPrereqOptions;
68
69 case BalSymbolDefinitionType.WixBalBootstrapperApplication:
70 return BalSymbolDefinitions.WixBalBootstrapperApplication;
71
72 default:
73 throw new ArgumentOutOfRangeException(nameof(type));
74 }
75 }
76
77 static BalSymbolDefinitions()
78 {
79 #pragma warning disable 0612 // obsolete
80 WixBalBAFactoryAssembly.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
81 #pragma warning restore 0612
82 WixBalBAFunctions.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
83 WixBalCondition.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
84 WixBalPackageInfo.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
85 WixPrereqInformation.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
86 WixStdbaCommandLine.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
87 WixStdbaOptions.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
88 WixStdbaOverridableVariable.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
89 WixPrereqOptions.AddTag(BurnConstants.BootstrapperApplicationDataSymbolDefinitionTag);
90 }
91 }
92 }