public DependencyTraverser deriveChildTraverser()

in maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/traverser/AndDependencyTraverser.java [107:146]


    public DependencyTraverser deriveChildTraverser(DependencyCollectionContext context) {
        requireNonNull(context, "context cannot be null");
        int seen = 0;
        Set<DependencyTraverser> childTraversers = null;

        for (DependencyTraverser traverser : traversers) {
            DependencyTraverser childTraverser = traverser.deriveChildTraverser(context);
            if (childTraversers != null) {
                if (childTraverser != null) {
                    childTraversers.add(childTraverser);
                }
            } else if (traverser != childTraverser) {
                childTraversers = new LinkedHashSet<>();
                if (seen > 0) {
                    for (DependencyTraverser s : traversers) {
                        if (childTraversers.size() >= seen) {
                            break;
                        }
                        childTraversers.add(s);
                    }
                }
                if (childTraverser != null) {
                    childTraversers.add(childTraverser);
                }
            } else {
                seen++;
            }
        }

        if (childTraversers == null) {
            return this;
        }
        if (childTraversers.size() <= 1) {
            if (childTraversers.isEmpty()) {
                return null;
            }
            return childTraversers.iterator().next();
        }
        return new AndDependencyTraverser(childTraversers);
    }