QuickFixFactoryImpl#createOptimizeImportsFix: anonymous class extracted to avoid capturing the factory

GitOrigin-RevId: 94824e6508dd832707a52d519558ac323d10dcad
This commit is contained in:
Tagir Valeev
2020-04-21 08:30:55 +00:00
committed by intellij-monorepo-bot
parent e0614baee3
commit cc1231f71d
@@ -608,34 +608,7 @@ public class QuickFixFactoryImpl extends QuickFixFactory {
@NotNull
@Override
public IntentionAction createOptimizeImportsFix(final boolean onTheFly) {
return new IntentionAction() {
@NotNull
@Override
public String getText() {
return QuickFixBundle.message("optimize.imports.fix");
}
@NotNull
@Override
public String getFamilyName() {
return QuickFixBundle.message("optimize.imports.fix");
}
@Override
public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
return (!onTheFly || timeToOptimizeImports(file)) && file instanceof PsiJavaFile && BaseIntentionAction.canModify(file);
}
@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
invokeOnTheFlyImportOptimizer(file);
}
@Override
public boolean startInWriteAction() {
return true;
}
};
return new OptimizeImportsAction(onTheFly);
}
@Override
@@ -911,4 +884,37 @@ public class QuickFixFactoryImpl extends QuickFixFactory {
public IntentionAction createAddEmptyRecordHeaderFix(PsiClass psiClass) {
return new AddEmptyRecordHeaderFix(psiClass);
}
private static class OptimizeImportsAction implements IntentionAction {
private final boolean myOnTheFly;
public OptimizeImportsAction(boolean onTheFly) {myOnTheFly = onTheFly;}
@NotNull
@Override
public String getText() {
return QuickFixBundle.message("optimize.imports.fix");
}
@NotNull
@Override
public String getFamilyName() {
return QuickFixBundle.message("optimize.imports.fix");
}
@Override
public boolean isAvailable(@NotNull Project project, Editor editor, PsiFile file) {
return (!myOnTheFly || timeToOptimizeImports(file)) && file instanceof PsiJavaFile && BaseIntentionAction.canModify(file);
}
@Override
public void invoke(@NotNull final Project project, final Editor editor, final PsiFile file) throws IncorrectOperationException {
invokeOnTheFlyImportOptimizer(file);
}
@Override
public boolean startInWriteAction() {
return true;
}
}
}