@SuppressWarnings("unchecked") private boolean containsConflicts(List<DependencyNodeHopCountPair> pairs) { ArtifactVersion resolvedVersion = pairs.get(0).extractArtifactVersion(); for (DependencyNodeHopCountPair pair : pairs) { ArtifactVersion version = pair.extractArtifactVersion(); if (resolvedVersion.compareTo(version) < 0) { return true; } } return false; }
public boolean visit(DependencyNode node) { DependencyNodeHopCountPair pair = new DependencyNodeHopCountPair(node); String key = pair.constructKey(); List<DependencyNodeHopCountPair> pairs = keyToPairsMap.get(key); if (pairs == null) { pairs = new ArrayList<DependencyNodeHopCountPair>(); keyToPairsMap.put(key, pairs); } pairs.add(pair); Collections.sort(pairs); return true; }
public List<List<DependencyNode>> getConflicts() { List<List<DependencyNode>> output = new ArrayList<List<DependencyNode>>(); for (List<DependencyNodeHopCountPair> pairs : keyToPairsMap.values()) { if (containsConflicts(pairs)) { List<DependencyNode> outputSubList = new ArrayList<DependencyNode>(pairs.size()); for (DependencyNodeHopCountPair pair : pairs) { outputSubList.add(pair.getNode()); } output.add(outputSubList); } } return output; }
public int compareTo(DependencyNodeHopCountPair other) { return Integer.valueOf(hopCount).compareTo(Integer.valueOf(other.getHopCount())); }