// 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.Data { using WixToolset.Data.Tuples; public static partial class TupleDefinitions { public static readonly IntermediateTupleDefinition WixFile = new IntermediateTupleDefinition( TupleDefinitionType.WixFile, new[] { new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.AssemblyType), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyManifest), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.File_AssemblyApplication), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.Directory_), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.DiskId), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.Source), IntermediateFieldType.Path), new IntermediateFieldDefinition(nameof(WixFileTupleFields.ProcessorArchitecture), IntermediateFieldType.String), new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchGroup), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.Attributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.PatchAttributes), IntermediateFieldType.Number), new IntermediateFieldDefinition(nameof(WixFileTupleFields.DeltaPatchHeaderSource), IntermediateFieldType.String), }, typeof(WixFileTuple)); } } namespace WixToolset.Data.Tuples { using System; public enum WixFileTupleFields { File_, AssemblyType, File_AssemblyManifest, File_AssemblyApplication, Directory_, DiskId, Source, ProcessorArchitecture, PatchGroup, Attributes, PatchAttributes, DeltaPatchHeaderSource, } /// /// Every file row has an assembly type. /// public enum FileAssemblyType { /// File is not an assembly. NotAnAssembly, /// File is a Common Language Runtime Assembly. DotNetAssembly, /// File is Win32 SxS assembly. Win32Assembly, } /// /// PatchAttribute values /// [Flags] public enum PatchAttributeType { None = 0, /// Prevents the updating of the file that is in fact changed in the upgraded image relative to the target images. Ignore = 1, /// Set if the entire file should be installed rather than creating a binary patch. IncludeWholeFile = 2, /// Set to indicate that the patch is non-vital. AllowIgnoreOnError = 4, /// Allowed bits. Defined = Ignore | IncludeWholeFile | AllowIgnoreOnError } public class WixFileTuple : IntermediateTuple { public WixFileTuple() : base(TupleDefinitions.WixFile, null, null) { } public WixFileTuple(SourceLineNumber sourceLineNumber, Identifier id = null) : base(TupleDefinitions.WixFile, sourceLineNumber, id) { } public IntermediateField this[WixFileTupleFields index] => this.Fields[(int)index]; public string File_ { get => (string)this.Fields[(int)WixFileTupleFields.File_]?.Value; set => this.Set((int)WixFileTupleFields.File_, value); } public FileAssemblyType AssemblyType { get => (FileAssemblyType)(int)this.Fields[(int)WixFileTupleFields.AssemblyType]?.Value; set => this.Set((int)WixFileTupleFields.AssemblyType, (int)value); } public string File_AssemblyManifest { get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyManifest]?.Value; set => this.Set((int)WixFileTupleFields.File_AssemblyManifest, value); } public string File_AssemblyApplication { get => (string)this.Fields[(int)WixFileTupleFields.File_AssemblyApplication]?.Value; set => this.Set((int)WixFileTupleFields.File_AssemblyApplication, value); } public string Directory_ { get => (string)this.Fields[(int)WixFileTupleFields.Directory_]?.Value; set => this.Set((int)WixFileTupleFields.Directory_, value); } public int DiskId { get => (int)this.Fields[(int)WixFileTupleFields.DiskId]?.Value; set => this.Set((int)WixFileTupleFields.DiskId, value); } public IntermediateFieldPathValue Source { get => this.Fields[(int)WixFileTupleFields.Source].AsPath(); set => this.Set((int)WixFileTupleFields.Source, value); } public string ProcessorArchitecture { get => (string)this.Fields[(int)WixFileTupleFields.ProcessorArchitecture]?.Value; set => this.Set((int)WixFileTupleFields.ProcessorArchitecture, value); } public int PatchGroup { get => (int)this.Fields[(int)WixFileTupleFields.PatchGroup]?.Value; set => this.Set((int)WixFileTupleFields.PatchGroup, value); } public int Attributes { get => (int)this.Fields[(int)WixFileTupleFields.Attributes]?.Value; set => this.Set((int)WixFileTupleFields.Attributes, value); } public PatchAttributeType PatchAttributes { get => (PatchAttributeType)(int)this.Fields[(int)WixFileTupleFields.PatchAttributes]?.Value; set => this.Set((int)WixFileTupleFields.PatchAttributes, (int)value); } public string DeltaPatchHeaderSource { get => (string)this.Fields[(int)WixFileTupleFields.DeltaPatchHeaderSource]?.Value; set => this.Set((int)WixFileTupleFields.DeltaPatchHeaderSource, value); } } }