summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java')
-rw-r--r--java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java14
1 files changed, 7 insertions, 7 deletions
diff --git a/java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java b/java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java
index c9daa8c1bbdb..7cc464bcb710 100644
--- a/java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java
+++ b/java/java-impl/src/com/intellij/refactoring/inheritanceToDelegation/InheritanceToDelegationHandler.java
@@ -41,13 +41,10 @@ import com.intellij.refactoring.util.RefactoringHierarchyUtil;
import com.intellij.refactoring.util.RefactoringMessageUtil;
import com.intellij.refactoring.util.classMembers.MemberInfo;
import com.intellij.refactoring.util.classMembers.MemberInfoStorage;
-import com.intellij.util.containers.HashMap;
import org.jetbrains.annotations.NonNls;
import org.jetbrains.annotations.NotNull;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.List;
+import java.util.*;
public class InheritanceToDelegationHandler implements RefactoringActionHandler {
private static final Logger LOG = Logger.getInstance("#com.intellij.refactoring.inheritanceToDelegation.InheritanceToDelegationHandler");
@@ -106,23 +103,26 @@ public class InheritanceToDelegationHandler implements RefactoringActionHandler
if (!CommonRefactoringUtil.checkReadOnlyStatus(project, aClass)) return;
- final PsiClass[] bases = aClass.getSupers();
+ PsiClass[] bases = aClass.getSupers();
@NonNls final String javaLangObject = CommonClassNames.JAVA_LANG_OBJECT;
+
if (bases.length == 0 || bases.length == 1 && javaLangObject.equals(bases[0].getQualifiedName())) {
String message = RefactoringBundle.getCannotRefactorMessage(RefactoringBundle.message("class.does.not.have.base.classes.or.interfaces", aClass.getQualifiedName()));
CommonRefactoringUtil.showErrorHint(project, editor, message, REFACTORING_NAME, HelpID.INHERITANCE_TO_DELEGATION);
return;
}
- final HashMap<PsiClass, Collection<MemberInfo>> basesToMemberInfos = new HashMap<PsiClass, Collection<MemberInfo>>();
+ final HashMap<PsiClass, Collection<MemberInfo>> basesToMemberInfos = new LinkedHashMap<PsiClass, Collection<MemberInfo>>();
for (PsiClass base : bases) {
+ if (javaLangObject.equals(base.getQualifiedName())) continue;
basesToMemberInfos.put(base, createBaseClassMemberInfos(base));
}
+ final Set<PsiClass> baseClasses = basesToMemberInfos.keySet();
new InheritanceToDelegationDialog(project, aClass,
- bases, basesToMemberInfos).show();
+ baseClasses.toArray(new PsiClass[baseClasses.size()]), basesToMemberInfos).show();
}
private static List<MemberInfo> createBaseClassMemberInfos(PsiClass baseClass) {