From 93705e4f6e2c50e02f937d174c16bd4603b39500 Mon Sep 17 00:00:00 2001 From: Alexey Kudravtsev Date: Thu, 23 May 2013 16:29:16 +0400 Subject: [PATCH] moved to psi --- .../extractclass/ExtractClassProcessor.java | 3 ++- .../usageInfo/BeanClassVisibilityUsageInfo.java | 5 +++-- .../MoveInstanceMethodProcessor.java | 3 ++- .../move/moveMembers/MoveMembersProcessor.java | 5 +++-- .../src/com/intellij/util/VisibilityUtil.java | 10 ++++------ .../listeners/impl/RefactoringTransaction.java | 2 -- .../src/com/intellij/usageView/UsageViewUtil.java | 13 +++++++++++++ 7 files changed, 27 insertions(+), 14 deletions(-) rename java/{openapi => java-psi-api}/src/com/intellij/util/VisibilityUtil.java (92%) diff --git a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java index 8aaf9412074c..d096db58b1cf 100644 --- a/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/extractclass/ExtractClassProcessor.java @@ -53,6 +53,7 @@ import com.intellij.refactoring.util.RefactoringUtil; import com.intellij.refactoring.util.classMembers.MemberInfo; import com.intellij.usageView.UsageInfo; import com.intellij.usageView.UsageViewDescriptor; +import com.intellij.usageView.UsageViewUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.VisibilityUtil; import com.intellij.util.containers.ContainerUtil; @@ -320,7 +321,7 @@ public class ExtractClassProcessor extends FixableUsagesRefactoringProcessor { super.performRefactoring(usageInfos); if (myNewVisibility == null) return; for (PsiMember member : members) { - VisibilityUtil.fixVisibility(usageInfos, member, myNewVisibility); + VisibilityUtil.fixVisibility(UsageViewUtil.toElements(usageInfos), member, myNewVisibility); } } diff --git a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/usageInfo/BeanClassVisibilityUsageInfo.java b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/usageInfo/BeanClassVisibilityUsageInfo.java index 31613801b54e..fab0644eeb22 100644 --- a/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/usageInfo/BeanClassVisibilityUsageInfo.java +++ b/java/java-impl/src/com/intellij/refactoring/introduceparameterobject/usageInfo/BeanClassVisibilityUsageInfo.java @@ -24,6 +24,7 @@ import com.intellij.psi.PsiClass; import com.intellij.psi.PsiMethod; import com.intellij.refactoring.util.FixableUsageInfo; import com.intellij.usageView.UsageInfo; +import com.intellij.usageView.UsageViewUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.VisibilityUtil; @@ -46,9 +47,9 @@ public class BeanClassVisibilityUsageInfo extends FixableUsageInfo { @Override public void fixUsage() throws IncorrectOperationException { - VisibilityUtil.fixVisibility(usages, existingClass, myNewVisibility); + VisibilityUtil.fixVisibility(UsageViewUtil.toElements(usages), existingClass, myNewVisibility); if (myExistingClassCompatibleConstructor != null) { - VisibilityUtil.fixVisibility(usages, myExistingClassCompatibleConstructor, myNewVisibility); + VisibilityUtil.fixVisibility(UsageViewUtil.toElements(usages), myExistingClassCompatibleConstructor, myNewVisibility); } } } diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodProcessor.java index 5784665f7e79..ca844f0a5bb9 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveInstanceMethod/MoveInstanceMethodProcessor.java @@ -34,6 +34,7 @@ import com.intellij.refactoring.move.MoveInstanceMembersUtil; import com.intellij.refactoring.util.*; import com.intellij.usageView.UsageInfo; import com.intellij.usageView.UsageViewDescriptor; +import com.intellij.usageView.UsageViewUtil; import com.intellij.util.IncorrectOperationException; import com.intellij.util.VisibilityUtil; import com.intellij.util.containers.HashSet; @@ -245,7 +246,7 @@ public class MoveInstanceMethodProcessor extends BaseRefactoringProcessor{ for (PsiReference reference : docRefs) { reference.bindToElement(method); } - VisibilityUtil.fixVisibility(usages, method, myNewVisibility); + VisibilityUtil.fixVisibility(UsageViewUtil.toElements(usages), method, myNewVisibility); } catch (IncorrectOperationException e) { LOG.error(e); diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java index 4efd85f9dd78..72a018a21781 100644 --- a/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java +++ b/java/java-impl/src/com/intellij/refactoring/move/moveMembers/MoveMembersProcessor.java @@ -203,7 +203,7 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor { final PsiElement anchor; if (anchorsInSourceClass.containsKey(member)) { final PsiMember memberInSourceClass = anchorsInSourceClass.get(member); - //anchor should be already moved as myMembersToMove contains members in order they appear in source class + //anchor should be already moved as myMembersToMove contains members in order they appear in source class anchor = memberInSourceClass != null ? movedMembers.get(memberInSourceClass) : null; } else { @@ -258,7 +258,8 @@ public class MoveMembersProcessor extends BaseRefactoringProcessor { filtered.add(usage); } } - VisibilityUtil.fixVisibility(filtered.toArray(new UsageInfo[filtered.size()]), newMember, myNewVisibility); + UsageInfo[] infos = filtered.toArray(new UsageInfo[filtered.size()]); + VisibilityUtil.fixVisibility(UsageViewUtil.toElements(infos), newMember, myNewVisibility); } protected boolean preprocessUsages(Ref refUsages) { diff --git a/java/openapi/src/com/intellij/util/VisibilityUtil.java b/java/java-psi-api/src/com/intellij/util/VisibilityUtil.java similarity index 92% rename from java/openapi/src/com/intellij/util/VisibilityUtil.java rename to java/java-psi-api/src/com/intellij/util/VisibilityUtil.java index ed443049cf0d..373e5befe7c7 100644 --- a/java/openapi/src/com/intellij/util/VisibilityUtil.java +++ b/java/java-psi-api/src/com/intellij/util/VisibilityUtil.java @@ -19,7 +19,7 @@ * User: dsl * Date: 07.06.2002 * Time: 18:48:01 - * To change template for new class use + * To change template for new class use * Code Style | Class Templates options (Tools | IDE Options). */ package com.intellij.util; @@ -28,7 +28,6 @@ import com.intellij.psi.*; import com.intellij.psi.util.InheritanceUtil; import com.intellij.psi.util.PsiTreeUtil; import com.intellij.psi.util.PsiUtil; -import com.intellij.usageView.UsageInfo; import org.jetbrains.annotations.Nls; import org.jetbrains.annotations.NonNls; @@ -46,7 +45,7 @@ public class VisibilityUtil { } public static int compare(@PsiModifier.ModifierConstant String v1, @PsiModifier.ModifierConstant String v2) { - return ArrayUtil.find(visibilityModifiers, v2) - ArrayUtil.find(visibilityModifiers, v1); + return ArrayUtilRt.find(visibilityModifiers, v2) - ArrayUtilRt.find(visibilityModifiers, v1); } @PsiModifier.ModifierConstant @@ -123,11 +122,10 @@ public class VisibilityUtil { return PsiBundle.visibilityPresentation(modifier); } - public static void fixVisibility(UsageInfo[] usageInfos, PsiMember member, @PsiModifier.ModifierConstant String newVisibility) { + public static void fixVisibility(PsiElement[] elements, PsiMember member, @PsiModifier.ModifierConstant String newVisibility) { if (newVisibility == null) return; if (ESCALATE_VISIBILITY.equals(newVisibility)) { - for (UsageInfo info : usageInfos) { - final PsiElement element = info.getElement(); + for (PsiElement element : elements) { if (element != null) { escalateVisibility(member, element); } diff --git a/platform/lang-impl/src/com/intellij/refactoring/listeners/impl/RefactoringTransaction.java b/platform/lang-impl/src/com/intellij/refactoring/listeners/impl/RefactoringTransaction.java index c79c515d1f9b..a44c05b73fbd 100644 --- a/platform/lang-impl/src/com/intellij/refactoring/listeners/impl/RefactoringTransaction.java +++ b/platform/lang-impl/src/com/intellij/refactoring/listeners/impl/RefactoringTransaction.java @@ -26,8 +26,6 @@ public interface RefactoringTransaction { /** * Returns listener for element (element must belong to set of affected elements). * Refactorings should call appropriate methods of a listener, giving a modified (or new) element. - * @param element - * @return */ RefactoringElementListener getElementListener(PsiElement element); diff --git a/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java b/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java index ffe6b3e4b365..c68b30103a63 100644 --- a/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java +++ b/platform/lang-impl/src/com/intellij/usageView/UsageViewUtil.java @@ -25,6 +25,8 @@ import com.intellij.psi.PsiFile; import com.intellij.psi.PsiReference; import com.intellij.refactoring.util.MoveRenameUsageInfo; import com.intellij.refactoring.util.NonCodeUsageInfo; +import com.intellij.util.Function; +import com.intellij.util.containers.ContainerUtil; import org.jetbrains.annotations.NotNull; import java.util.Arrays; @@ -123,4 +125,15 @@ public class UsageViewUtil { final int size = collection.size(); return size == 0 ? UsageInfo.EMPTY_ARRAY : collection.toArray(new UsageInfo[size]); } + + @NotNull + public static PsiElement[] toElements(@NotNull UsageInfo[] usageInfos) { + return ContainerUtil.map2Array(usageInfos, PsiElement.class, new Function() { + @Override + public PsiElement fun(UsageInfo info) { + return info.getElement(); + } + }); + } + }