JetFile#getImportList() and JetImportList#getImports() by stubs
This commit is contained in:
@@ -24,11 +24,13 @@ import com.intellij.psi.FileViewProvider;
|
||||
import com.intellij.psi.PsiClass;
|
||||
import com.intellij.psi.PsiClassOwner;
|
||||
import com.intellij.psi.PsiElementVisitor;
|
||||
import com.intellij.psi.stubs.StubElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.JetNodeTypes;
|
||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetFileStub;
|
||||
import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.plugin.JetFileType;
|
||||
import org.jetbrains.jet.plugin.JetLanguage;
|
||||
@@ -73,6 +75,11 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
|
||||
|
||||
@Nullable
|
||||
public JetImportList getImportList() {
|
||||
PsiJetFileStub stub = getStub();
|
||||
if (stub != null) {
|
||||
StubElement<JetImportList> importListStub = stub.findChildStubByType(JetStubElementTypes.IMPORT_LIST);
|
||||
return importListStub != null ? importListStub.getPsi() : null;
|
||||
}
|
||||
return findChildByClass(JetImportList.class);
|
||||
}
|
||||
|
||||
@@ -108,7 +115,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
|
||||
|
||||
@NotNull
|
||||
public FqName getPackageFqName() {
|
||||
PsiJetFileStub stub = (PsiJetFileStub) getStub();
|
||||
PsiJetFileStub stub = getStub();
|
||||
if (stub != null) {
|
||||
return stub.getPackageFqName();
|
||||
}
|
||||
@@ -120,6 +127,12 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
|
||||
return packageDirective.getFqName();
|
||||
}
|
||||
|
||||
@Override
|
||||
@Nullable
|
||||
public PsiJetFileStub getStub() {
|
||||
return (PsiJetFileStub) super.getStub();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public PsiClass[] getClasses() {
|
||||
@@ -136,7 +149,7 @@ public class JetFile extends PsiFileBase implements JetDeclarationContainer, Jet
|
||||
}
|
||||
|
||||
public boolean isScript() {
|
||||
PsiJetFileStub stub = (PsiJetFileStub) getStub();
|
||||
PsiJetFileStub stub = getStub();
|
||||
if (stub != null) {
|
||||
return stub.isScript();
|
||||
}
|
||||
|
||||
@@ -17,8 +17,8 @@
|
||||
package org.jetbrains.jet.lang.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.stubs.IStubElementType;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.util.ArrayFactory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetImportDirectiveStub;
|
||||
@@ -26,6 +26,15 @@ import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
public class JetImportDirective extends JetElementImplStub<PsiJetImportDirectiveStub> {
|
||||
public static final JetImportDirective[] EMPTY_ARRAY = new JetImportDirective[0];
|
||||
|
||||
public static final ArrayFactory<JetImportDirective> ARRAY_FACTORY = new ArrayFactory<JetImportDirective>() {
|
||||
@Override
|
||||
public JetImportDirective[] create(int count) {
|
||||
return count == 0 ? EMPTY_ARRAY : new JetImportDirective[count];
|
||||
}
|
||||
};
|
||||
|
||||
public JetImportDirective(@NotNull ASTNode node) {
|
||||
super(node);
|
||||
}
|
||||
|
||||
@@ -17,12 +17,11 @@
|
||||
package org.jetbrains.jet.lang.psi;
|
||||
|
||||
import com.intellij.lang.ASTNode;
|
||||
import com.intellij.psi.stubs.StubElement;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lang.psi.stubs.PsiJetImportListStub;
|
||||
import org.jetbrains.jet.lang.psi.stubs.elements.JetStubElementTypes;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
public class JetImportList extends JetElementImplStub<PsiJetImportListStub> {
|
||||
@@ -42,6 +41,6 @@ public class JetImportList extends JetElementImplStub<PsiJetImportListStub> {
|
||||
|
||||
@NotNull
|
||||
public List<JetImportDirective> getImports() {
|
||||
return PsiTreeUtil.getChildrenOfTypeAsList(this, JetImportDirective.class);
|
||||
return Arrays.asList(getStubOrPsiChildren(JetStubElementTypes.IMPORT_DIRECTIVE, JetImportDirective.ARRAY_FACTORY));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user