From 777f3ae1d3246fe01f4123f6db119586a61f8eba Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Thu, 25 Jul 2013 18:31:26 +0400 Subject: [PATCH] Safe Delete: decompose checkSuperMethods() --- .../safeDelete/KotlinSafeDeleteProcessor.java | 55 ++++++++++++------- 1 file changed, 34 insertions(+), 21 deletions(-) diff --git a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java index fc58fd5293f..404d8219d9c 100644 --- a/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java +++ b/idea/src/org/jetbrains/jet/plugin/refactoring/safeDelete/KotlinSafeDeleteProcessor.java @@ -611,7 +611,40 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { if (superMethods.isEmpty()) return Collections.singletonList(declaration); - List superClasses = ContainerUtil.map( + List superClasses = getClassDescriptions(bindingContext, superMethods); + + return askUserForMethodsToSearch(declaration, callableDescriptor, superMethods, superClasses); + } + + private static Collection askUserForMethodsToSearch( + JetDeclaration declaration, + CallableMemberDescriptor callableDescriptor, + Collection superMethods, + List superClasses + ) { + String superClassesStr = "\n" + StringUtil.join(superClasses, ""); + String message = JetBundle.message( + "x.overrides.y.in.class.list", + DescriptorRenderer.COMPACT.render(callableDescriptor), + DescriptorRenderer.SOURCE_CODE_SHORT_NAMES_IN_TYPES.render(callableDescriptor.getContainingDeclaration()), + superClassesStr + ); + + int exitCode = Messages.showYesNoCancelDialog( + declaration.getProject(), message, IdeBundle.message("title.warning"), Messages.getQuestionIcon() + ); + switch (exitCode) { + case Messages.YES: + return superMethods; + case Messages.NO: + return Collections.singletonList(declaration); + default: + return Collections.emptyList(); + } + } + + private static List getClassDescriptions(final BindingContext bindingContext, Collection superMethods) { + return ContainerUtil.map( superMethods, new Function() { @Override @@ -641,26 +674,6 @@ public class KotlinSafeDeleteProcessor extends JavaSafeDeleteProcessor { } } ); - - String superClassesStr = "\n" + StringUtil.join(superClasses, ""); - String message = JetBundle.message( - "x.overrides.y.in.class.list", - DescriptorRenderer.COMPACT.render(callableDescriptor), - DescriptorRenderer.SOURCE_CODE_SHORT_NAMES_IN_TYPES.render(callableDescriptor.getContainingDeclaration()), - superClassesStr - ); - - int exitCode = Messages.showYesNoCancelDialog( - declaration.getProject(), message, IdeBundle.message("title.warning"), Messages.getQuestionIcon() - ); - switch (exitCode) { - case Messages.YES: - return superMethods; - case Messages.NO: - return Collections.singletonList(declaration); - default: - return Collections.emptyList(); - } } @Nullable