List<MavenArtifactNode> (MavenArtifactNode parent, Collection<? extends DependencyNode> nodes, Map<Artifact, MavenArtifact> nativeToConvertedMap, File localRepository) { List<MavenArtifactNode> result = new ArrayList<>(nodes.size()); for (DependencyNode each : nodes) { Artifact a = toArtifact(each.getDependency()); MavenArtifact ma = convertArtifact(a, nativeToConvertedMap, localRepository); Map<?, ?> data = each.getData(); String premanagedVersion = DependencyManagerUtils.getPremanagedVersion(each); String premanagedScope = DependencyManagerUtils.getPremanagedScope(each); MavenArtifactState state = MavenArtifactState.ADDED; MavenArtifact relatedArtifact = null; String scope = each.getDependency().getScope(); Object winner = data.get(ConflictResolver.NODE_DATA_WINNER); if (winner instanceof DependencyNode) { DependencyNode winnerNode = (DependencyNode)winner; scope = winnerNode.getDependency().getScope(); Artifact winnerArtifact = toArtifact(winnerNode.getDependency()); relatedArtifact = convertArtifact(winnerArtifact, nativeToConvertedMap, localRepository); nativeToConvertedMap.put(winnerArtifact, relatedArtifact); if (!Objects.equals(each.getVersion().toString(), winnerNode.getVersion().toString())) { state = MavenArtifactState.CONFLICT; } else { state = MavenArtifactState.DUPLICATE; } } ma.setScope(scope); MavenArtifactNode newNode = new MavenArtifactNode(parent, ma, state, relatedArtifact, each.getDependency().getScope(), premanagedVersion, premanagedScope); newNode.setDependencies(convertAetherDependencyNodes(newNode, each.getChildren(), nativeToConvertedMap, localRepository)); result.add(newNode); } return result; }