main
cs 140 lines 5.3 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 Class = new IntermediateSymbolDefinition(
10 SymbolDefinitionType.Class,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(ClassSymbolFields.CLSID), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(ClassSymbolFields.Context), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(ClassSymbolFields.ComponentRef), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefaultProgIdRef), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(ClassSymbolFields.Description), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(ClassSymbolFields.AppIdRef), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(ClassSymbolFields.FileTypeMask), IntermediateFieldType.String),
20 new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconRef), IntermediateFieldType.String),
21 new IntermediateFieldDefinition(nameof(ClassSymbolFields.IconIndex), IntermediateFieldType.Number),
22 new IntermediateFieldDefinition(nameof(ClassSymbolFields.DefInprocHandler), IntermediateFieldType.String),
23 new IntermediateFieldDefinition(nameof(ClassSymbolFields.Argument), IntermediateFieldType.String),
24 new IntermediateFieldDefinition(nameof(ClassSymbolFields.FeatureRef), IntermediateFieldType.String),
25 new IntermediateFieldDefinition(nameof(ClassSymbolFields.RelativePath), IntermediateFieldType.Bool),
26 },
27 typeof(ClassSymbol));
28 }
29 }
30
31 namespace WixToolset.Data.Symbols
32 {
33 public enum ClassSymbolFields
34 {
35 CLSID,
36 Context,
37 ComponentRef,
38 DefaultProgIdRef,
39 Description,
40 AppIdRef,
41 FileTypeMask,
42 IconRef,
43 IconIndex,
44 DefInprocHandler,
45 Argument,
46 FeatureRef,
47 RelativePath,
48 }
49
50 public class ClassSymbol : IntermediateSymbol
51 {
52 public ClassSymbol() : base(SymbolDefinitions.Class, null, null)
53 {
54 }
55
56 public ClassSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(SymbolDefinitions.Class, sourceLineNumber, id)
57 {
58 }
59
60 public IntermediateField this[ClassSymbolFields index] => this.Fields[(int)index];
61
62 public string CLSID
63 {
64 get => (string)this.Fields[(int)ClassSymbolFields.CLSID];
65 set => this.Set((int)ClassSymbolFields.CLSID, value);
66 }
67
68 public string Context
69 {
70 get => (string)this.Fields[(int)ClassSymbolFields.Context];
71 set => this.Set((int)ClassSymbolFields.Context, value);
72 }
73
74 public string ComponentRef
75 {
76 get => (string)this.Fields[(int)ClassSymbolFields.ComponentRef];
77 set => this.Set((int)ClassSymbolFields.ComponentRef, value);
78 }
79
80 public string DefaultProgIdRef
81 {
82 get => (string)this.Fields[(int)ClassSymbolFields.DefaultProgIdRef];
83 set => this.Set((int)ClassSymbolFields.DefaultProgIdRef, value);
84 }
85
86 public string Description
87 {
88 get => (string)this.Fields[(int)ClassSymbolFields.Description];
89 set => this.Set((int)ClassSymbolFields.Description, value);
90 }
91
92 public string AppIdRef
93 {
94 get => (string)this.Fields[(int)ClassSymbolFields.AppIdRef];
95 set => this.Set((int)ClassSymbolFields.AppIdRef, value);
96 }
97
98 public string FileTypeMask
99 {
100 get => (string)this.Fields[(int)ClassSymbolFields.FileTypeMask];
101 set => this.Set((int)ClassSymbolFields.FileTypeMask, value);
102 }
103
104 public string IconRef
105 {
106 get => (string)this.Fields[(int)ClassSymbolFields.IconRef];
107 set => this.Set((int)ClassSymbolFields.IconRef, value);
108 }
109
110 public int? IconIndex
111 {
112 get => (int?)this.Fields[(int)ClassSymbolFields.IconIndex];
113 set => this.Set((int)ClassSymbolFields.IconIndex, value);
114 }
115
116 public string DefInprocHandler
117 {
118 get => (string)this.Fields[(int)ClassSymbolFields.DefInprocHandler];
119 set => this.Set((int)ClassSymbolFields.DefInprocHandler, value);
120 }
121
122 public string Argument
123 {
124 get => (string)this.Fields[(int)ClassSymbolFields.Argument];
125 set => this.Set((int)ClassSymbolFields.Argument, value);
126 }
127
128 public string FeatureRef
129 {
130 get => (string)this.Fields[(int)ClassSymbolFields.FeatureRef];
131 set => this.Set((int)ClassSymbolFields.FeatureRef, value);
132 }
133
134 public bool RelativePath
135 {
136 get => this.Fields[(int)ClassSymbolFields.RelativePath].AsBool();
137 set => this.Set((int)ClassSymbolFields.RelativePath, value);
138 }
139 }
140 }