Slightly refactor implementation of "local" auto import flavor

This commit is contained in:
Mikhail Golubev
2015-07-13 22:00:21 +03:00
parent 83aa7c24b6
commit a33f2d9dcc
@@ -36,6 +36,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.List;
@@ -47,12 +48,10 @@ import java.util.List;
*/
public class AutoImportQuickFix extends LocalQuickFixOnPsiElement implements HighPriorityAction {
private final PsiReference myReference;
protected final PsiReference myReference;
protected final List<ImportCandidateHolder> myImports; // from where and what to import
private final String myInitialName;
boolean myUseQualifiedImport;
protected final String myInitialName;
protected final boolean myUseQualifiedImport;
private boolean myExpended;
/**
@@ -61,10 +60,15 @@ public class AutoImportQuickFix extends LocalQuickFixOnPsiElement implements Hig
* @param name name to import
* @param qualify if true, add an "import ..." statement and qualify the name; else use "from ... import name"
*/
public AutoImportQuickFix(PsiElement node, PsiReference reference, String name, boolean qualify) {
public AutoImportQuickFix(@NotNull PsiElement node, @NotNull PsiReference reference, @NotNull String name, boolean qualify) {
this(node, reference, name, qualify, Collections.<ImportCandidateHolder>emptyList());
}
protected AutoImportQuickFix(@NotNull PsiElement node, @NotNull PsiReference reference, @NotNull String name, boolean qualify,
@NotNull Collection<ImportCandidateHolder> candidates) {
super(node);
myReference = reference;
myImports = new ArrayList<ImportCandidateHolder>();
myImports = new ArrayList<ImportCandidateHolder>(candidates);
myInitialName = name;
myUseQualifiedImport = qualify;
myExpended = false;
@@ -199,15 +203,7 @@ public class AutoImportQuickFix extends LocalQuickFixOnPsiElement implements Hig
@NotNull
public AutoImportQuickFix forLocalImport() {
return new AutoImportQuickFix(AutoImportQuickFix.this.getStartElement(),
AutoImportQuickFix.this.myReference,
AutoImportQuickFix.this.myInitialName,
AutoImportQuickFix.this.myUseQualifiedImport) {
{
myImports.addAll(AutoImportQuickFix.this.myImports);
}
return new AutoImportQuickFix(getStartElement(), myReference, myInitialName, myUseQualifiedImport, myImports) {
@NotNull
@Override
public String getFamilyName() {
@@ -223,7 +219,7 @@ public class AutoImportQuickFix extends LocalQuickFixOnPsiElement implements Hig
@NotNull
@Override
protected ImportFromExistingAction createAction() {
return new ImportFromExistingAction(getStartElement(), AutoImportQuickFix.this.myImports, AutoImportQuickFix.this.myInitialName, myUseQualifiedImport, true);
return new ImportFromExistingAction(getStartElement(), myImports, myInitialName, myUseQualifiedImport, true);
}
};
}