public final class ConflictMarker extends java.lang.Object implements DependencyGraphTransformer
Map<DependencyNode, Object>
where dependency nodes that belong to the same
conflict group will have an equal conflict identifier. This map is stored using the key
TransformationContextKeys.CONFLICT_IDS
.Modifier and Type | Class and Description |
---|---|
(package private) static class |
ConflictMarker.ConflictGroup |
(package private) static class |
ConflictMarker.Key |
Constructor and Description |
---|
ConflictMarker() |
Modifier and Type | Method and Description |
---|---|
private void |
analyze(DependencyNode node,
java.util.Map<DependencyNode,java.lang.Object> nodes,
java.util.Map<java.lang.Object,ConflictMarker.ConflictGroup> groups,
int[] counter) |
private java.util.Set<java.lang.Object> |
getKeys(DependencyNode node) |
private java.util.Map<DependencyNode,java.lang.Object> |
mark(java.util.Collection<DependencyNode> nodes,
java.util.Map<java.lang.Object,ConflictMarker.ConflictGroup> groups) |
private java.util.Set<java.lang.Object> |
merge(java.util.Set<java.lang.Object> keys1,
java.util.Set<java.lang.Object> keys2) |
private static java.lang.Object |
toKey(Artifact artifact) |
DependencyNode |
transformGraph(DependencyNode node,
DependencyGraphTransformationContext context)
After the execution of this method, every DependencyNode with an attached dependency is member of one conflict
group.
|
public DependencyNode transformGraph(DependencyNode node, DependencyGraphTransformationContext context) throws RepositoryException
transformGraph
in interface DependencyGraphTransformer
node
- The root node of the (possibly cyclic!) graph to transform, must not be null
.context
- The graph transformation context, must not be null
.null
.RepositoryException
- If the transformation failed.DependencyGraphTransformer.transformGraph(DependencyNode, DependencyGraphTransformationContext)
private void analyze(DependencyNode node, java.util.Map<DependencyNode,java.lang.Object> nodes, java.util.Map<java.lang.Object,ConflictMarker.ConflictGroup> groups, int[] counter)
private java.util.Set<java.lang.Object> merge(java.util.Set<java.lang.Object> keys1, java.util.Set<java.lang.Object> keys2)
private java.util.Set<java.lang.Object> getKeys(DependencyNode node)
private java.util.Map<DependencyNode,java.lang.Object> mark(java.util.Collection<DependencyNode> nodes, java.util.Map<java.lang.Object,ConflictMarker.ConflictGroup> groups)
private static java.lang.Object toKey(Artifact artifact)