dependingImports.addAll(getImportingModules(names));
dependingExtends.addAll(getExtendingModules(names));
monitor.startJob("Reconnecting importers of affected modules");
for (String mod : dependingImports) {
ModuleEnvironment env = heap.getModule(mod);
Set<String> todo = new HashSet<String>(env.getImports());
for (String imp : todo) {
if (names.contains(imp)) {
env.unImport(imp);
ModuleEnvironment imported = heap.getModule(imp);
if (imported != null) {
env.addImport(imp, imported);
}
}
}
monitor.event("Reconnected " + mod, 1);
}
monitor.event("Reconnecting extenders of affected modules");
for (String mod : dependingExtends) {
ModuleEnvironment env = heap.getModule(mod);
Set<String> todo = new HashSet<String>(env.getExtends());
for (String ext : todo) {
if (names.contains(ext)) {
env.unExtend(ext);
ModuleEnvironment extended = heap.getModule(ext);
if (extended != null) {
env.addExtend(ext);
}
}
}