main
cs 87 lines 2.99 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.Util
4 {
5 using WixToolset.Data;
6 using WixToolset.Util.Symbols;
7
8 public static partial class UtilSymbolDefinitions
9 {
10 public static readonly IntermediateSymbolDefinition User = new IntermediateSymbolDefinition(
11 UtilSymbolDefinitionType.User.ToString(),
12 new[]
13 {
14 new IntermediateFieldDefinition(nameof(UserSymbolFields.ComponentRef), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(UserSymbolFields.Name), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(UserSymbolFields.Domain), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(UserSymbolFields.Password), IntermediateFieldType.String),
18 new IntermediateFieldDefinition(nameof(UserSymbolFields.Comment), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(UserSymbolFields.Attributes), IntermediateFieldType.Number),
20 },
21 typeof(UserSymbol));
22 }
23 }
24
25 namespace WixToolset.Util.Symbols
26 {
27 using WixToolset.Data;
28
29 public enum UserSymbolFields
30 {
31 ComponentRef,
32 Name,
33 Domain,
34 Password,
35 Comment,
36 Attributes,
37 }
38
39 public class UserSymbol : IntermediateSymbol
40 {
41 public UserSymbol() : base(UtilSymbolDefinitions.User, null, null)
42 {
43 }
44
45 public UserSymbol(SourceLineNumber sourceLineNumber, Identifier id = null) : base(UtilSymbolDefinitions.User, sourceLineNumber, id)
46 {
47 }
48
49 public IntermediateField this[UserSymbolFields index] => this.Fields[(int)index];
50
51 public string ComponentRef
52 {
53 get => this.Fields[(int)UserSymbolFields.ComponentRef].AsString();
54 set => this.Set((int)UserSymbolFields.ComponentRef, value);
55 }
56
57 public string Name
58 {
59 get => this.Fields[(int)UserSymbolFields.Name].AsString();
60 set => this.Set((int)UserSymbolFields.Name, value);
61 }
62
63 public string Domain
64 {
65 get => this.Fields[(int)UserSymbolFields.Domain].AsString();
66 set => this.Set((int)UserSymbolFields.Domain, value);
67 }
68
69 public string Password
70 {
71 get => this.Fields[(int)UserSymbolFields.Password].AsString();
72 set => this.Set((int)UserSymbolFields.Password, value);
73 }
74
75 public string Comment
76 {
77 get => this.Fields[(int)UserSymbolFields.Comment].AsString();
78 set => this.Set((int)UserSymbolFields.Comment, value);
79 }
80
81 public int Attributes
82 {
83 get => this.Fields[(int)UserSymbolFields.Attributes].AsNumber();
84 set => this.Set((int)UserSymbolFields.Attributes, value);
85 }
86 }
87 }