public DependencySelector deriveChildSelector()

in maven-resolver-util/src/main/java/org/eclipse/aether/util/graph/selector/AndDependencySelector.java [105:144]


    public DependencySelector deriveChildSelector(DependencyCollectionContext context) {
        requireNonNull(context, "context cannot be null");
        int seen = 0;
        Set<DependencySelector> childSelectors = null;

        for (DependencySelector selector : selectors) {
            DependencySelector childSelector = selector.deriveChildSelector(context);
            if (childSelectors != null) {
                if (childSelector != null) {
                    childSelectors.add(childSelector);
                }
            } else if (selector != childSelector) {
                childSelectors = new LinkedHashSet<>();
                if (seen > 0) {
                    for (DependencySelector s : selectors) {
                        if (childSelectors.size() >= seen) {
                            break;
                        }
                        childSelectors.add(s);
                    }
                }
                if (childSelector != null) {
                    childSelectors.add(childSelector);
                }
            } else {
                seen++;
            }
        }

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