org.eclipse.aether.util.graph.transformer

## Class ConflictIdSorter

- java.lang.Object
- - org.eclipse.aether.util.graph.transformer.ConflictIdSorter

- All Implemented Interfaces:
    DependencyGraphTransformer

      public final class ConflictIdSorter
      extends Object
      implements DependencyGraphTransformer

  A dependency graph transformer that creates a topological sorting of the conflict ids which have been assigned to the dependency nodes. Conflict ids are sorted according to the dependency relation induced by the dependency graph. This transformer will query the key `TransformationContextKeys.CONFLICT_IDS` in the transformation context for an existing mapping of nodes to their conflicts ids. In absence of this map, the transformer will automatically invoke the `ConflictMarker` to calculate the conflict ids. When this transformer has executed, the transformation context holds a `List<Object>` that denotes the topologically sorted conflict ids. The list will be stored using the key `TransformationContextKeys.SORTED_CONFLICT_IDS`. In addition, the transformer will store a `Collection<Collection<Object>>` using the key `TransformationContextKeys.CYCLIC_CONFLICT_IDS` that describes cycles among conflict ids.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConflictIdSorter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `DependencyNode` | `transformGraph(DependencyNode node, DependencyGraphTransformationContext context)` Transforms the dependency graph denoted by the specified root node.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### ConflictIdSorter

          public ConflictIdSorter()

  - ### Method Detail

    - #### transformGraph

          public DependencyNode transformGraph(DependencyNode node,
                                      DependencyGraphTransformationContext context)
                                        throws RepositoryException

      Description copied from interface: `DependencyGraphTransformer`
      Transforms the dependency graph denoted by the specified root node. The transformer may directly change the provided input graph or create a new graph, the former is recommended for performance reasons.
      Specified by:
        `transformGraph` in interface `DependencyGraphTransformer`
      Parameters:
        `node` - The root node of the (possibly cyclic!) graph to transform, must not be `null`.
        `context` - The graph transformation context, must not be `null`.
      Returns:
        The result graph of the transformation, never `null`.
      Throws:
        `RepositoryException` - If the transformation failed.

Copyright © 2010-2014 The Eclipse Foundation. All Rights Reserved.