private ModuleVersionSpec getSelector(List<DependencyEdge> transitiveEdges) { ModuleVersionSpec selector; if (transitiveEdges.isEmpty()) { selector = ModuleVersionSpec.forExcludes(); // includes all } else { selector = transitiveEdges.get(0).getSelector(); for (int i = 1; i < transitiveEdges.size(); i++) { DependencyEdge dependencyEdge = transitiveEdges.get(i); selector = selector.union(dependencyEdge.getSelector()); } } selector = selector.intersect(ModuleVersionSpec.forExcludes(metaData.getExcludeRules())); return selector; }