From f4af6bf27abaaac7f0508ce2beafb31b5a64b53f Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sun, 14 Mar 2021 07:30:15 -0700 Subject: Minimize public surface area of Core Part of wixtoolset/issues#6374 --- src/WixToolset.Extensibility/Data/IFileFacade.cs | 126 +++++++++++++++++++++++ 1 file changed, 126 insertions(+) create mode 100644 src/WixToolset.Extensibility/Data/IFileFacade.cs (limited to 'src/WixToolset.Extensibility/Data') 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 @@ +// 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. + +namespace WixToolset.Extensibility.Data +{ + using System.Collections.Generic; + using WixToolset.Data; + using WixToolset.Data.Symbols; + using WixToolset.Data.WindowsInstaller.Rows; + + /// + /// Interface that provides a common facade over FileSymbol and FileRow. + /// + public interface IFileFacade + { + /// + /// Reference to assembly application for this file. + /// + string AssemblyApplicationFileRef { get; } + + /// + /// Reference to assembly manifest for this file. + /// + string AssemblyManifestFileRef { get; } + + /// + /// List of assembly name values in the file. + /// + List AssemblyNames { get; set; } + + /// + /// Optionally indicates what sort of assembly the file is. + /// + AssemblyType? AssemblyType { get; } + + /// + /// Component containing the file. + /// + string ComponentRef { get; } + + /// + /// Indicates whether the file is compressed. + /// + bool Compressed { get; } + + /// + /// Disk Id for the file. + /// + int DiskId { get; set; } + + /// + /// Name of the file. + /// + string FileName { get; } + + /// + /// Size of the file. + /// + int FileSize { get; set; } + + /// + /// Indicates whether the file came from a merge module. + /// + bool FromModule { get; } + + /// + /// Indicates whether the file came from a transform. + /// + bool FromTransform { get; } + + /// + /// Hash symbol of the file. + /// + MsiFileHashSymbol Hash { get; set; } + + /// + /// Underlying identifier of the file. + /// + Identifier Identifier { get; } + + /// + /// Helper accessor for the Id of the Identifier. + /// + string Id { get; } + + /// + /// Language of the file. + /// + string Language { get; set; } + + /// + /// Optional patch group for the file. + /// + int? PatchGroup { get; } + + /// + /// Sequence of the file. + /// + int Sequence { get; set; } + + /// + /// Source line number that define the file. + /// + SourceLineNumber SourceLineNumber { get; } + + /// + /// Source to the file. + /// + string SourcePath { get; } + + /// + /// Indicates whether the file is to be uncompressed. + /// + bool Uncompressed { get; } + + /// + /// Version of the file. + /// + string Version { get; set; } + + /// + /// Gets the underlying FileRow if one is present. + /// + /// FileRow if one is present, otherwise throws. + FileRow GetFileRow(); + } +} -- cgit v1.2.3-55-g6feb