@Component(role=GraphConflictResolver.class) public class DefaultGraphConflictResolver extends java.lang.Object implements GraphConflictResolver
Modifier and Type | Field and Description |
---|---|
protected GraphConflictResolutionPolicy |
policy
artifact, closer to the entry point, is selected
|
ROLE
Constructor and Description |
---|
DefaultGraphConflictResolver() |
Modifier and Type | Method and Description |
---|---|
private MetadataGraphEdge |
cleanEdges(MetadataGraphVertex v,
java.util.List<MetadataGraphEdge> edges,
ArtifactScopeEnum scope) |
private MetadataGraph |
findLinkedSubgraph(MetadataGraph g) |
MetadataGraph |
resolveConflicts(MetadataGraph graph,
ArtifactScopeEnum scope)
Cleanses the supplied graph by leaving only one directed versioned edge\
between any two nodes, if multiple exists.
|
private void |
visit(MetadataGraphVertex from,
java.util.List<MetadataGraphVertex> visited,
MetadataGraph graph) |
@Requirement(role=GraphConflictResolutionPolicy.class) protected GraphConflictResolutionPolicy policy
public MetadataGraph resolveConflicts(MetadataGraph graph, ArtifactScopeEnum scope) throws GraphConflictResolutionException
GraphConflictResolver
ArtifactScopeEnum
resolveConflicts
in interface GraphConflictResolver
graph
- the "dirty" graph to be simplified via conflict resolutionscope
- scope for which the graph should be resolvedGraphConflictResolutionException
private MetadataGraph findLinkedSubgraph(MetadataGraph g)
private void visit(MetadataGraphVertex from, java.util.List<MetadataGraphVertex> visited, MetadataGraph graph)
private MetadataGraphEdge cleanEdges(MetadataGraphVertex v, java.util.List<MetadataGraphEdge> edges, ArtifactScopeEnum scope)