aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2019-03-01 11:05:02 -0800
committerRob Mensching <rob@robmensching.com>2019-03-01 11:08:36 -0800
commite9fea339e473e6dcc32e34e995429b41cabb6c22 (patch)
treecad7210c4adcfa8f11b460eaadb1178c52d28e32 /src
parent543ce1ac2e203ac0dc8fa3227bb2c40c12e6e17e (diff)
downloadwix-e9fea339e473e6dcc32e34e995429b41cabb6c22.tar.gz
wix-e9fea339e473e6dcc32e34e995429b41cabb6c22.tar.bz2
wix-e9fea339e473e6dcc32e34e995429b41cabb6c22.zip
Expose only abstracts and enums from WixToolset.Extensibility
Diffstat (limited to 'src')
-rw-r--r--src/WixToolset.Extensibility/BaseBinderExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/BaseCompilerExtension.cs7
-rw-r--r--src/WixToolset.Extensibility/BaseResolverExtension.cs9
-rw-r--r--src/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs9
-rw-r--r--src/WixToolset.Extensibility/CompilerConstants.cs2
-rw-r--r--src/WixToolset.Extensibility/Data/BindPath.cs59
-rw-r--r--src/WixToolset.Extensibility/Data/BindResult.cs13
-rw-r--r--src/WixToolset.Extensibility/Data/ComponentKeyPathType.cs (renamed from src/WixToolset.Extensibility/Data/ComponentKeyPath.cs)20
-rw-r--r--src/WixToolset.Extensibility/Data/IBindFileWithPath.cs11
-rw-r--r--src/WixToolset.Extensibility/Data/IBindPath.cs (renamed from src/WixToolset.Extensibility/Data/BindFileWithPath.cs)18
-rw-r--r--src/WixToolset.Extensibility/Data/IBindResult.cs13
-rw-r--r--src/WixToolset.Extensibility/Data/IComponentKeyPath.cs13
-rw-r--r--src/WixToolset.Extensibility/Data/IDecompileResult.cs (renamed from src/WixToolset.Extensibility/Data/DecompileResult.cs)6
-rw-r--r--src/WixToolset.Extensibility/Data/ILibraryContext.cs4
-rw-r--r--src/WixToolset.Extensibility/Data/IResolveContext.cs4
-rw-r--r--src/WixToolset.Extensibility/Data/IResolveFileResult.cs13
-rw-r--r--src/WixToolset.Extensibility/Data/IResolveResult.cs18
-rw-r--r--src/WixToolset.Extensibility/Data/IResolvedCabinet.cs11
-rw-r--r--src/WixToolset.Extensibility/Data/ResolveFileResult.cs13
-rw-r--r--src/WixToolset.Extensibility/Data/ResolveResult.cs18
-rw-r--r--src/WixToolset.Extensibility/Data/ResolvedCabinet.cs20
-rw-r--r--src/WixToolset.Extensibility/DecompilerConstants.cs2
-rw-r--r--src/WixToolset.Extensibility/IBackend.cs4
-rw-r--r--src/WixToolset.Extensibility/IBinderExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/IBurnBackendExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/ICompilerExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/IDecompilerExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/ILibrarianExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/IResolverExtension.cs4
-rw-r--r--src/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs4
-rw-r--r--src/WixToolset.Extensibility/IWindowsInstallerBackendDecompilerExtension.cs2
-rw-r--r--src/WixToolset.Extensibility/Services/IParseHelper.cs2
-rw-r--r--src/WixToolset.Extensibility/Services/IVariableResolution.cs15
-rw-r--r--src/WixToolset.Extensibility/Services/IVariableResolver.cs4
-rw-r--r--src/WixToolset.Extensibility/Services/VariableResolution.cs27
35 files changed, 150 insertions, 207 deletions
diff --git a/src/WixToolset.Extensibility/BaseBinderExtension.cs b/src/WixToolset.Extensibility/BaseBinderExtension.cs
index d533b0cb..3869d1ed 100644
--- a/src/WixToolset.Extensibility/BaseBinderExtension.cs
+++ b/src/WixToolset.Extensibility/BaseBinderExtension.cs
@@ -40,7 +40,7 @@ namespace WixToolset.Extensibility
40 /// <summary> 40 /// <summary>
41 /// Called at the end of bind. 41 /// Called at the end of bind.
42 /// </summary> 42 /// </summary>
43 public virtual void PostBind(BindResult result) 43 public virtual void PostBind(IBindResult result)
44 { 44 {
45 } 45 }
46 } 46 }
diff --git a/src/WixToolset.Extensibility/BaseCompilerExtension.cs b/src/WixToolset.Extensibility/BaseCompilerExtension.cs
index e1584bc3..51fbcd0b 100644
--- a/src/WixToolset.Extensibility/BaseCompilerExtension.cs
+++ b/src/WixToolset.Extensibility/BaseCompilerExtension.cs
@@ -35,6 +35,11 @@ namespace WixToolset.Extensibility
35 public abstract XNamespace Namespace { get; } 35 public abstract XNamespace Namespace { get; }
36 36
37 /// <summary> 37 /// <summary>
38 /// Creates a component key path.
39 /// </summary>
40 protected IComponentKeyPath CreateComponentKeyPath() => this.Context.ServiceProvider.GetService<IComponentKeyPath>();
41
42 /// <summary>
38 /// Called at the beginning of the compilation of a source file. 43 /// Called at the beginning of the compilation of a source file.
39 /// </summary> 44 /// </summary>
40 public virtual void PreCompile(ICompileContext context) 45 public virtual void PreCompile(ICompileContext context)
@@ -75,7 +80,7 @@ namespace WixToolset.Extensibility
75 /// <param name="element">Element to process.</param> 80 /// <param name="element">Element to process.</param>
76 /// <param name="keyPath">Explicit key path.</param> 81 /// <param name="keyPath">Explicit key path.</param>
77 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param> 82 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param>
78 public virtual ComponentKeyPath ParsePossibleKeyPathElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context) 83 public virtual IComponentKeyPath ParsePossibleKeyPathElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context)
79 { 84 {
80 this.ParseElement(intermediate, section, parentElement, element, context); 85 this.ParseElement(intermediate, section, parentElement, element, context);
81 return null; 86 return null;
diff --git a/src/WixToolset.Extensibility/BaseResolverExtension.cs b/src/WixToolset.Extensibility/BaseResolverExtension.cs
index fcd2eed9..bf606d58 100644
--- a/src/WixToolset.Extensibility/BaseResolverExtension.cs
+++ b/src/WixToolset.Extensibility/BaseResolverExtension.cs
@@ -22,6 +22,11 @@ namespace WixToolset.Extensibility
22 protected IMessaging Messaging { get; private set; } 22 protected IMessaging Messaging { get; private set; }
23 23
24 /// <summary> 24 /// <summary>
25 /// Creates a resolve file result.
26 /// </summary>
27 protected IResolveFileResult CreateResolveFileResult() => this.Context.ServiceProvider.GetService<IResolveFileResult>();
28
29 /// <summary>
25 /// Called at the beginning of the resolving variables and files. 30 /// Called at the beginning of the resolving variables and files.
26 /// </summary> 31 /// </summary>
27 public virtual void PreResolve(IResolveContext context) 32 public virtual void PreResolve(IResolveContext context)
@@ -31,7 +36,7 @@ namespace WixToolset.Extensibility
31 this.Messaging = context.ServiceProvider.GetService<IMessaging>(); 36 this.Messaging = context.ServiceProvider.GetService<IMessaging>();
32 } 37 }
33 38
34 public virtual ResolveFileResult ResolveFile(string source, IntermediateTupleDefinition tupleDefinition, SourceLineNumber sourceLineNumbers, BindStage bindStage) 39 public virtual IResolveFileResult ResolveFile(string source, IntermediateTupleDefinition tupleDefinition, SourceLineNumber sourceLineNumbers, BindStage bindStage)
35 { 40 {
36 return null; 41 return null;
37 } 42 }
@@ -39,7 +44,7 @@ namespace WixToolset.Extensibility
39 /// <summary> 44 /// <summary>
40 /// Called at the end of resolve. 45 /// Called at the end of resolve.
41 /// </summary> 46 /// </summary>
42 public virtual void PostResolve(ResolveResult result) 47 public virtual void PostResolve(IResolveResult result)
43 { 48 {
44 } 49 }
45 } 50 }
diff --git a/src/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs b/src/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs
index c5ee9d1b..f02875cd 100644
--- a/src/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs
+++ b/src/WixToolset.Extensibility/BaseWindowsInstallerBackendBinderExtension.cs
@@ -34,6 +34,11 @@ namespace WixToolset.Extensibility
34 /// </summary> 34 /// </summary>
35 protected virtual TableDefinition[] TableDefinitionsForTuples { get; } 35 protected virtual TableDefinition[] TableDefinitionsForTuples { get; }
36 36
37 /// <summary>
38 /// Creates a resolved cabinet result.
39 /// </summary>
40 protected IResolvedCabinet CreateResolvedCabinet() => this.Context.ServiceProvider.GetService<IResolvedCabinet>();
41
37 public virtual void PreBackendBind(IBindContext context) 42 public virtual void PreBackendBind(IBindContext context)
38 { 43 {
39 this.Context = context; 44 this.Context = context;
@@ -43,7 +48,7 @@ namespace WixToolset.Extensibility
43 this.BackendHelper = context.ServiceProvider.GetService<IWindowsInstallerBackendHelper>(); 48 this.BackendHelper = context.ServiceProvider.GetService<IWindowsInstallerBackendHelper>();
44 } 49 }
45 50
46 public virtual ResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<BindFileWithPath> files) 51 public virtual IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files)
47 { 52 {
48 return null; 53 return null;
49 } 54 }
@@ -63,7 +68,7 @@ namespace WixToolset.Extensibility
63 return false; 68 return false;
64 } 69 }
65 70
66 public virtual void PostBackendBind(BindResult result, Pdb pdb) 71 public virtual void PostBackendBind(IBindResult result, Pdb pdb)
67 { 72 {
68 } 73 }
69 } 74 }
diff --git a/src/WixToolset.Extensibility/CompilerConstants.cs b/src/WixToolset.Extensibility/CompilerConstants.cs
index 9f666b43..f26456fb 100644
--- a/src/WixToolset.Extensibility/CompilerConstants.cs
+++ b/src/WixToolset.Extensibility/CompilerConstants.cs
@@ -7,7 +7,7 @@ namespace WixToolset.Extensibility
7 /// <summary> 7 /// <summary>
8 /// Constants used by compiler. 8 /// Constants used by compiler.
9 /// </summary> 9 /// </summary>
10 public class CompilerConstants 10 public static class CompilerConstants
11 { 11 {
12 public const int IntegerNotSet = int.MinValue; 12 public const int IntegerNotSet = int.MinValue;
13 public const int IllegalInteger = int.MinValue + 1; 13 public const int IllegalInteger = int.MinValue + 1;
diff --git a/src/WixToolset.Extensibility/Data/BindPath.cs b/src/WixToolset.Extensibility/Data/BindPath.cs
deleted file mode 100644
index 3b0b73bb..00000000
--- a/src/WixToolset.Extensibility/Data/BindPath.cs
+++ /dev/null
@@ -1,59 +0,0 @@
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;
6
7 /// <summary>
8 /// Bind path representation.
9 /// </summary>
10 public class BindPath
11 {
12 /// <summary>
13 /// Creates an unnamed bind path.
14 /// </summary>
15 /// <param name="path">Path for the bind path.</param>
16 public BindPath(string path) : this(String.Empty, path, BindStage.Normal)
17 {
18 }
19
20 /// <summary>
21 /// Creates a named bind path.
22 /// </summary>
23 /// <param name="name">Name of the bind path.</param>
24 /// <param name="path">Path for the bind path.</param>
25 /// <param name="stage">Stage for the bind path.</param>
26 public BindPath(string name, string path, BindStage stage = BindStage.Normal)
27 {
28 this.Name = name;
29 this.Path = path;
30 this.Stage = stage;
31 }
32
33 /// <summary>
34 /// Name of the bind path or String.Empty if the path is unnamed.
35 /// </summary>
36 public string Name { get; set; }
37
38 /// <summary>
39 /// Path for the bind path.
40 /// </summary>
41 public string Path { get; set; }
42
43 /// <summary>
44 /// Stage for the bind path.
45 /// </summary>
46 public BindStage Stage { get; set; }
47
48 /// <summary>
49 /// Parses a normal bind path from its string representation
50 /// </summary>
51 /// <param name="bindPath">String representation of bind path that looks like: [name=]path</param>
52 /// <returns>Parsed normal bind path.</returns>
53 public static BindPath Parse(string bindPath)
54 {
55 string[] namedPath = bindPath.Split(new char[] { '=' }, 2);
56 return (1 == namedPath.Length) ? new BindPath(namedPath[0]) : new BindPath(namedPath[0], namedPath[1]);
57 }
58 }
59}
diff --git a/src/WixToolset.Extensibility/Data/BindResult.cs b/src/WixToolset.Extensibility/Data/BindResult.cs
deleted file mode 100644
index e467d269..00000000
--- a/src/WixToolset.Extensibility/Data/BindResult.cs
+++ /dev/null
@@ -1,13 +0,0 @@
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
7 public class BindResult
8 {
9 public IEnumerable<IFileTransfer> FileTransfers { get; set; }
10
11 public IEnumerable<ITrackedFile> TrackedFiles { get; set; }
12 }
13}
diff --git a/src/WixToolset.Extensibility/Data/ComponentKeyPath.cs b/src/WixToolset.Extensibility/Data/ComponentKeyPathType.cs
index 112f562c..58bbb0cf 100644
--- a/src/WixToolset.Extensibility/Data/ComponentKeyPath.cs
+++ b/src/WixToolset.Extensibility/Data/ComponentKeyPathType.cs
@@ -1,4 +1,4 @@
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. 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 2
3namespace WixToolset.Extensibility.Data 3namespace WixToolset.Extensibility.Data
4{ 4{
@@ -34,22 +34,4 @@ namespace WixToolset.Extensibility.Data
34 /// </summary> 34 /// </summary>
35 RegistryFormatted 35 RegistryFormatted
36 } 36 }
37
38 public class ComponentKeyPath
39 {
40 /// <summary>
41 /// Identifier of the resource to be a key path.
42 /// </summary>
43 public string Id { get; set; }
44
45 /// <summary>
46 /// Indicates whether the key path was explicitly set for this resource.
47 /// </summary>
48 public bool Explicit { get; set; }
49
50 /// <summary>
51 /// Type of resource to be the key path.
52 /// </summary>
53 public ComponentKeyPathType Type { get; set; }
54 }
55} 37}
diff --git a/src/WixToolset.Extensibility/Data/IBindFileWithPath.cs b/src/WixToolset.Extensibility/Data/IBindFileWithPath.cs
new file mode 100644
index 00000000..ec78a1a0
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IBindFileWithPath.cs
@@ -0,0 +1,11 @@
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 public interface IBindFileWithPath
6 {
7 string Id { get; set; }
8
9 string Path { get; set; }
10 }
11}
diff --git a/src/WixToolset.Extensibility/Data/BindFileWithPath.cs b/src/WixToolset.Extensibility/Data/IBindPath.cs
index d65ae1ba..5784a0e0 100644
--- a/src/WixToolset.Extensibility/Data/BindFileWithPath.cs
+++ b/src/WixToolset.Extensibility/Data/IBindPath.cs
@@ -2,19 +2,21 @@
2 2
3namespace WixToolset.Extensibility.Data 3namespace WixToolset.Extensibility.Data
4{ 4{
5 /// <summary> 5 public interface IBindPath
6 /// Bind file with its path.
7 /// </summary>
8 public class BindFileWithPath
9 { 6 {
10 /// <summary> 7 /// <summary>
11 /// Gets or sets the identifier of the file with this path. 8 /// Name of the bind path or String.Empty if the path is unnamed.
12 /// </summary> 9 /// </summary>
13 public string Id { get; set; } 10 string Name { get; set; }
14 11
15 /// <summary> 12 /// <summary>
16 /// Gets or sets the file path. 13 /// Path for the bind path.
17 /// </summary> 14 /// </summary>
18 public string Path { get; set; } 15 string Path { get; set; }
16
17 /// <summary>
18 /// Stage for the bind path.
19 /// </summary>
20 BindStage Stage { get; set; }
19 } 21 }
20} 22}
diff --git a/src/WixToolset.Extensibility/Data/IBindResult.cs b/src/WixToolset.Extensibility/Data/IBindResult.cs
new file mode 100644
index 00000000..d35e7628
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IBindResult.cs
@@ -0,0 +1,13 @@
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
7 public interface IBindResult
8 {
9 IEnumerable<IFileTransfer> FileTransfers { get; set; }
10
11 IEnumerable<ITrackedFile> TrackedFiles { get; set; }
12 }
13}
diff --git a/src/WixToolset.Extensibility/Data/IComponentKeyPath.cs b/src/WixToolset.Extensibility/Data/IComponentKeyPath.cs
new file mode 100644
index 00000000..ba660b45
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IComponentKeyPath.cs
@@ -0,0 +1,13 @@
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 public interface IComponentKeyPath
6 {
7 bool Explicit { get; set; }
8
9 string Id { get; set; }
10
11 ComponentKeyPathType Type { get; set; }
12 }
13}
diff --git a/src/WixToolset.Extensibility/Data/DecompileResult.cs b/src/WixToolset.Extensibility/Data/IDecompileResult.cs
index 27706b2c..ea993cb2 100644
--- a/src/WixToolset.Extensibility/Data/DecompileResult.cs
+++ b/src/WixToolset.Extensibility/Data/IDecompileResult.cs
@@ -5,10 +5,10 @@ namespace WixToolset.Extensibility.Data
5 using System.Collections.Generic; 5 using System.Collections.Generic;
6 using System.Xml.Linq; 6 using System.Xml.Linq;
7 7
8 public class DecompileResult 8 public interface IDecompileResult
9 { 9 {
10 public XDocument Document { get; set; } 10 XDocument Document { get; set; }
11 11
12 public IEnumerable<string> ExtractedFilePaths { get; set; } 12 IEnumerable<string> ExtractedFilePaths { get; set; }
13 } 13 }
14} 14}
diff --git a/src/WixToolset.Extensibility/Data/ILibraryContext.cs b/src/WixToolset.Extensibility/Data/ILibraryContext.cs
index 08b4ed26..9b65ebfd 100644
--- a/src/WixToolset.Extensibility/Data/ILibraryContext.cs
+++ b/src/WixToolset.Extensibility/Data/ILibraryContext.cs
@@ -1,4 +1,4 @@
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. 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 2
3namespace WixToolset.Extensibility.Data 3namespace WixToolset.Extensibility.Data
4{ 4{
@@ -12,7 +12,7 @@ namespace WixToolset.Extensibility.Data
12 12
13 bool BindFiles { get; set; } 13 bool BindFiles { get; set; }
14 14
15 IEnumerable<BindPath> BindPaths { get; set; } 15 IEnumerable<IBindPath> BindPaths { get; set; }
16 16
17 IEnumerable<ILibrarianExtension> Extensions { get; set; } 17 IEnumerable<ILibrarianExtension> Extensions { get; set; }
18 18
diff --git a/src/WixToolset.Extensibility/Data/IResolveContext.cs b/src/WixToolset.Extensibility/Data/IResolveContext.cs
index 0e12a534..68a50268 100644
--- a/src/WixToolset.Extensibility/Data/IResolveContext.cs
+++ b/src/WixToolset.Extensibility/Data/IResolveContext.cs
@@ -1,4 +1,4 @@
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. 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 2
3namespace WixToolset.Extensibility.Data 3namespace WixToolset.Extensibility.Data
4{ 4{
@@ -11,7 +11,7 @@ namespace WixToolset.Extensibility.Data
11 { 11 {
12 IServiceProvider ServiceProvider { get; } 12 IServiceProvider ServiceProvider { get; }
13 13
14 IEnumerable<BindPath> BindPaths { get; set; } 14 IEnumerable<IBindPath> BindPaths { get; set; }
15 15
16 IEnumerable<IResolverExtension> Extensions { get; set; } 16 IEnumerable<IResolverExtension> Extensions { get; set; }
17 17
diff --git a/src/WixToolset.Extensibility/Data/IResolveFileResult.cs b/src/WixToolset.Extensibility/Data/IResolveFileResult.cs
new file mode 100644
index 00000000..bf0af72e
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IResolveFileResult.cs
@@ -0,0 +1,13 @@
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
7 public interface IResolveFileResult
8 {
9 IEnumerable<string> CheckedPaths { get; set; }
10
11 string Path { get; set; }
12 }
13}
diff --git a/src/WixToolset.Extensibility/Data/IResolveResult.cs b/src/WixToolset.Extensibility/Data/IResolveResult.cs
new file mode 100644
index 00000000..87b9c573
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IResolveResult.cs
@@ -0,0 +1,18 @@
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
8 public interface IResolveResult
9 {
10 int Codepage { get; set; }
11
12 IEnumerable<IDelayedField> DelayedFields { get; set; }
13
14 IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; set; }
15
16 Intermediate IntermediateRepresentation { get; set; }
17 }
18}
diff --git a/src/WixToolset.Extensibility/Data/IResolvedCabinet.cs b/src/WixToolset.Extensibility/Data/IResolvedCabinet.cs
new file mode 100644
index 00000000..c94ff8db
--- /dev/null
+++ b/src/WixToolset.Extensibility/Data/IResolvedCabinet.cs
@@ -0,0 +1,11 @@
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 public interface IResolvedCabinet
6 {
7 CabinetBuildOption BuildOption { get; set; }
8
9 string Path { get; set; }
10 }
11}
diff --git a/src/WixToolset.Extensibility/Data/ResolveFileResult.cs b/src/WixToolset.Extensibility/Data/ResolveFileResult.cs
deleted file mode 100644
index 5ac7c426..00000000
--- a/src/WixToolset.Extensibility/Data/ResolveFileResult.cs
+++ /dev/null
@@ -1,13 +0,0 @@
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
7 public class ResolveFileResult
8 {
9 public string Path { get; set; }
10
11 public IEnumerable<string> CheckedPaths { get; set; }
12 }
13} \ No newline at end of file
diff --git a/src/WixToolset.Extensibility/Data/ResolveResult.cs b/src/WixToolset.Extensibility/Data/ResolveResult.cs
deleted file mode 100644
index cdc9cfcc..00000000
--- a/src/WixToolset.Extensibility/Data/ResolveResult.cs
+++ /dev/null
@@ -1,18 +0,0 @@
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
8 public class ResolveResult
9 {
10 public int Codepage { get; set; }
11
12 public IEnumerable<IDelayedField> DelayedFields { get; set; }
13
14 public IEnumerable<IExpectedExtractFile> ExpectedEmbeddedFiles { get; set; }
15
16 public Intermediate IntermediateRepresentation { get; set; }
17 }
18} \ No newline at end of file
diff --git a/src/WixToolset.Extensibility/Data/ResolvedCabinet.cs b/src/WixToolset.Extensibility/Data/ResolvedCabinet.cs
deleted file mode 100644
index 047b7448..00000000
--- a/src/WixToolset.Extensibility/Data/ResolvedCabinet.cs
+++ /dev/null
@@ -1,20 +0,0 @@
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 /// <summary>
6 /// Data returned from build file manager ResolveCabinet callback.
7 /// </summary>
8 public class ResolvedCabinet
9 {
10 /// <summary>
11 /// Gets or sets the build option for the resolved cabinet.
12 /// </summary>
13 public CabinetBuildOption BuildOption { get; set; }
14
15 /// <summary>
16 /// Gets or sets the path for the resolved cabinet.
17 /// </summary>
18 public string Path { get; set; }
19 }
20}
diff --git a/src/WixToolset.Extensibility/DecompilerConstants.cs b/src/WixToolset.Extensibility/DecompilerConstants.cs
index 8cd6b19c..83393da9 100644
--- a/src/WixToolset.Extensibility/DecompilerConstants.cs
+++ b/src/WixToolset.Extensibility/DecompilerConstants.cs
@@ -5,7 +5,7 @@ namespace WixToolset.Extensibility
5 /// <summary> 5 /// <summary>
6 /// Constants used by decompiler. 6 /// Constants used by decompiler.
7 /// </summary> 7 /// </summary>
8 public class DecompilerConstants 8 public static class DecompilerConstants
9 { 9 {
10 public const char PrimaryKeyDelimiter = '/'; 10 public const char PrimaryKeyDelimiter = '/';
11 public const string PrimaryKeyDelimiterString = "/"; 11 public const string PrimaryKeyDelimiterString = "/";
diff --git a/src/WixToolset.Extensibility/IBackend.cs b/src/WixToolset.Extensibility/IBackend.cs
index df693561..12a7e834 100644
--- a/src/WixToolset.Extensibility/IBackend.cs
+++ b/src/WixToolset.Extensibility/IBackend.cs
@@ -7,9 +7,9 @@ namespace WixToolset.Extensibility
7 7
8 public interface IBackend 8 public interface IBackend
9 { 9 {
10 BindResult Bind(IBindContext context); 10 IBindResult Bind(IBindContext context);
11 11
12 DecompileResult Decompile(IDecompileContext context); 12 IDecompileResult Decompile(IDecompileContext context);
13 13
14 Intermediate Unbind(IUnbindContext context); 14 Intermediate Unbind(IUnbindContext context);
15 15
diff --git a/src/WixToolset.Extensibility/IBinderExtension.cs b/src/WixToolset.Extensibility/IBinderExtension.cs
index 2656e106..dba09845 100644
--- a/src/WixToolset.Extensibility/IBinderExtension.cs
+++ b/src/WixToolset.Extensibility/IBinderExtension.cs
@@ -17,6 +17,6 @@ namespace WixToolset.Extensibility
17 /// <summary> 17 /// <summary>
18 /// Called after all binding occurs. 18 /// Called after all binding occurs.
19 /// </summary> 19 /// </summary>
20 void PostBind(BindResult result); 20 void PostBind(IBindResult result);
21 } 21 }
22} 22}
diff --git a/src/WixToolset.Extensibility/IBurnBackendExtension.cs b/src/WixToolset.Extensibility/IBurnBackendExtension.cs
index bcd0d5ee..acce700a 100644
--- a/src/WixToolset.Extensibility/IBurnBackendExtension.cs
+++ b/src/WixToolset.Extensibility/IBurnBackendExtension.cs
@@ -20,6 +20,6 @@ namespace WixToolset.Extensibility
20 /// <summary> 20 /// <summary>
21 /// Called after all output changes occur and right before the output is bound into its final format. 21 /// Called after all output changes occur and right before the output is bound into its final format.
22 /// </summary> 22 /// </summary>
23 void PostBackendBind(BindResult result); 23 void PostBackendBind(IBindResult result);
24 } 24 }
25} 25}
diff --git a/src/WixToolset.Extensibility/ICompilerExtension.cs b/src/WixToolset.Extensibility/ICompilerExtension.cs
index b2dd6d04..f2fd8193 100644
--- a/src/WixToolset.Extensibility/ICompilerExtension.cs
+++ b/src/WixToolset.Extensibility/ICompilerExtension.cs
@@ -45,7 +45,7 @@ namespace WixToolset.Extensibility
45 /// <param name="parentElement">Parent element of element to process.</param> 45 /// <param name="parentElement">Parent element of element to process.</param>
46 /// <param name="element">Element to process.</param> 46 /// <param name="element">Element to process.</param>
47 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param> 47 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param>
48 ComponentKeyPath ParsePossibleKeyPathElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context); 48 IComponentKeyPath ParsePossibleKeyPathElement(Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context);
49 49
50 /// <summary> 50 /// <summary>
51 /// Called at the end of the compilation of a source file. 51 /// Called at the end of the compilation of a source file.
diff --git a/src/WixToolset.Extensibility/IDecompilerExtension.cs b/src/WixToolset.Extensibility/IDecompilerExtension.cs
index 9ea4290b..24ef3bff 100644
--- a/src/WixToolset.Extensibility/IDecompilerExtension.cs
+++ b/src/WixToolset.Extensibility/IDecompilerExtension.cs
@@ -17,6 +17,6 @@ namespace WixToolset.Extensibility
17 /// <summary> 17 /// <summary>
18 /// Called after all decompiling occurs. 18 /// Called after all decompiling occurs.
19 /// </summary> 19 /// </summary>
20 void PostDecompile(DecompileResult result); 20 void PostDecompile(IDecompileResult result);
21 } 21 }
22} 22}
diff --git a/src/WixToolset.Extensibility/ILibrarianExtension.cs b/src/WixToolset.Extensibility/ILibrarianExtension.cs
index b9f707e1..719ffa34 100644
--- a/src/WixToolset.Extensibility/ILibrarianExtension.cs
+++ b/src/WixToolset.Extensibility/ILibrarianExtension.cs
@@ -9,7 +9,7 @@ namespace WixToolset.Extensibility
9 { 9 {
10 void PreCombine(ILibraryContext context); 10 void PreCombine(ILibraryContext context);
11 11
12 ResolveFileResult ResolveFile(SourceLineNumber sourceLineNumber, IntermediateTupleDefinition tupleDefinition, string path); 12 IResolveFileResult ResolveFile(SourceLineNumber sourceLineNumber, IntermediateTupleDefinition tupleDefinition, string path);
13 13
14 void PostCombine(Intermediate library); 14 void PostCombine(Intermediate library);
15 } 15 }
diff --git a/src/WixToolset.Extensibility/IResolverExtension.cs b/src/WixToolset.Extensibility/IResolverExtension.cs
index 36ada8f0..c414b19e 100644
--- a/src/WixToolset.Extensibility/IResolverExtension.cs
+++ b/src/WixToolset.Extensibility/IResolverExtension.cs
@@ -15,11 +15,11 @@ namespace WixToolset.Extensibility
15 /// </summary> 15 /// </summary>
16 void PreResolve(IResolveContext context); 16 void PreResolve(IResolveContext context);
17 17
18 ResolveFileResult ResolveFile(string source, IntermediateTupleDefinition tupleDefinition, SourceLineNumber sourceLineNumbers, BindStage bindStage); 18 IResolveFileResult ResolveFile(string source, IntermediateTupleDefinition tupleDefinition, SourceLineNumber sourceLineNumbers, BindStage bindStage);
19 19
20 /// <summary> 20 /// <summary>
21 /// Called after all resolving occurs. 21 /// Called after all resolving occurs.
22 /// </summary> 22 /// </summary>
23 void PostResolve(ResolveResult result); 23 void PostResolve(IResolveResult result);
24 } 24 }
25} 25}
diff --git a/src/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs b/src/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs
index 5f34d3e1..f3b97845 100644
--- a/src/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs
+++ b/src/WixToolset.Extensibility/IWindowsInstallerBackendBinderExtension.cs
@@ -18,7 +18,7 @@ namespace WixToolset.Extensibility
18 /// </summary> 18 /// </summary>
19 void PreBackendBind(IBindContext context); 19 void PreBackendBind(IBindContext context);
20 20
21 ResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<BindFileWithPath> files); 21 IResolvedCabinet ResolveCabinet(string cabinetPath, IEnumerable<IBindFileWithPath> files);
22 22
23 string ResolveMedia(MediaTuple mediaRow, string mediaLayoutDirectory, string layoutDirectory); 23 string ResolveMedia(MediaTuple mediaRow, string mediaLayoutDirectory, string layoutDirectory);
24 24
@@ -27,6 +27,6 @@ namespace WixToolset.Extensibility
27 /// <summary> 27 /// <summary>
28 /// Called after all output changes occur and right before the output is bound into its final format. 28 /// Called after all output changes occur and right before the output is bound into its final format.
29 /// </summary> 29 /// </summary>
30 void PostBackendBind(BindResult result, Pdb wixpdb); 30 void PostBackendBind(IBindResult result, Pdb wixpdb);
31 } 31 }
32} 32}
diff --git a/src/WixToolset.Extensibility/IWindowsInstallerBackendDecompilerExtension.cs b/src/WixToolset.Extensibility/IWindowsInstallerBackendDecompilerExtension.cs
index 05899c1f..f858610b 100644
--- a/src/WixToolset.Extensibility/IWindowsInstallerBackendDecompilerExtension.cs
+++ b/src/WixToolset.Extensibility/IWindowsInstallerBackendDecompilerExtension.cs
@@ -38,6 +38,6 @@ namespace WixToolset.Extensibility
38 /// <summary> 38 /// <summary>
39 /// Called after all output changes occur and right before the output is bound into its final format. 39 /// Called after all output changes occur and right before the output is bound into its final format.
40 /// </summary> 40 /// </summary>
41 void PostBackendDecompile(DecompileResult result); 41 void PostBackendDecompile(IDecompileResult result);
42 } 42 }
43} 43}
diff --git a/src/WixToolset.Extensibility/Services/IParseHelper.cs b/src/WixToolset.Extensibility/Services/IParseHelper.cs
index 49218d4f..36caf192 100644
--- a/src/WixToolset.Extensibility/Services/IParseHelper.cs
+++ b/src/WixToolset.Extensibility/Services/IParseHelper.cs
@@ -326,7 +326,7 @@ namespace WixToolset.Extensibility.Services
326 /// <param name="parentElement">Element containing element to be parsed.</param> 326 /// <param name="parentElement">Element containing element to be parsed.</param>
327 /// <param name="element">Element to be parsed.</param> 327 /// <param name="element">Element to be parsed.</param>
328 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param> 328 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param>
329 ComponentKeyPath ParsePossibleKeyPathExtensionElement(IEnumerable<ICompilerExtension> extensions, Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context); 329 IComponentKeyPath ParsePossibleKeyPathExtensionElement(IEnumerable<ICompilerExtension> extensions, Intermediate intermediate, IntermediateSection section, XElement parentElement, XElement element, IDictionary<string, string> context);
330 330
331 /// <summary> 331 /// <summary>
332 /// Process all children of the element looking for extensions and erroring on the unexpected. 332 /// Process all children of the element looking for extensions and erroring on the unexpected.
diff --git a/src/WixToolset.Extensibility/Services/IVariableResolution.cs b/src/WixToolset.Extensibility/Services/IVariableResolution.cs
new file mode 100644
index 00000000..efed0b1f
--- /dev/null
+++ b/src/WixToolset.Extensibility/Services/IVariableResolution.cs
@@ -0,0 +1,15 @@
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.Services
4{
5 public interface IVariableResolution
6 {
7 bool DelayedResolve { get; set; }
8
9 bool IsDefault { get; set; }
10
11 bool UpdatedValue { get; set; }
12
13 string Value { get; set; }
14 }
15}
diff --git a/src/WixToolset.Extensibility/Services/IVariableResolver.cs b/src/WixToolset.Extensibility/Services/IVariableResolver.cs
index ce11aa81..794d6478 100644
--- a/src/WixToolset.Extensibility/Services/IVariableResolver.cs
+++ b/src/WixToolset.Extensibility/Services/IVariableResolver.cs
@@ -1,4 +1,4 @@
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. 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 2
3namespace WixToolset.Extensibility.Services 3namespace WixToolset.Extensibility.Services
4{ 4{
@@ -33,7 +33,7 @@ namespace WixToolset.Extensibility.Services
33 /// <param name="value">The value to resolve.</param> 33 /// <param name="value">The value to resolve.</param>
34 /// <param name="localizationOnly">true to only resolve localization variables; false otherwise.</param> 34 /// <param name="localizationOnly">true to only resolve localization variables; false otherwise.</param>
35 /// <returns>The resolved result.</returns> 35 /// <returns>The resolved result.</returns>
36 VariableResolution ResolveVariables(SourceLineNumber sourceLineNumbers, string value, bool localizationOnly); 36 IVariableResolution ResolveVariables(SourceLineNumber sourceLineNumbers, string value, bool localizationOnly);
37 37
38 /// <summary> 38 /// <summary>
39 /// Try to find localization information for dialog and (optional) control. 39 /// Try to find localization information for dialog and (optional) control.
diff --git a/src/WixToolset.Extensibility/Services/VariableResolution.cs b/src/WixToolset.Extensibility/Services/VariableResolution.cs
deleted file mode 100644
index 2974e84f..00000000
--- a/src/WixToolset.Extensibility/Services/VariableResolution.cs
+++ /dev/null
@@ -1,27 +0,0 @@
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.Services
4{
5 public class VariableResolution
6 {
7 /// <summary>
8 /// Indicates whether the variable should be delay resolved.
9 /// </summary>
10 public bool DelayedResolve { get; set; }
11
12 /// <summary>
13 /// Indicates whether the value is the default value of the variable.
14 /// </summary>
15 public bool IsDefault { get; set; }
16
17 /// <summary>
18 /// Indicates whether the value changed.
19 /// </summary>
20 public bool UpdatedValue { get; set; }
21
22 /// <summary>
23 /// Resolved value.
24 /// </summary>
25 public string Value { get; set; }
26 }
27} \ No newline at end of file