ModifiableModuleModel refactoring: extract a convenient method
authornik <Nikolay.Chashnikov@jetbrains.com>
Mon, 12 Feb 2018 08:04:57 +0000 (11:04 +0300)
committernik <Nikolay.Chashnikov@jetbrains.com>
Mon, 12 Feb 2018 08:05:46 +0000 (11:05 +0300)
java/compiler/impl/src/com/intellij/packaging/impl/ui/ModuleElementPresentation.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/ModuleStructureConfigurable.java
java/idea-ui/src/com/intellij/openapi/roots/ui/configuration/projectRoot/StructureConfigurableContext.java
java/java-tests/testSrc/com/intellij/roots/MultiModuleEditingTest.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/AbstractDependencyDataService.java
platform/external-system-impl/src/com/intellij/openapi/externalSystem/service/project/manage/ModuleDependencyDataService.java
platform/projectModel-api/src/com/intellij/openapi/module/ModifiableModuleModel.java
platform/projectModel-impl/src/com/intellij/openapi/module/impl/ModuleManagerImpl.java
platform/projectModel-impl/src/com/intellij/openapi/module/impl/moduleGroupers.kt

index af59bc05b3cdbad37ab63e512196e627758953a9..0ed75b5d4fce0066b84060487dff2039f709974f 100644 (file)
@@ -75,13 +75,12 @@ public class ModuleElementPresentation extends TreeNodePresentation {
     }
     String moduleName;
     if (module != null) {
-      moduleName = module.getName();
-      final ModifiableModuleModel moduleModel = myContext.getModifiableModuleModel();
+      ModifiableModuleModel moduleModel = myContext.getModifiableModuleModel();
       if (moduleModel != null) {
-        final String newName = moduleModel.getNewName(module);
-        if (newName != null) {
-          moduleName = newName;
-        }
+        moduleName = moduleModel.getActualName(module);
+      }
+      else {
+        moduleName = module.getName();
       }
     }
     else if (myModulePointer != null) {
index ccd56a04259c6d05070d717c77bea5b33475f833..1a2a7f2d4ac2b03306c9c8f143c8140c3b9ca288 100644 (file)
@@ -15,7 +15,6 @@ import com.intellij.openapi.util.ActionCallback;
 import com.intellij.openapi.util.Comparing;
 import com.intellij.openapi.util.text.StringUtil;
 import com.intellij.ui.navigation.Place;
-import com.intellij.util.ObjectUtils;
 import org.jetbrains.annotations.NonNls;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
@@ -36,7 +35,7 @@ public class ModuleConfigurable extends ProjectStructureElementConfigurable<Modu
     myModule = module;
     myModuleGrouper = moduleGrouper;
     myConfigurator = modulesConfigurator;
-    myModuleName = ObjectUtils.notNull(myConfigurator.getModuleModel().getNewName(myModule), myModule.getName());
+    myModuleName = myConfigurator.getModuleModel().getActualName(myModule);
     myContext = ModuleStructureConfigurable.getInstance(myModule.getProject()).getContext();
     myProjectStructureElement = new ModuleProjectStructureElement(myContext, myModule);
   }
index dbcb9d2defe648b1cf6714fc3a4572830af16be9..6c3ecefeea2228f1f0827467ed3035dbdce5a80f 100644 (file)
@@ -49,7 +49,6 @@ import com.intellij.openapi.vfs.LocalFileSystem;
 import com.intellij.openapi.vfs.VirtualFile;
 import com.intellij.openapi.vfs.pointers.VirtualFilePointerManager;
 import com.intellij.ui.navigation.Place;
-import com.intellij.util.ObjectUtils;
 import com.intellij.util.PathUtil;
 import com.intellij.util.PlatformIcons;
 import com.intellij.util.containers.ContainerUtil;
@@ -634,7 +633,7 @@ public class ModuleStructureConfigurable extends BaseStructureConfigurable imple
 
     @NotNull
     private String getFullModuleName() {
-      return ObjectUtils.notNull(myContext.myModulesConfigurator.getModuleModel().getNewName(getModule()), getModule().getName());
+      return myContext.myModulesConfigurator.getModuleModel().getActualName(getModule());
     }
 
     private ModuleGrouper getModuleGrouper() {
index a6316cd3797574ff7145939a812a724f836ce7da..fce902cf68974f17ea1cd738b5930bf166482e80 100644 (file)
@@ -16,7 +16,6 @@
 package com.intellij.openapi.roots.ui.configuration.projectRoot;
 
 import com.intellij.openapi.Disposable;
-import com.intellij.openapi.module.ModifiableModuleModel;
 import com.intellij.openapi.module.Module;
 import com.intellij.openapi.project.Project;
 import com.intellij.openapi.roots.OrderRootType;
@@ -86,9 +85,7 @@ public class StructureConfigurableContext implements Disposable, LibraryEditorLi
   }
 
   public String getRealName(final Module module) {
-    final ModifiableModuleModel moduleModel = myModulesConfigurator.getModuleModel();
-    String newName = moduleModel.getNewName(module);
-    return newName != null ? newName : module.getName();
+    return myModulesConfigurator.getModuleModel().getActualName(module);
   }
 
   public void resetLibraries() {
index 8ca84259e4fb9f808eb49f2d33197735d4df0c61..0ac7a6ea0597adef939dfb68134185ae7a48fed5 100644 (file)
@@ -165,6 +165,8 @@ public class MultiModuleEditingTest extends ModuleTestCase {
       assertSame(moduleA, moduleModel.findModuleByName("a"));
       assertSame(moduleA, moduleManager.findModuleByName("a"));
       assertEquals("c", moduleModel.getNewName(moduleA));
+      assertEquals("b", moduleModel.getActualName(moduleB));
+      assertEquals("c", moduleModel.getActualName(moduleA));
       assertSame(moduleA, moduleModel.getModuleToBeRenamed("c"));
       ApplicationManager.getApplication().runWriteAction(() -> moduleModel.commit());
     }
index 62dbd2e30511499de3d6c7aedb2001b8055b1d02..5dbdbbf76aa9eb25d0fd166875ce8342d9762d16 100644 (file)
@@ -128,7 +128,7 @@ public abstract class AbstractDependencyDataService<E extends AbstractDependency
             continue;
           }
           if (getOrderEntryType().isInstance(entry)) {
-            final String moduleName = ObjectUtils.chooseNotNull(modifiableModuleModel.getNewName(entry.getOwnerModule()), entry.getOwnerModule().getName()) ;
+            final String moduleName = modifiableModuleModel.getActualName(entry.getOwnerModule()); ;
             //noinspection unchecked
             if (!byModuleName.get(moduleName).contains(getOrderEntryName(modelsProvider, (I)entry))) {
               //noinspection unchecked
index 37e6dd0d84721cd405facd2f83166a175ddd7264..56996c7e50f53ab2a61f77b2229e1f33038b9b65 100644 (file)
@@ -67,10 +67,7 @@ public class ModuleDependencyDataService extends AbstractDependencyDataService<M
     String moduleName = orderEntry.getModuleName();
     final Module orderEntryModule = orderEntry.getModule();
     if(orderEntryModule != null) {
-      final String newName = modelsProvider.getModifiableModuleModel().getNewName(orderEntryModule);
-      if (newName != null) {
-        moduleName = newName;
-      }
+      moduleName = modelsProvider.getModifiableModuleModel().getActualName(orderEntryModule);
     }
     return moduleName;
   }
index 0196c73c1589ef6d51188b40fc1562a109693c22..c67404ae0466b8bcacca03536767daaa2e9862b7 100644 (file)
@@ -134,6 +134,12 @@ public interface ModifiableModuleModel {
   @Nullable
   String getNewName(@NotNull Module module);
 
+  /**
+   * @return the new name of {@code module} if it has been renamed or its old name it hasn't.
+   */
+  @NotNull
+  String getActualName(@NotNull Module module);
+
   @Nullable
   String[] getModuleGroupPath(@NotNull Module module);
 
index 6dcbde1ccb7b92913c1910b74bccd7bf34e9aa7e..cb33b7c10b55ab8b70d7806467e63dc12c6971f5 100644 (file)
@@ -723,6 +723,12 @@ public abstract class ModuleManagerImpl extends ModuleManager implements Disposa
       return myModuleToNewName.get(module);
     }
 
+    @NotNull
+    @Override
+    public String getActualName(@NotNull Module module) {
+      return ObjectUtils.notNull(getNewName(module), module.getName());
+    }
+
     @Override
     @NotNull
     public Module newModule(@NotNull String filePath, @NotNull final String moduleTypeId) {
index c28d94165ae17a9008b5ab5c60bef1534a85f49e..d0a33bdad5a6383e076d6b6085be2c80280745b9 100644 (file)
@@ -20,7 +20,7 @@ internal fun createGrouper(project: Project, moduleModel: ModifiableModuleModel?
 private abstract class ModuleGrouperBase(protected val project: Project, protected val model: ModifiableModuleModel?) : ModuleGrouper() {
   override fun getAllModules(): Array<Module> = model?.modules ?: ModuleManager.getInstance(project).modules
 
-  protected fun getModuleName(module: Module) = model?.getNewName(module) ?: module.name
+  protected fun getModuleName(module: Module) = model?.getActualName(module) ?: module.name
 
   override fun getShortenedName(module: Module) = getShortenedNameByFullModuleName(getModuleName(module))
 }