aboutsummaryrefslogtreecommitdiff
path: root/src/WixToolset.Extensibility/ICompilerExtension.cs
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2017-08-20 14:22:07 -0700
committerRob Mensching <rob@firegiant.com>2017-08-20 14:25:49 -0700
commit3e1c5e3fa80a2498f7d6aac5c0f8ca9e3bd7c66c (patch)
treebbe907a4c5ebf7aa5e3f02141f6e3abd31cb7b5c /src/WixToolset.Extensibility/ICompilerExtension.cs
parent6dee3b45cb679786bd49a5db8fde9006d283b3e2 (diff)
downloadwix-3e1c5e3fa80a2498f7d6aac5c0f8ca9e3bd7c66c.tar.gz
wix-3e1c5e3fa80a2498f7d6aac5c0f8ca9e3bd7c66c.tar.bz2
wix-3e1c5e3fa80a2498f7d6aac5c0f8ca9e3bd7c66c.zip
Move to .NET Core 2.0
Diffstat (limited to 'src/WixToolset.Extensibility/ICompilerExtension.cs')
-rw-r--r--src/WixToolset.Extensibility/ICompilerExtension.cs59
1 files changed, 59 insertions, 0 deletions
diff --git a/src/WixToolset.Extensibility/ICompilerExtension.cs b/src/WixToolset.Extensibility/ICompilerExtension.cs
new file mode 100644
index 00000000..edd7aa15
--- /dev/null
+++ b/src/WixToolset.Extensibility/ICompilerExtension.cs
@@ -0,0 +1,59 @@
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
4{
5 using System.Collections.Generic;
6 using System.Xml.Linq;
7
8 /// <summary>
9 /// Interface all compiler extensions implement.
10 /// </summary>
11 public interface ICompilerExtension
12 {
13 /// <summary>
14 /// Gets or sets the compiler core for the extension.
15 /// </summary>
16 /// <value>Compiler core for the extension.</value>
17 ICompilerCore Core { get; set; }
18
19 /// <summary>
20 /// Gets the schema namespace for this extension.
21 /// </summary>
22 /// <value>Schema namespace supported by this extension.</value>
23 XNamespace Namespace { get; }
24
25 /// <summary>
26 /// Called at the beginning of the compilation of a source file.
27 /// </summary>
28 void Initialize();
29
30 /// <summary>
31 /// Processes an attribute for the Compiler.
32 /// </summary>
33 /// <param name="parentElement">Parent element of attribute.</param>
34 /// <param name="attribute">Attribute to process.</param>
35 /// <param name="context">Extra information about the context in which this element is being parsed.</param>
36 void ParseAttribute(XElement parentElement, XAttribute attribute, IDictionary<string, string> context);
37
38 /// <summary>
39 /// Processes an element for the Compiler.
40 /// </summary>
41 /// <param name="parentElement">Parent element of element to process.</param>
42 /// <param name="element">Element to process.</param>
43 /// <param name="context">Extra information about the context in which this element is being parsed.</param>
44 void ParseElement(XElement parentElement, XElement element, IDictionary<string, string> context);
45
46 /// <summary>
47 /// Processes an element for the Compiler, with the ability to supply a component keypath.
48 /// </summary>
49 /// <param name="parentElement">Parent element of element to process.</param>
50 /// <param name="element">Element to process.</param>
51 /// <param name="contextValues">Extra information about the context in which this element is being parsed.</param>
52 ComponentKeyPath ParsePossibleKeyPathElement(XElement parentElement, XElement element, IDictionary<string, string> context);
53
54 /// <summary>
55 /// Called at the end of the compilation of a source file.
56 /// </summary>
57 void Finish();
58 }
59}