protected void performRefactoring(@NotNull UsageInfo[] usages) { final PsiMigration psiMigration = PsiMigrationManager.getInstance(myProject).startMigration(); LocalHistoryAction a = LocalHistory.getInstance().startAction(getCommandName()); try { for (int i = 0; i < myMigrationMap.getEntryCount(); i++) { MigrationMapEntry entry = myMigrationMap.getEntryAt(i); if (entry.getType() == MigrationMapEntry.PACKAGE) { MigrationUtil.doPackageMigration(myProject, psiMigration, entry.getNewName(), usages); } if (entry.getType() == MigrationMapEntry.CLASS) { MigrationUtil.doClassMigration(myProject, psiMigration, entry.getNewName(), usages); } } for(RefactoringHelper helper: Extensions.getExtensions(RefactoringHelper.EP_NAME)) { Object preparedData = helper.prepareOperation(usages); //noinspection unchecked helper.performOperation(myProject, preparedData); } } finally { a.finish(); psiMigration.finish(); } }
protected void performRefactoring(UsageInfo[] usages) { final PsiMigration psiMigration = PsiMigrationManager.getInstance(myProject).startMigration(); LocalHistoryAction a = LocalHistory.getInstance().startAction(getCommandName()); try { for (int i = 0; i < myMigrationMap.getEntryCount(); i++) { MigrationMapEntry entry = myMigrationMap.getEntryAt(i); if (entry.getType() == MigrationMapEntry.PACKAGE) { MigrationUtil.doPackageMigration(myProject, psiMigration, entry.getNewName(), usages); } if (entry.getType() == MigrationMapEntry.CLASS) { MigrationUtil.doClassMigration(myProject, psiMigration, entry.getNewName(), usages); } } for(RefactoringHelper helper: Extensions.getExtensions(RefactoringHelper.EP_NAME)) { Object preparedData = helper.prepareOperation(usages); //noinspection unchecked helper.performOperation(myProject, preparedData); } } finally { a.finish(); psiMigration.finish(); } }
@Override protected void performRefactoring(@NotNull UsageInfo[] usages) { finishFindMigration(); final PsiMigration psiMigration = PsiMigrationManager.getInstance(myProject).startMigration(); LocalHistoryAction a = LocalHistory.getInstance().startAction(getCommandName()); myRefsToShorten = new ArrayList<>(); try { boolean sameShortNames = false; for(int i = 0; i < myMigrationMap.getEntryCount(); i++) { MigrationMapEntry entry = myMigrationMap.getEntryAt(i); String newName = entry.getNewName(); PsiElement element = entry.getType() == MigrationMapEntry.PACKAGE ? MigrationUtil.findOrCreatePackage(myProject, psiMigration, newName) : MigrationUtil.findOrCreateClass(myProject, psiMigration, newName); MigrationUtil.doMigration(element, newName, usages, myRefsToShorten); if(!sameShortNames && Comparing.strEqual(StringUtil.getShortName(entry.getOldName()), StringUtil.getShortName(entry.getNewName()))) { sameShortNames = true; } } if(!sameShortNames) { myRefsToShorten.clear(); } } finally { a.finish(); psiMigration.finish(); } }
private PsiMigration startMigration(Project project) { final PsiMigration migration = PsiMigrationManager.getInstance(project).startMigration(); findOrCreateEntries(project, migration); return migration; }