summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java')
-rw-r--r--java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java38
1 files changed, 26 insertions, 12 deletions
diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java
index 8a88e1c19626..5a086c7a7f2f 100644
--- a/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/move/moveClassesOrPackages/MoveClassesOrPackagesProcessor.java
@@ -159,14 +159,20 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
@NotNull
protected UsageInfo[] findUsages() {
- List<UsageInfo> allUsages = new ArrayList<UsageInfo>();
+ final List<UsageInfo> allUsages = new ArrayList<UsageInfo>();
+ final List<UsageInfo> usagesToSkip = new ArrayList<UsageInfo>();
MultiMap<PsiElement, String> conflicts = new MultiMap<PsiElement, String>();
for (PsiElement element : myElementsToMove) {
String newName = getNewQName(element);
if (newName == null) continue;
final UsageInfo[] usages = MoveClassesOrPackagesUtil.findUsages(element, mySearchInComments,
mySearchInNonJavaFiles, newName);
- allUsages.addAll(new ArrayList<UsageInfo>(Arrays.asList(usages)));
+ final ArrayList<UsageInfo> infos = new ArrayList<UsageInfo>(Arrays.asList(usages));
+ allUsages.addAll(infos);
+ if (Comparing.strEqual(newName, getOldQName(element))) {
+ usagesToSkip.addAll(infos);
+ }
+
if (element instanceof PsiPackage) {
for (PsiDirectory directory : ((PsiPackage)element).getDirectories()) {
final UsageInfo[] dirUsages = MoveClassesOrPackagesUtil.findUsages(directory, mySearchInComments,
@@ -186,6 +192,7 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
}
}
+ allUsages.removeAll(usagesToSkip);
return UsageViewUtil.removeDuplicatedUsages(allUsages.toArray(new UsageInfo[allUsages.size()]));
}
@@ -411,23 +418,30 @@ public class MoveClassesOrPackagesProcessor extends BaseRefactoringProcessor {
@Nullable
private String getNewQName(PsiElement element) {
final String qualifiedName = myTargetPackage.getQualifiedName();
- final String newQName;
- final String oldQName;
if (element instanceof PsiClass) {
- newQName = StringUtil.getQualifiedName(qualifiedName, ((PsiClass)element).getName());
- oldQName = ((PsiClass)element).getQualifiedName();
+ return StringUtil.getQualifiedName(qualifiedName, ((PsiClass)element).getName());
+ }
+ else if (element instanceof PsiPackage) {
+ return StringUtil.getQualifiedName(qualifiedName, ((PsiPackage)element).getName());
+ }
+ else {
+ LOG.assertTrue(false);
+ return null;
+ }
+ }
+
+ @Nullable
+ private String getOldQName(PsiElement element) {
+ if (element instanceof PsiClass) {
+ return ((PsiClass)element).getQualifiedName();
}
else if (element instanceof PsiPackage) {
- newQName = StringUtil.getQualifiedName(qualifiedName, ((PsiPackage)element).getName());
- oldQName = ((PsiPackage)element).getQualifiedName();
+ return ((PsiPackage)element).getQualifiedName();
}
else {
LOG.assertTrue(false);
- newQName = null;
- oldQName = null;
+ return null;
}
- if (Comparing.strEqual(newQName, oldQName)) return null;
- return newQName;
}
protected void refreshElements(PsiElement[] elements) {