Utility method moved to util class

This commit is contained in:
Andrey Breslav
2012-12-24 21:22:37 +04:00
parent 207f8e7c47
commit bf4fbe4aff
2 changed files with 22 additions and 18 deletions
@@ -25,11 +25,9 @@ import com.intellij.openapi.util.Key;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.*; import com.intellij.psi.*;
import com.intellij.psi.impl.PsiClassImplUtil; import com.intellij.psi.impl.PsiClassImplUtil;
import com.intellij.psi.impl.java.stubs.PsiClassStub;
import com.intellij.psi.impl.java.stubs.PsiJavaFileStub; import com.intellij.psi.impl.java.stubs.PsiJavaFileStub;
import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl; import com.intellij.psi.impl.java.stubs.impl.PsiJavaFileStubImpl;
import com.intellij.psi.impl.light.AbstractLightClass; import com.intellij.psi.impl.light.AbstractLightClass;
import com.intellij.psi.stubs.PsiFileStub;
import com.intellij.psi.stubs.StubElement; import com.intellij.psi.stubs.StubElement;
import com.intellij.psi.util.*; import com.intellij.psi.util.*;
import com.intellij.util.containers.Stack; import com.intellij.util.containers.Stack;
@@ -108,7 +106,7 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa
@Override @Override
public PsiClass getDelegate() { public PsiClass getDelegate() {
if (delegate == null) { if (delegate == null) {
delegate = findClass(qualifiedName, getStub()); delegate = LightClassUtil.findClass(qualifiedName, getStub());
if (delegate == null) { if (delegate == null) {
throw new IllegalStateException("Class not found for qualified name: " + qualifiedName); throw new IllegalStateException("Class not found for qualified name: " + qualifiedName);
} }
@@ -121,21 +119,6 @@ public class JetLightClass extends AbstractLightClass implements JetJavaMirrorMa
return file; return file;
} }
private static PsiClass findClass(FqName fqn, StubElement<?> stub) {
if (stub instanceof PsiClassStub && Comparing.equal(fqn.getFqName(), ((PsiClassStub)stub).getQualifiedName())) {
return (PsiClass)stub.getPsi();
}
if (stub instanceof PsiClassStub || stub instanceof PsiFileStub) {
for (StubElement child : stub.getChildrenStubs()) {
PsiClass answer = findClass(fqn, child);
if (answer != null) return answer;
}
}
return null;
}
@Override @Override
public String getQualifiedName() { public String getQualifiedName() {
return qualifiedName.getFqName(); return qualifiedName.getFqName();
@@ -17,8 +17,13 @@
package org.jetbrains.jet.asJava; package org.jetbrains.jet.asJava;
import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.SystemInfo; import com.intellij.openapi.util.SystemInfo;
import com.intellij.openapi.vfs.VirtualFile; import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.psi.PsiClass;
import com.intellij.psi.impl.java.stubs.PsiClassStub;
import com.intellij.psi.stubs.PsiFileStub;
import com.intellij.psi.stubs.StubElement;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.lang.psi.JetFile; import org.jetbrains.jet.lang.psi.JetFile;
@@ -81,4 +86,20 @@ public class LightClassUtil {
} }
private LightClassUtil() {} private LightClassUtil() {}
@Nullable
/*package*/ static PsiClass findClass(@NotNull FqName fqn, @NotNull StubElement<?> stub) {
if (stub instanceof PsiClassStub && Comparing.equal(fqn.getFqName(), ((PsiClassStub) stub).getQualifiedName())) {
return (PsiClass)stub.getPsi();
}
if (stub instanceof PsiClassStub || stub instanceof PsiFileStub) {
for (StubElement child : stub.getChildrenStubs()) {
PsiClass answer = findClass(fqn, child);
if (answer != null) return answer;
}
}
return null;
}
} }