summaryrefslogtreecommitdiff
path: root/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java
diff options
context:
space:
mode:
Diffstat (limited to 'java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java')
-rw-r--r--java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java36
1 files changed, 6 insertions, 30 deletions
diff --git a/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java b/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java
index d4239e578016..d56b8c02844e 100644
--- a/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java
+++ b/java/java-impl/src/com/intellij/refactoring/move/moveInner/MoveInnerProcessor.java
@@ -214,35 +214,11 @@ public class MoveInnerProcessor extends BaseRefactoringProcessor {
// correct references in usages
for (UsageInfo usage : usages) {
- if (usage.isNonCodeUsage) continue;
- PsiElement refElement = usage.getElement();
- if (myParameterNameOuterClass != null) { // should pass outer as parameter
- PsiElement refParent = refElement.getParent();
- if (refParent instanceof PsiNewExpression || refParent instanceof PsiAnonymousClass) {
- PsiNewExpression newExpr = refParent instanceof PsiNewExpression
- ? (PsiNewExpression)refParent
- : (PsiNewExpression)refParent.getParent();
-
- PsiExpressionList argList = newExpr.getArgumentList();
-
- if (argList != null) { // can happen in incomplete code
- if (newExpr.getQualifier() == null) {
- PsiThisExpression thisExpr;
- PsiClass parentClass = RefactoringChangeUtil.getThisClass(newExpr);
- if (myOuterClass.equals(parentClass)) {
- thisExpr = RefactoringChangeUtil.createThisExpression(manager, null);
- }
- else {
- thisExpr = RefactoringChangeUtil.createThisExpression(manager, myOuterClass);
- }
- argList.addAfter(thisExpr, null);
- }
- else {
- argList.addAfter(newExpr.getQualifier(), null);
- newExpr.getQualifier().delete();
- }
- }
- }
+ if (usage.isNonCodeUsage || myParameterNameOuterClass == null) continue; // should pass outer as parameter
+
+ MoveInnerClassUsagesHandler usagesHandler = MoveInnerClassUsagesHandler.EP_NAME.forLanguage(usage.getElement().getLanguage());
+ if (usagesHandler != null) {
+ usagesHandler.correctInnerClassUsage(usage, myOuterClass);
}
}
@@ -554,4 +530,4 @@ public class MoveInnerProcessor extends BaseRefactoringProcessor {
public String getParameterName() {
return myParameterNameOuterClass;
}
-}
+} \ No newline at end of file