From 3dad6fd46430f035945e191b6488da90d5a781be Mon Sep 17 00:00:00 2001 From: Daniil Ovchinnikov Date: Tue, 27 Dec 2016 19:55:28 +0300 Subject: [PATCH] [java] make automatic overload renamer extensible --- .../naming/AutomaticOverloadsRenamer.java | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticOverloadsRenamer.java b/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticOverloadsRenamer.java index cd16aad88e91..8a3607275be0 100644 --- a/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticOverloadsRenamer.java +++ b/java/java-impl/src/com/intellij/refactoring/rename/naming/AutomaticOverloadsRenamer.java @@ -1,5 +1,5 @@ /* - * Copyright 2000-2014 JetBrains s.r.o. + * Copyright 2000-2016 JetBrains s.r.o. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -22,17 +22,15 @@ package com.intellij.refactoring.rename.naming; import com.intellij.psi.PsiClass; import com.intellij.psi.PsiMethod; +import org.jetbrains.annotations.NotNull; public class AutomaticOverloadsRenamer extends AutomaticRenamer { - public AutomaticOverloadsRenamer(PsiMethod method, String newName) { - final PsiClass containingClass = method.getContainingClass(); - if (containingClass != null) { - final PsiMethod[] overloads = containingClass.findMethodsByName(method.getName(), false); - for (PsiMethod overload : overloads) { - if (overload != method && overload.findDeepestSuperMethods().length == 0) { - myElements.add(overload); - suggestAllNames(overload.getName(), newName); - } + + public AutomaticOverloadsRenamer(@NotNull PsiMethod method, String newName) { + for (PsiMethod overload : getOverloads(method)) { + if (overload != method && overload.findDeepestSuperMethods().length == 0) { + myElements.add(overload); + suggestAllNames(overload.getName(), newName); } } } @@ -54,4 +52,11 @@ public class AutomaticOverloadsRenamer extends AutomaticRenamer { public boolean isSelectedByDefault() { return true; } + + @NotNull + protected PsiMethod[] getOverloads(@NotNull PsiMethod method) { + PsiClass containingClass = method.getContainingClass(); + if (containingClass == null) return PsiMethod.EMPTY_ARRAY; + return containingClass.findMethodsByName(method.getName(), false); + } } \ No newline at end of file