push ImportHelper usagef from ImportListElement to JavaPsiImplementationHelper

This commit is contained in:
Dmitry Jemerov
2011-09-20 12:55:19 +02:00
parent 4749ce7a0d
commit 92f26dd547
3 changed files with 25 additions and 15 deletions
@@ -15,9 +15,12 @@
*/
package com.intellij.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.components.ServiceManager;
import com.intellij.openapi.project.Project;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiImportList;
import com.intellij.psi.PsiImportStatementBase;
/**
* @author yole
@@ -26,6 +29,8 @@ public abstract class JavaPsiImplementationHelper {
public static JavaPsiImplementationHelper getInstance(Project project) {
return ServiceManager.getService(project, JavaPsiImplementationHelper.class);
}
public abstract PsiClass getOriginalClass(PsiClass psiClass);
public abstract ASTNode getDefaultImportAnchor(PsiImportList list, PsiImportStatementBase statement);
}
@@ -15,15 +15,17 @@
*/
package com.intellij.psi.impl;
import com.intellij.lang.ASTNode;
import com.intellij.openapi.module.Module;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.roots.OrderEntry;
import com.intellij.openapi.roots.ProjectFileIndex;
import com.intellij.openapi.roots.ProjectRootManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.JavaPsiFacade;
import com.intellij.psi.PsiClass;
import com.intellij.psi.PsiFile;
import com.intellij.psi.*;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.impl.source.codeStyle.ImportHelper;
import com.intellij.psi.search.GlobalSearchScope;
import org.jetbrains.annotations.NotNull;
@@ -73,4 +75,11 @@ public class JavaPsiImplementationHelperImpl extends JavaPsiImplementationHelper
return original != null ? original : psiClass;
}
@Override
public ASTNode getDefaultImportAnchor(PsiImportList list, PsiImportStatementBase statement) {
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(list.getProject());
ImportHelper importHelper = new ImportHelper(settings);
return importHelper.getDefaultAnchor(list, statement);
}
}
@@ -18,10 +18,8 @@ package com.intellij.psi.impl.source.tree.java;
import com.intellij.lang.ASTNode;
import com.intellij.psi.PsiImportList;
import com.intellij.psi.PsiImportStatementBase;
import com.intellij.psi.codeStyle.CodeStyleSettings;
import com.intellij.psi.codeStyle.CodeStyleSettingsManager;
import com.intellij.psi.impl.JavaPsiImplementationHelper;
import com.intellij.psi.impl.source.SourceTreeToPsiMap;
import com.intellij.psi.impl.source.codeStyle.ImportHelper;
import com.intellij.psi.impl.source.tree.CompositeElement;
import com.intellij.psi.impl.source.tree.JavaElementType;
import com.intellij.psi.impl.source.tree.TreeElement;
@@ -34,17 +32,15 @@ public class ImportListElement extends CompositeElement{
public TreeElement addInternal(TreeElement first, ASTNode last, ASTNode anchor, Boolean before){
if (before == null){
if (first == last && (first.getElementType() == JavaElementType.IMPORT_STATEMENT || first.getElementType() == JavaElementType.IMPORT_STATIC_STATEMENT)){
anchor = getDefaultAnchor((PsiImportList)SourceTreeToPsiMap.treeElementToPsi(this),
(PsiImportStatementBase)SourceTreeToPsiMap.treeElementToPsi(first));
final PsiImportList list = (PsiImportList)SourceTreeToPsiMap.treeElementToPsi(this);
final PsiImportStatementBase statement = (PsiImportStatementBase)SourceTreeToPsiMap.treeElementToPsi(first);
final JavaPsiImplementationHelper instance = JavaPsiImplementationHelper.getInstance(list.getProject());
if (instance != null) {
anchor = instance.getDefaultImportAnchor(list, statement);
}
before = Boolean.TRUE;
}
}
return super.addInternal(first, last, anchor, before);
}
public static ASTNode getDefaultAnchor(PsiImportList list, PsiImportStatementBase statement) {
CodeStyleSettings settings = CodeStyleSettingsManager.getSettings(list.getProject());
ImportHelper importHelper = new ImportHelper(settings);
return importHelper.getDefaultAnchor(list, statement);
}
}