diff options
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.java | 36 |
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 |