private DependencyNode buildDependencyNode()

in src/main/java/org/apache/maven/shared/dependency/graph/internal/DefaultDependencyGraphBuilder.java [123:164]


    private DependencyNode buildDependencyNode(
            DependencyNode parent,
            org.eclipse.aether.graph.DependencyNode node,
            Artifact artifact,
            ArtifactFilter filter) {
        String premanagedVersion = DependencyManagerUtils.getPremanagedVersion(node);
        String premanagedScope = DependencyManagerUtils.getPremanagedScope(node);

        List<org.apache.maven.model.Exclusion> exclusions = null;
        Boolean optional = artifact.isOptional();
        if (node.getDependency() != null) {
            exclusions = new ArrayList<>(node.getDependency().getExclusions().size());
            for (Exclusion exclusion : node.getDependency().getExclusions()) {
                org.apache.maven.model.Exclusion modelExclusion = new org.apache.maven.model.Exclusion();
                modelExclusion.setGroupId(exclusion.getGroupId());
                modelExclusion.setArtifactId(exclusion.getArtifactId());
                exclusions.add(modelExclusion);
            }
        }

        DefaultDependencyNode current = new DefaultDependencyNode(
                parent,
                artifact,
                premanagedVersion,
                premanagedScope,
                getVersionSelectedFromRange(node.getVersionConstraint()),
                optional,
                exclusions);

        List<DependencyNode> nodes = new ArrayList<>(node.getChildren().size());
        for (org.eclipse.aether.graph.DependencyNode child : node.getChildren()) {
            Artifact childArtifact = getDependencyArtifact(child.getDependency());

            if ((filter == null) || filter.include(childArtifact)) {
                nodes.add(buildDependencyNode(current, child, childArtifact, filter));
            }
        }

        current.setChildren(Collections.unmodifiableList(nodes));

        return current;
    }