- String fromName = null;
- Date fromRevision = null;
- Set<ModuleImport> imports = null;
-
- if (mb instanceof Module) {
- fromName = ((Module) mb).getName();
- fromRevision = ((Module) mb).getRevision();
- imports = ((Module) mb).getImports();
- } else if (mb instanceof ModuleBuilder) {
- fromName = ((ModuleBuilder) mb).getName();
- fromRevision = ((ModuleBuilder) mb).getRevision();
- imports = ((ModuleBuilder) mb).getModuleImports();
+ String fromName;
+ Date fromRevision;
+ Collection<ModuleImport> imports;
+ URI ns;
+
+ if (mmb.isModule()) {
+ Module module = mmb.getModule();
+ fromName = module.getName();
+ fromRevision = module.getRevision();
+ imports = module.getImports();
+ ns = module.getNamespace();
+ } else {
+ ModuleBuilder moduleBuilder = mmb.getModuleBuilder();
+ fromName = moduleBuilder.getName();
+ fromRevision = moduleBuilder.getRevision();
+ imports = moduleBuilder.getImports().values();
+ ns = moduleBuilder.getNamespace();
+ }
+
+ // check for existence of module with same namespace
+ if (allNS.containsKey(ns)) {
+ ModuleOrModuleBuilder mod = allNS.get(ns);
+ String name = null;
+ Date revision = null;
+ if (mod.isModule()) {
+ name = mod.getModule().getName();
+ revision = mod.getModule().getRevision();
+ } else if (mod.isModuleBuilder()) {
+ name = mod.getModuleBuilder().getName();
+ revision = mod.getModuleBuilder().getRevision();
+ }
+ if (!(fromName.equals(name))) {
+ LOGGER.warn(
+ "Error while sorting module [{}, {}]: module with same namespace ({}) already loaded: [{}, {}]",
+ fromName, fromRevision, ns, name, revision);
+ }
+ } else {
+ allNS.put(ns, mmb);