diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-04-11 21:49:09 +1000 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-04-12 12:46:21 +1000 |
| commit | 6d8b6f79b44b6a41a630aa3aad5a3c7f16701798 (patch) | |
| tree | b82ede9934cb7777a19e74a912c68481e76c21cd /src/WixToolset.Core/CompilerCore.cs | |
| parent | df69d4172d3117d8b66ba51fa5ae7f4be538700d (diff) | |
| download | wix-6d8b6f79b44b6a41a630aa3aad5a3c7f16701798.tar.gz wix-6d8b6f79b44b6a41a630aa3aad5a3c7f16701798.tar.bz2 wix-6d8b6f79b44b6a41a630aa3aad5a3c7f16701798.zip | |
General cleanup.
Try not to send strings to specify the tuple or table.
Try to avoid using the Set method on tuples.
Always create new tuples and add them to the section in the same line.
Diffstat (limited to 'src/WixToolset.Core/CompilerCore.cs')
| -rw-r--r-- | src/WixToolset.Core/CompilerCore.cs | 62 |
1 files changed, 36 insertions, 26 deletions
diff --git a/src/WixToolset.Core/CompilerCore.cs b/src/WixToolset.Core/CompilerCore.cs index 51828975..93f9276c 100644 --- a/src/WixToolset.Core/CompilerCore.cs +++ b/src/WixToolset.Core/CompilerCore.cs | |||
| @@ -14,6 +14,7 @@ namespace WixToolset.Core | |||
| 14 | using System.Xml.Linq; | 14 | using System.Xml.Linq; |
| 15 | using WixToolset.Data; | 15 | using WixToolset.Data; |
| 16 | using WixToolset.Data.Tuples; | 16 | using WixToolset.Data.Tuples; |
| 17 | using WixToolset.Data.WindowsInstaller; | ||
| 17 | using WixToolset.Extensibility; | 18 | using WixToolset.Extensibility; |
| 18 | using WixToolset.Extensibility.Data; | 19 | using WixToolset.Extensibility.Data; |
| 19 | using WixToolset.Extensibility.Services; | 20 | using WixToolset.Extensibility.Services; |
| @@ -166,9 +167,10 @@ namespace WixToolset.Core | |||
| 166 | /// Add a tuple to the active section. | 167 | /// Add a tuple to the active section. |
| 167 | /// </summary> | 168 | /// </summary> |
| 168 | /// <param name="tuple">Tuple to add.</param> | 169 | /// <param name="tuple">Tuple to add.</param> |
| 169 | public void AddTuple(IntermediateTuple tuple) | 170 | public T AddTuple<T>(T tuple) |
| 171 | where T : IntermediateTuple | ||
| 170 | { | 172 | { |
| 171 | this.ActiveSection.Tuples.Add(tuple); | 173 | return this.ActiveSection.AddTuple(tuple); |
| 172 | } | 174 | } |
| 173 | 175 | ||
| 174 | /// <summary> | 176 | /// <summary> |
| @@ -351,23 +353,6 @@ namespace WixToolset.Core | |||
| 351 | } | 353 | } |
| 352 | 354 | ||
| 353 | /// <summary> | 355 | /// <summary> |
| 354 | /// Creates a tuple in the active section. | ||
| 355 | /// </summary> | ||
| 356 | /// <param name="sourceLineNumbers">Source and line number of current row.</param> | ||
| 357 | /// <param name="tupleType">Type of tuple to create.</param> | ||
| 358 | /// <param name="identifier">Optional identifier.</param> | ||
| 359 | /// <returns>New tuple.</returns> | ||
| 360 | public IntermediateTuple CreateTuple(SourceLineNumber sourceLineNumbers, TupleDefinitionType tupleType, Identifier identifier = null) | ||
| 361 | { | ||
| 362 | var tupleDefinition = TupleDefinitions.ByType(tupleType); | ||
| 363 | var tuple = tupleDefinition.CreateTuple(sourceLineNumbers, identifier); | ||
| 364 | |||
| 365 | this.ActiveSection.Tuples.Add(tuple); | ||
| 366 | |||
| 367 | return tuple; | ||
| 368 | } | ||
| 369 | |||
| 370 | /// <summary> | ||
| 371 | /// Creates directories using the inline directory syntax. | 356 | /// Creates directories using the inline directory syntax. |
| 372 | /// </summary> | 357 | /// </summary> |
| 373 | /// <param name="sourceLineNumbers">Source line information.</param> | 358 | /// <param name="sourceLineNumbers">Source line information.</param> |
| @@ -394,27 +379,38 @@ namespace WixToolset.Core | |||
| 394 | } | 379 | } |
| 395 | 380 | ||
| 396 | /// <summary> | 381 | /// <summary> |
| 397 | /// Create a WixSimpleReference row in the active section. | 382 | /// Create a WixSimpleReferenceTuple in the active section. |
| 398 | /// </summary> | 383 | /// </summary> |
| 399 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | 384 | /// <param name="sourceLineNumbers">Source line information for the row.</param> |
| 400 | /// <param name="tableName">The table name of the simple reference.</param> | 385 | /// <param name="tupleName">The tuple name of the simple reference.</param> |
| 401 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> | 386 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> |
| 402 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string tableName, params string[] primaryKeys) | 387 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, string tupleName, params string[] primaryKeys) |
| 403 | { | 388 | { |
| 404 | if (!this.EncounteredError) | 389 | if (!this.EncounteredError) |
| 405 | { | 390 | { |
| 406 | string joinedKeys = String.Join("/", primaryKeys); | 391 | var joinedKeys = String.Join("/", primaryKeys); |
| 407 | string id = String.Concat(tableName, ":", joinedKeys); | 392 | var id = String.Concat(tupleName, ":", joinedKeys); |
| 408 | 393 | ||
| 409 | // If this simple reference hasn't been added to the active section already, add it. | 394 | // If this simple reference hasn't been added to the active section already, add it. |
| 410 | if (this.activeSectionSimpleReferences.Add(id)) | 395 | if (this.activeSectionSimpleReferences.Add(id)) |
| 411 | { | 396 | { |
| 412 | this.parseHelper.CreateSimpleReference(this.ActiveSection, sourceLineNumbers, tableName, primaryKeys); | 397 | this.parseHelper.CreateSimpleReference(this.ActiveSection, sourceLineNumbers, tupleName, primaryKeys); |
| 413 | } | 398 | } |
| 414 | } | 399 | } |
| 415 | } | 400 | } |
| 416 | 401 | ||
| 417 | /// <summary> | 402 | /// <summary> |
| 403 | /// Create a WixSimpleReferenceTuple in the active section. | ||
| 404 | /// </summary> | ||
| 405 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | ||
| 406 | /// <param name="tupleDefinition">The tuple definition of the simple reference.</param> | ||
| 407 | /// <param name="primaryKeys">The primary keys of the simple reference.</param> | ||
| 408 | public void CreateSimpleReference(SourceLineNumber sourceLineNumbers, IntermediateTupleDefinition tupleDefinition, params string[] primaryKeys) | ||
| 409 | { | ||
| 410 | this.CreateSimpleReference(sourceLineNumbers, tupleDefinition.Name, primaryKeys); | ||
| 411 | } | ||
| 412 | |||
| 413 | /// <summary> | ||
| 418 | /// A row in the WixGroup table is added for this child node and its parent node. | 414 | /// A row in the WixGroup table is added for this child node and its parent node. |
| 419 | /// </summary> | 415 | /// </summary> |
| 420 | /// <param name="sourceLineNumbers">Source line information for the row.</param> | 416 | /// <param name="sourceLineNumbers">Source line information for the row.</param> |
| @@ -431,7 +427,7 @@ namespace WixToolset.Core | |||
| 431 | } | 427 | } |
| 432 | 428 | ||
| 433 | /// <summary> | 429 | /// <summary> |
| 434 | /// Add the appropriate rows to make sure that the given table shows up | 430 | /// Add the appropriate tuples to make sure that the given table shows up |
| 435 | /// in the resulting output. | 431 | /// in the resulting output. |
| 436 | /// </summary> | 432 | /// </summary> |
| 437 | /// <param name="sourceLineNumbers">Source line numbers.</param> | 433 | /// <param name="sourceLineNumbers">Source line numbers.</param> |
| @@ -445,6 +441,20 @@ namespace WixToolset.Core | |||
| 445 | } | 441 | } |
| 446 | 442 | ||
| 447 | /// <summary> | 443 | /// <summary> |
| 444 | /// Add the appropriate tuples to make sure that the given table shows up | ||
| 445 | /// in the resulting output. | ||
| 446 | /// </summary> | ||
| 447 | /// <param name="sourceLineNumbers">Source line numbers.</param> | ||
| 448 | /// <param name="tableDefinition">Definition of the table to ensure existance of.</param> | ||
| 449 | public void EnsureTable(SourceLineNumber sourceLineNumbers, TableDefinition tableDefinition) | ||
| 450 | { | ||
| 451 | if (!this.EncounteredError) | ||
| 452 | { | ||
| 453 | this.parseHelper.EnsureTable(this.ActiveSection, sourceLineNumbers, tableDefinition); | ||
| 454 | } | ||
| 455 | } | ||
| 456 | |||
| 457 | /// <summary> | ||
| 448 | /// Get an attribute value. | 458 | /// Get an attribute value. |
| 449 | /// </summary> | 459 | /// </summary> |
| 450 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> | 460 | /// <param name="sourceLineNumbers">Source line information about the owner element.</param> |
