aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2020-06-03 02:04:35 -0700
committerRob Mensching <rob@firegiant.com>2020-06-03 02:08:57 -0700
commit4a8dc1f4d55278abdff056bb2a332ffec0f60c90 (patch)
treea60ee521fcbf9886e820f8330a842355f05f1371 /src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs
parent29be4a31c4cf1268d847d4c37c70487f29b84701 (diff)
downloadwix-4a8dc1f4d55278abdff056bb2a332ffec0f60c90.tar.gz
wix-4a8dc1f4d55278abdff056bb2a332ffec0f60c90.tar.bz2
wix-4a8dc1f4d55278abdff056bb2a332ffec0f60c90.zip
Redesign CustomTable tuples to enable file resolution in Core
Diffstat (limited to 'src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs')
-rw-r--r--src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs173
1 files changed, 173 insertions, 0 deletions
diff --git a/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs
new file mode 100644
index 00000000..66d3e48f
--- /dev/null
+++ b/src/WixToolset.Data/Tuples/WixCustomTableColumnTuple.cs
@@ -0,0 +1,173 @@
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.Data
4{
5 using WixToolset.Data.Tuples;
6
7 public static partial class TupleDefinitions
8 {
9 public static readonly IntermediateTupleDefinition WixCustomTableColumn = new IntermediateTupleDefinition(
10 TupleDefinitionType.WixCustomTableColumn,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.TableRef), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Name), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Type), IntermediateFieldType.String),
16 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Attributes), IntermediateFieldType.Number),
17 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Width), IntermediateFieldType.Number),
18 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.MinValue), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.MaxValue), IntermediateFieldType.String),
20 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.KeyTable), IntermediateFieldType.String),
21 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.KeyColumn), IntermediateFieldType.String),
22 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Category), IntermediateFieldType.String),
23 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Set), IntermediateFieldType.String),
24 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Description), IntermediateFieldType.String),
25 new IntermediateFieldDefinition(nameof(WixCustomTableColumnTupleFields.Modularize), IntermediateFieldType.Number)
26 },
27 typeof(WixCustomTableColumnTuple));
28 }
29}
30
31namespace WixToolset.Data.Tuples
32{
33 using System;
34
35 public enum WixCustomTableColumnTupleFields
36 {
37 TableRef,
38 Name,
39 Type,
40 Attributes,
41 Width,
42 MinValue,
43 MaxValue,
44 KeyTable,
45 KeyColumn,
46 Category,
47 Set,
48 Description,
49 Modularize,
50 }
51
52 [Flags]
53 public enum WixCustomTableColumnTupleAttributes
54 {
55 None,
56 PrimaryKey,
57 Localizable,
58 Nullable,
59 Unreal,
60 }
61
62 public enum WixCustomTableColumnModularizeType
63 {
64 None,
65 Column,
66 CompanionFile,
67 Condition,
68 ControlEventArgument,
69 ControlText,
70 Icon,
71 Property,
72 SemicolonDelimited,
73 }
74
75 public class WixCustomTableColumnTuple : IntermediateTuple
76 {
77 public WixCustomTableColumnTuple() : base(TupleDefinitions.WixCustomTableColumn, null, null)
78 {
79 }
80
81 public WixCustomTableColumnTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixCustomTableColumn, sourceLineNumber, id)
82 {
83 }
84
85 public IntermediateField this[WixCustomTableColumnTupleFields index] => this.Fields[(int)index];
86
87 public string TableRef
88 {
89 get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.TableRef];
90 set => this.Set((int)WixCustomTableColumnTupleFields.TableRef, value);
91 }
92
93 public string Name
94 {
95 get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Name];
96 set => this.Set((int)WixCustomTableColumnTupleFields.Name, value);
97 }
98
99 public IntermediateFieldType Type
100 {
101 get => (IntermediateFieldType)this.Fields[(int)WixCustomTableColumnTupleFields.Type].AsNumber();
102 set => this.Set((int)WixCustomTableColumnTupleFields.Type, (int)value);
103 }
104
105 public WixCustomTableColumnTupleAttributes Attributes
106 {
107 get => (WixCustomTableColumnTupleAttributes)this.Fields[(int)WixCustomTableColumnTupleFields.Attributes].AsNumber();
108 set => this.Set((int)WixCustomTableColumnTupleFields.Attributes, (int)value);
109 }
110
111 public int Width
112 {
113 get => (int)this.Fields[(int)WixCustomTableColumnTupleFields.Width];
114 set => this.Set((int)WixCustomTableColumnTupleFields.Width, value);
115 }
116
117 public long? MinValue
118 {
119 get => (long?)this.Fields[(int)WixCustomTableColumnTupleFields.MinValue];
120 set => this.Set((int)WixCustomTableColumnTupleFields.MinValue, value);
121 }
122
123 public long? MaxValue
124 {
125 get => (long?)this.Fields[(int)WixCustomTableColumnTupleFields.MaxValue];
126 set => this.Set((int)WixCustomTableColumnTupleFields.MaxValue, value);
127 }
128
129 public string KeyTable
130 {
131 get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.KeyTable];
132 set => this.Set((int)WixCustomTableColumnTupleFields.KeyTable, value);
133 }
134
135 public int? KeyColumn
136 {
137 get => (int?)this.Fields[(int)WixCustomTableColumnTupleFields.KeyColumn];
138 set => this.Set((int)WixCustomTableColumnTupleFields.KeyColumn, value);
139 }
140
141 public string Category
142 {
143 get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Category];
144 set => this.Set((int)WixCustomTableColumnTupleFields.Category, value);
145 }
146
147 public string Set
148 {
149 get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Set];
150 set => this.Set((int)WixCustomTableColumnTupleFields.Set, value);
151 }
152
153 public string Description
154 {
155 get => (string)this.Fields[(int)WixCustomTableColumnTupleFields.Description];
156 set => this.Set((int)WixCustomTableColumnTupleFields.Description, value);
157 }
158
159 public WixCustomTableColumnModularizeType? Modularize
160 {
161 get => (WixCustomTableColumnModularizeType?)this.Fields[(int)WixCustomTableColumnTupleFields.Modularize].AsNullableNumber();
162 set => this.Set((int)WixCustomTableColumnTupleFields.Modularize, (int?)value);
163 }
164
165 public bool PrimaryKey => (this.Attributes & WixCustomTableColumnTupleAttributes.PrimaryKey) == WixCustomTableColumnTupleAttributes.PrimaryKey;
166
167 public bool Localizable => (this.Attributes & WixCustomTableColumnTupleAttributes.Localizable) == WixCustomTableColumnTupleAttributes.Localizable;
168
169 public bool Nullable => (this.Attributes & WixCustomTableColumnTupleAttributes.Nullable) == WixCustomTableColumnTupleAttributes.Nullable;
170
171 public bool Unreal => (this.Attributes & WixCustomTableColumnTupleAttributes.Unreal) == WixCustomTableColumnTupleAttributes.Unreal;
172 }
173}