@joebigelow / wix-1 / commits / c8edfc4d

Expose table definitions from IWindowsInstallerBackendBinderExtension

Rob Mensching committed Jan 23, 2020 at 12:43 UTC c8edfc4d712c2f0abf3ba2d6b3fb2a8f0ad94261
3 files changed +12 -14
src/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs
+7 -12
@@ -3,6 +3,7 @@
3 namespace WixToolset.Extensibility
4 {
5 using System.Collections.Generic;
6 + using System.Linq;
7 using WixToolset.Data;
8 using WixToolset.Data.Tuples;
9 using WixToolset.Data.WindowsInstaller;
@@ -30,9 +31,9 @@ namespace WixToolset.Extensibility
31 protected IWindowsInstallerBackendHelper BackendHelper { get; private set; }
32
33 /// <summary>
33 - /// Optional table definitions to automatically map to tuples.
34 + /// Optional table definitions.
35 /// </summary>
35 - protected virtual TableDefinition[] TableDefinitionsForTuples { get; }
36 + public virtual IEnumerable<TableDefinition> TableDefinitions => Enumerable.Empty<TableDefinition>();
37
38 /// <summary>
39 /// Creates a resolved cabinet result.
@@ -48,21 +49,15 @@ namespace WixToolset.Extensibility
49 this.BackendHelper = context.ServiceProvider.GetService<IWindowsInstallerBackendHelper>();
50 }
51
51 - public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files)
52 - {
53 - return null;
54 - }
52 + public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files) => null;
53
56 - public virtual string ResolveMedia(MediaTuple mediaRow, string mediaLayoutDirectory, string layoutDirectory)
57 - {
58 - return null;
59 - }
54 + public virtual string ResolveMedia(MediaTuple mediaRow, string mediaLayoutDirectory, string layoutDirectory) => null;
55
56 public virtual bool TryAddTupleToOutput(IntermediateTuple tuple, WindowsInstallerData output)
57 {
63 - if (this.TableDefinitionsForTuples != null)
58 + if (this.TableDefinitions.Any())
59 {
65 - return this.BackendHelper.TryAddTupleToOutputMatchingTableDefinitions(tuple, output, this.TableDefinitionsForTuples);
60 + return this.BackendHelper.TryAddTupleToOutputMatchingTableDefinitions(tuple, output, this.TableDefinitions);
61 }
62
63 return false;
src/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs
+2
@@ -13,6 +13,8 @@ namespace WixToolset.Extensibility
13 /// </summary>
14 public interface IWindowsInstallerBackendBinderExtension
15 {
16 + IEnumerable<TableDefinition> TableDefinitions { get; }
17 +
18 /// <summary>
19 /// Called before binding occurs.
20 /// </summary>
src/WixToolset.Extensibility/Services/IWindowsInstallerBackendHelper.cs
+3 -2
@@ -2,6 +2,7 @@
2
3 namespace WixToolset.Extensibility.Services
4 {
5 + using System.Collections.Generic;
6 using WixToolset.Data;
7 using WixToolset.Data.WindowsInstaller;
8
@@ -10,8 +11,8 @@ namespace WixToolset.Extensibility.Services
11 /// </summary>
12 public interface IWindowsInstallerBackendHelper
13 {
13 - bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, TableDefinition[] tableDefinitions);
14 + bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, IEnumerable<TableDefinition> tableDefinitions);
15
15 - bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, TableDefinition[] tableDefinitions, bool columnZeroIsId);
16 + bool TryAddTupleToOutputMatchingTableDefinitions(IntermediateTuple tuple, WindowsInstallerData output, IEnumerable<TableDefinition> tableDefinitions, bool columnZeroIsId);
17 }
18 }