aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs')
-rw-r--r--src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs111
1 files changed, 111 insertions, 0 deletions
diff --git a/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs
new file mode 100644
index 00000000..d06e029f
--- /dev/null
+++ b/src/WixToolset.Data/Tuples/WixBundleContainerTuple.cs
@@ -0,0 +1,111 @@
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 WixBundleContainer = new IntermediateTupleDefinition(
10 TupleDefinitionType.WixBundleContainer,
11 new[]
12 {
13 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WixBundleContainer), IntermediateFieldType.String),
14 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Name), IntermediateFieldType.String),
15 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Type), IntermediateFieldType.Number),
16 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.DownloadUrl), IntermediateFieldType.String),
17 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Size), IntermediateFieldType.Number),
18 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.Hash), IntermediateFieldType.String),
19 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.AttachedContainerIndex), IntermediateFieldType.Number),
20 new IntermediateFieldDefinition(nameof(WixBundleContainerTupleFields.WorkingPath), IntermediateFieldType.String),
21 },
22 typeof(WixBundleContainerTuple));
23 }
24}
25
26namespace WixToolset.Data.Tuples
27{
28 using System;
29
30 public enum WixBundleContainerTupleFields
31 {
32 WixBundleContainer,
33 Name,
34 Type,
35 DownloadUrl,
36 Size,
37 Hash,
38 AttachedContainerIndex,
39 WorkingPath,
40 }
41
42 /// <summary>
43 /// Types of bundle packages.
44 /// </summary>
45 public enum ContainerType
46 {
47 Attached,
48 Detached,
49 }
50
51 public class WixBundleContainerTuple : IntermediateTuple
52 {
53 public WixBundleContainerTuple() : base(TupleDefinitions.WixBundleContainer, null, null)
54 {
55 }
56
57 public WixBundleContainerTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixBundleContainer, sourceLineNumber, id)
58 {
59 }
60
61 public IntermediateField this[WixBundleContainerTupleFields index] => this.Fields[(int)index];
62
63 public string WixBundleContainer
64 {
65 get => (string)this.Fields[(int)WixBundleContainerTupleFields.WixBundleContainer]?.Value;
66 set => this.Set((int)WixBundleContainerTupleFields.WixBundleContainer, value);
67 }
68
69 public string Name
70 {
71 get => (string)this.Fields[(int)WixBundleContainerTupleFields.Name]?.Value;
72 set => this.Set((int)WixBundleContainerTupleFields.Name, value);
73 }
74
75 public ContainerType Type
76 {
77 get => (ContainerType)Enum.Parse(typeof(ContainerType), (string)this.Fields[(int)WixBundleContainerTupleFields.Type]?.Value, true);
78 set => this.Set((int)WixBundleContainerTupleFields.Type, value.ToString());
79 }
80
81 public string DownloadUrl
82 {
83 get => (string)this.Fields[(int)WixBundleContainerTupleFields.DownloadUrl]?.Value;
84 set => this.Set((int)WixBundleContainerTupleFields.DownloadUrl, value);
85 }
86
87 public int Size
88 {
89 get => (int)this.Fields[(int)WixBundleContainerTupleFields.Size]?.Value;
90 set => this.Set((int)WixBundleContainerTupleFields.Size, value);
91 }
92
93 public string Hash
94 {
95 get => (string)this.Fields[(int)WixBundleContainerTupleFields.Hash]?.Value;
96 set => this.Set((int)WixBundleContainerTupleFields.Hash, value);
97 }
98
99 public int AttachedContainerIndex
100 {
101 get => (int)this.Fields[(int)WixBundleContainerTupleFields.AttachedContainerIndex]?.Value;
102 set => this.Set((int)WixBundleContainerTupleFields.AttachedContainerIndex, value);
103 }
104
105 public string WorkingPath
106 {
107 get => (string)this.Fields[(int)WixBundleContainerTupleFields.WorkingPath]?.Value;
108 set => this.Set((int)WixBundleContainerTupleFields.WorkingPath, value);
109 }
110 }
111} \ No newline at end of file