public ModuleVersionSpec getSelector() {
   String[] configurations =
       from.metaData.getHierarchy().toArray(new String[from.metaData.getHierarchy().size()]);
   ModuleVersionSpec selector =
       ModuleVersionSpec.forExcludes(dependencyDescriptor.getExcludeRules(configurations));
   return selector.intersect(selectorSpec);
 }
 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;
 }