diff options
Diffstat (limited to 'src/WixToolset.Core/CompilerCore.cs')
-rw-r--r-- | src/WixToolset.Core/CompilerCore.cs | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/WixToolset.Core/CompilerCore.cs b/src/WixToolset.Core/CompilerCore.cs index 53e0f3fc..cfe3082e 100644 --- a/src/WixToolset.Core/CompilerCore.cs +++ b/src/WixToolset.Core/CompilerCore.cs | |||
@@ -341,6 +341,46 @@ namespace WixToolset.Core | |||
341 | } | 341 | } |
342 | 342 | ||
343 | /// <summary> | 343 | /// <summary> |
344 | /// Creates group and ordering information. | ||
345 | /// </summary> | ||
346 | /// <param name="sourceLineNumbers">Source line numbers.</param> | ||
347 | /// <param name="parentType">Type of parent group, if known.</param> | ||
348 | /// <param name="parentId">Identifier of parent group, if known.</param> | ||
349 | /// <param name="type">Type of this item.</param> | ||
350 | /// <param name="id">Identifier for this item.</param> | ||
351 | /// <param name="previousType">Type of previous item, if known.</param> | ||
352 | /// <param name="previousId">Identifier of previous item, if known</param> | ||
353 | public void CreateGroupAndOrderingRows(SourceLineNumber sourceLineNumbers, | ||
354 | ComplexReferenceParentType parentType, string parentId, | ||
355 | ComplexReferenceChildType type, string id, | ||
356 | ComplexReferenceChildType previousType, string previousId) | ||
357 | { | ||
358 | if (this.EncounteredError) | ||
359 | { | ||
360 | return; | ||
361 | } | ||
362 | |||
363 | if (parentType != ComplexReferenceParentType.Unknown && parentId != null) | ||
364 | { | ||
365 | this.CreateWixGroupRow(sourceLineNumbers, parentType, parentId, type, id); | ||
366 | } | ||
367 | |||
368 | if (previousType != ComplexReferenceChildType.Unknown && previousId != null) | ||
369 | { | ||
370 | // TODO: Should we define our own enum for this, just to ensure there's no "cross-contamination"? | ||
371 | // TODO: Also, we could potentially include an 'Attributes' field to track things like | ||
372 | // 'before' vs. 'after', and explicit vs. inferred dependencies. | ||
373 | this.AddSymbol(new WixOrderingSymbol(sourceLineNumbers) | ||
374 | { | ||
375 | ItemType = type, | ||
376 | ItemIdRef = id, | ||
377 | DependsOnType = previousType, | ||
378 | DependsOnIdRef = previousId, | ||
379 | }); | ||
380 | } | ||
381 | } | ||
382 | |||
383 | /// <summary> | ||
344 | /// Creates a version 3 name-based UUID. | 384 | /// Creates a version 3 name-based UUID. |
345 | /// </summary> | 385 | /// </summary> |
346 | /// <param name="namespaceGuid">The namespace UUID.</param> | 386 | /// <param name="namespaceGuid">The namespace UUID.</param> |