private static Map<URL, Set<URL>> findDependent(final URL root, final Collection<ElementHandle<TypeElement>> classes, boolean includeFilesInError) throws IOException {
Map<URL, List<URL>> deps = IndexingController.getDefault().getRootDependencies();
Map<URL, List<URL>> peers = IndexingController.getDefault().getRootPeers();
final Map<URL, List<URL>> inverseDeps = new HashMap<URL, List<URL>> ();
for (Map.Entry<URL,List<URL>> entry : deps.entrySet()) {
final URL u1 = entry.getKey();
final List<URL> l1 = entry.getValue();
for (URL u2 : l1) {
List<URL> l2 = inverseDeps.get(u2);
if (l2 == null) {
l2 = new ArrayList<URL>();
inverseDeps.put (u2,l2);
}
l2.add (u1);
}
}
return findDependent(root, deps, inverseDeps, peers, classes, includeFilesInError, true);
}