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
}