From 1e784542b816af186635fcc9697c9965a039dacf Mon Sep 17 00:00:00 2001 From: anna Date: Wed, 8 Feb 2012 14:13:46 +0100 Subject: [PATCH] move: move inner class with other files with its top level only (EA-33583 - CCE: JavaMoveFilesOrDirectoriesHandler.obtainContainingFile) --- .../JavaMoveFilesOrDirectoriesHandler.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java b/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java index 370d0e4f271b..c67b7b7b0967 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveFilesOrDirectories/JavaMoveFilesOrDirectoriesHandler.java @@ -24,6 +24,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.impl.file.JavaDirectoryServiceImpl; import com.intellij.psi.search.GlobalSearchScope; +import com.intellij.psi.util.PsiUtil; import com.intellij.psi.util.PsiUtilBase; import com.intellij.refactoring.move.MoveCallback; import com.intellij.util.ArrayUtil; @@ -76,9 +77,12 @@ public class JavaMoveFilesOrDirectoriesHandler extends MoveFilesOrDirectoriesHan @Override protected void run(Result result) throws Throwable { final List adjustedElements = new ArrayList(); - for (PsiElement element : elements) { + for (int i = 0, length = elements.length; i < length; i++) { + PsiElement element = elements[i]; if (element instanceof PsiClass) { - final PsiFile containingFile = obtainContainingFile(element, elements); + final PsiClass topLevelClass = PsiUtil.getTopLevelClass(element); + elements[i] = topLevelClass; + final PsiFile containingFile = obtainContainingFile(topLevelClass, elements); if (containingFile != null && !adjustedElements.contains(containingFile)) { adjustedElements.add(containingFile); }