main
cs 133 lines 5.35 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.ComPlus
4 {
5 using System;
6 using WixToolset.Data;
7
8 public enum ComPlusSymbolDefinitionType
9 {
10 ComPlusApplication,
11 ComPlusApplicationProperty,
12 ComPlusApplicationRole,
13 ComPlusApplicationRoleProperty,
14 ComPlusAssembly,
15 ComPlusAssemblyDependency,
16 ComPlusComponent,
17 ComPlusComponentProperty,
18 ComPlusGroupInApplicationRole,
19 ComPlusGroupInPartitionRole,
20 ComPlusInterface,
21 ComPlusInterfaceProperty,
22 ComPlusMethod,
23 ComPlusMethodProperty,
24 ComPlusPartition,
25 ComPlusPartitionProperty,
26 ComPlusPartitionRole,
27 ComPlusPartitionUser,
28 ComPlusRoleForComponent,
29 ComPlusRoleForInterface,
30 ComPlusRoleForMethod,
31 ComPlusSubscription,
32 ComPlusSubscriptionProperty,
33 ComPlusUserInApplicationRole,
34 ComPlusUserInPartitionRole,
35 }
36
37 public static partial class ComPlusSymbolDefinitions
38 {
39 public static IntermediateSymbolDefinition ByName(string name)
40 {
41 if (!Enum.TryParse(name, out ComPlusSymbolDefinitionType type))
42 {
43 return null;
44 }
45
46 return ByType(type);
47 }
48
49 public static IntermediateSymbolDefinition ByType(ComPlusSymbolDefinitionType type)
50 {
51 switch (type)
52 {
53 case ComPlusSymbolDefinitionType.ComPlusApplication:
54 return ComPlusSymbolDefinitions.ComPlusApplication;
55
56 case ComPlusSymbolDefinitionType.ComPlusApplicationProperty:
57 return ComPlusSymbolDefinitions.ComPlusApplicationProperty;
58
59 case ComPlusSymbolDefinitionType.ComPlusApplicationRole:
60 return ComPlusSymbolDefinitions.ComPlusApplicationRole;
61
62 case ComPlusSymbolDefinitionType.ComPlusApplicationRoleProperty:
63 return ComPlusSymbolDefinitions.ComPlusApplicationRoleProperty;
64
65 case ComPlusSymbolDefinitionType.ComPlusAssembly:
66 return ComPlusSymbolDefinitions.ComPlusAssembly;
67
68 case ComPlusSymbolDefinitionType.ComPlusAssemblyDependency:
69 return ComPlusSymbolDefinitions.ComPlusAssemblyDependency;
70
71 case ComPlusSymbolDefinitionType.ComPlusComponent:
72 return ComPlusSymbolDefinitions.ComPlusComponent;
73
74 case ComPlusSymbolDefinitionType.ComPlusComponentProperty:
75 return ComPlusSymbolDefinitions.ComPlusComponentProperty;
76
77 case ComPlusSymbolDefinitionType.ComPlusGroupInApplicationRole:
78 return ComPlusSymbolDefinitions.ComPlusGroupInApplicationRole;
79
80 case ComPlusSymbolDefinitionType.ComPlusGroupInPartitionRole:
81 return ComPlusSymbolDefinitions.ComPlusGroupInPartitionRole;
82
83 case ComPlusSymbolDefinitionType.ComPlusInterface:
84 return ComPlusSymbolDefinitions.ComPlusInterface;
85
86 case ComPlusSymbolDefinitionType.ComPlusInterfaceProperty:
87 return ComPlusSymbolDefinitions.ComPlusInterfaceProperty;
88
89 case ComPlusSymbolDefinitionType.ComPlusMethod:
90 return ComPlusSymbolDefinitions.ComPlusMethod;
91
92 case ComPlusSymbolDefinitionType.ComPlusMethodProperty:
93 return ComPlusSymbolDefinitions.ComPlusMethodProperty;
94
95 case ComPlusSymbolDefinitionType.ComPlusPartition:
96 return ComPlusSymbolDefinitions.ComPlusPartition;
97
98 case ComPlusSymbolDefinitionType.ComPlusPartitionProperty:
99 return ComPlusSymbolDefinitions.ComPlusPartitionProperty;
100
101 case ComPlusSymbolDefinitionType.ComPlusPartitionRole:
102 return ComPlusSymbolDefinitions.ComPlusPartitionRole;
103
104 case ComPlusSymbolDefinitionType.ComPlusPartitionUser:
105 return ComPlusSymbolDefinitions.ComPlusPartitionUser;
106
107 case ComPlusSymbolDefinitionType.ComPlusRoleForComponent:
108 return ComPlusSymbolDefinitions.ComPlusRoleForComponent;
109
110 case ComPlusSymbolDefinitionType.ComPlusRoleForInterface:
111 return ComPlusSymbolDefinitions.ComPlusRoleForInterface;
112
113 case ComPlusSymbolDefinitionType.ComPlusRoleForMethod:
114 return ComPlusSymbolDefinitions.ComPlusRoleForMethod;
115
116 case ComPlusSymbolDefinitionType.ComPlusSubscription:
117 return ComPlusSymbolDefinitions.ComPlusSubscription;
118
119 case ComPlusSymbolDefinitionType.ComPlusSubscriptionProperty:
120 return ComPlusSymbolDefinitions.ComPlusSubscriptionProperty;
121
122 case ComPlusSymbolDefinitionType.ComPlusUserInApplicationRole:
123 return ComPlusSymbolDefinitions.ComPlusUserInApplicationRole;
124
125 case ComPlusSymbolDefinitionType.ComPlusUserInPartitionRole:
126 return ComPlusSymbolDefinitions.ComPlusUserInPartitionRole;
127
128 default:
129 throw new ArgumentOutOfRangeException(nameof(type));
130 }
131 }
132 }
133 }