aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Extensibility/Data/IFileFacade.cs
diff options
context:
space:
mode:
Diffstat (limited to 'src/WixToolset.Extensibility/Data/IFileFacade.cs')
-rw-r--r--src/WixToolset.Extensibility/Data/IFileFacade.cs126
1 files changed, 126 insertions, 0 deletions
diff --git a/src/WixToolset.Extensibility/Data/IFileFacade.cs b/src/WixToolset.Extensibility/Data/IFileFacade.cs
new file mode 100644
index 00000000..fea00d4e
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IFileFacade.cs
@@ -0,0 +1,126 @@
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.Extensibility.Data
4{
5 using System.Collections.Generic;
6 using WixToolset.Data;
7 using WixToolset.Data.Symbols;
8 using WixToolset.Data.WindowsInstaller.Rows;
9
10 /// <summary>
11 /// Interface that provides a common facade over <c>FileSymbol</c> and <c>FileRow</c>.
12 /// </summary>
13 public interface IFileFacade
14 {
15 /// <summary>
16 /// Reference to assembly application for this file.
17 /// </summary>
18 string AssemblyApplicationFileRef { get; }
19
20 /// <summary>
21 /// Reference to assembly manifest for this file.
22 /// </summary>
23 string AssemblyManifestFileRef { get; }
24
25 /// <summary>
26 /// List of assembly name values in the file.
27 /// </summary>
28 List<MsiAssemblyNameSymbol> AssemblyNames { get; set; }
29
30 /// <summary>
31 /// Optionally indicates what sort of assembly the file is.
32 /// </summary>
33 AssemblyType? AssemblyType { get; }
34
35 /// <summary>
36 /// Component containing the file.
37 /// </summary>
38 string ComponentRef { get; }
39
40 /// <summary>
41 /// Indicates whether the file is compressed.
42 /// </summary>
43 bool Compressed { get; }
44
45 /// <summary>
46 /// Disk Id for the file.
47 /// </summary>
48 int DiskId { get; set; }
49
50 /// <summary>
51 /// Name of the file.
52 /// </summary>
53 string FileName { get; }
54
55 /// <summary>
56 /// Size of the file.
57 /// </summary>
58 int FileSize { get; set; }
59
60 /// <summary>
61 /// Indicates whether the file came from a merge module.
62 /// </summary>
63 bool FromModule { get; }
64
65 /// <summary>
66 /// Indicates whether the file came from a transform.
67 /// </summary>
68 bool FromTransform { get; }
69
70 /// <summary>
71 /// Hash symbol of the file.
72 /// </summary>
73 MsiFileHashSymbol Hash { get; set; }
74
75 /// <summary>
76 /// Underlying identifier of the file.
77 /// </summary>
78 Identifier Identifier { get; }
79
80 /// <summary>
81 /// Helper accessor for the Id of the Identifier.
82 /// </summary>
83 string Id { get; }
84
85 /// <summary>
86 /// Language of the file.
87 /// </summary>
88 string Language { get; set; }
89
90 /// <summary>
91 /// Optional patch group for the file.
92 /// </summary>
93 int? PatchGroup { get; }
94
95 /// <summary>
96 /// Sequence of the file.
97 /// </summary>
98 int Sequence { get; set; }
99
100 /// <summary>
101 /// Source line number that define the file.
102 /// </summary>
103 SourceLineNumber SourceLineNumber { get; }
104
105 /// <summary>
106 /// Source to the file.
107 /// </summary>
108 string SourcePath { get; }
109
110 /// <summary>
111 /// Indicates whether the file is to be uncompressed.
112 /// </summary>
113 bool Uncompressed { get; }
114
115 /// <summary>
116 /// Version of the file.
117 /// </summary>
118 string Version { get; set; }
119
120 /// <summary>
121 /// Gets the underlying <c>FileRow</c> if one is present.
122 /// </summary>
123 /// <returns><c>FileRow</c> if one is present, otherwise throws.</returns>
124 FileRow GetFileRow();
125 }
126}