From 114e0938c6adb735aaebd7eeaa633732bb0a915c Mon Sep 17 00:00:00 2001 From: "Vladislav.Soroka" Date: Thu, 28 Jan 2016 16:44:47 +0300 Subject: [PATCH] external system: rename newly created module if it has not expected name --- .../AbstractIdeModifiableModelsProvider.java | 16 ++++++++++++++++ .../manage/AbstractModuleDataService.java | 10 ---------- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java index cc2de2f9af28..8d7f7d7576cc 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/AbstractIdeModifiableModelsProvider.java @@ -20,9 +20,11 @@ import com.intellij.facet.FacetModel; import com.intellij.facet.FacetTypeId; import com.intellij.facet.ModifiableFacetModel; import com.intellij.openapi.application.ModalityState; +import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.externalSystem.model.project.LibraryData; import com.intellij.openapi.module.ModifiableModuleModel; import com.intellij.openapi.module.Module; +import com.intellij.openapi.module.ModuleWithNameAlreadyExists; import com.intellij.openapi.project.Project; import com.intellij.openapi.roots.*; import com.intellij.openapi.roots.ex.ProjectRootManagerEx; @@ -33,6 +35,7 @@ import com.intellij.openapi.roots.libraries.LibraryTablesRegistrar; import com.intellij.openapi.roots.ui.configuration.FacetsProvider; import com.intellij.openapi.roots.ui.configuration.ModulesProvider; import com.intellij.openapi.util.Disposer; +import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.vfs.VirtualFile; import com.intellij.packaging.artifacts.ArtifactModel; import com.intellij.packaging.artifacts.ModifiableArtifactModel; @@ -47,11 +50,14 @@ import gnu.trove.THashMap; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; +import java.io.File; import java.util.*; import static com.intellij.openapi.externalSystem.util.ExternalSystemApiUtil.isRelated; public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProviderImpl implements IdeModifiableModelsProvider { + private static final Logger LOG = Logger.getInstance(AbstractIdeModifiableModelsProvider.class); + private ModifiableModuleModel myModifiableModuleModel; private Map myModifiableRootModels = new THashMap(); private Map myModifiableFacetModels = new THashMap(); @@ -108,6 +114,16 @@ public abstract class AbstractIdeModifiableModelsProvider extends IdeModelsProvi @Override public Module newModule(@NotNull final String filePath, final String moduleTypeId) { Module module = getModifiableModuleModel().newModule(filePath, moduleTypeId); + final String moduleName = FileUtil.getNameWithoutExtension(new File(filePath)); + if (!module.getName().equals(moduleName)) { + try { + getModifiableModuleModel().renameModule(module, moduleName); + } + catch (ModuleWithNameAlreadyExists exists) { + LOG.warn(exists); + } + } + // set module type id explicitly otherwise it can not be set if there is an existing module (with the same filePath) and w/o 'type' attribute module.setOption(Module.ELEMENT_TYPE, moduleTypeId); return module; diff --git a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/AbstractModuleDataService.java b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/AbstractModuleDataService.java index 1b0c9fad1df8..992aa5da94c3 100644 --- a/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/AbstractModuleDataService.java +++ b/platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/AbstractModuleDataService.java @@ -128,16 +128,6 @@ public abstract class AbstractModuleDataService extends Ab for (final DataNode module : toCreate) { ModuleData data = module.getData(); final Module created = modelsProvider.newModule(data.getModuleFilePath(), data.getModuleTypeId()); - final String moduleName = FileUtil.getNameWithoutExtension(new File(data.getModuleFilePath())); - if (!created.getName().equals(moduleName)) { - try { - modelsProvider.getModifiableModuleModel().renameModule(created, moduleName); - } - catch (ModuleWithNameAlreadyExists exists) { - LOG.warn(exists); - } - } - module.putUserData(MODULE_KEY, created); Set orphanFiles = project.getUserData(ORPHAN_MODULE_FILES); if (orphanFiles != null) {