ModuleOrderEntry (Module ownerModule, LibraryOrderEntry libraryOrderEntry, ProjectCoordinate publicationId) { String workspaceModuleCandidate = findModuleByPublication(publicationId); Module workspaceModule = workspaceModuleCandidate == null ? null : findIdeModule(workspaceModuleCandidate); if (workspaceModule == null) { return null; } else { ModifiableRootModel modifiableRootModel = getModifiableRootModel(ownerModule); ModuleOrderEntry moduleOrderEntry = modifiableRootModel.findModuleOrderEntry(workspaceModule); if (moduleOrderEntry == null) // if that module exists already (after re-import) moduleOrderEntry = modifiableRootModel.addModuleOrderEntry(workspaceModule); moduleOrderEntry.setScope(libraryOrderEntry.getScope()); moduleOrderEntry.setExported(libraryOrderEntry.isExported()); ModifiableWorkspace workspace = getModifiableWorkspace(); assert workspace != null; workspace.addSubstitution(ownerModule.getName(), workspaceModule.getName(), libraryOrderEntry.getLibraryName(), libraryOrderEntry.getScope()); modifiableRootModel.removeOrderEntry(libraryOrderEntry); return moduleOrderEntry; } }