Minor refactoring in JavaInnerClassResolver

This commit is contained in:
Pavel V. Talanov
2012-10-15 15:15:51 +04:00
parent 5c20a07c00
commit 9398bb7026
@@ -45,11 +45,17 @@ public final class JavaInnerClassResolver {
this.classResolver = classResolver; this.classResolver = classResolver;
} }
public List<ClassDescriptor> resolveInnerClasses(DeclarationDescriptor owner, PsiClass psiClass, boolean staticMembers) { @NotNull
public List<ClassDescriptor> resolveInnerClasses(@NotNull DeclarationDescriptor owner, @NotNull PsiClass psiClass, boolean staticMembers) {
if (staticMembers) { if (staticMembers) {
return resolveInnerClassesOfClassObject(owner, psiClass); return resolveInnerClassesOfClassObject(owner, psiClass);
} }
return resolveInnerClasses(owner, psiClass);
}
@NotNull
private List<ClassDescriptor> resolveInnerClasses(@NotNull DeclarationDescriptor owner, @NotNull PsiClass psiClass) {
PsiClass[] innerPsiClasses = psiClass.getInnerClasses(); PsiClass[] innerPsiClasses = psiClass.getInnerClasses();
List<ClassDescriptor> result = new ArrayList<ClassDescriptor>(innerPsiClasses.length); List<ClassDescriptor> result = new ArrayList<ClassDescriptor>(innerPsiClasses.length);
for (PsiClass innerPsiClass : innerPsiClasses) { for (PsiClass innerPsiClass : innerPsiClasses) {
@@ -69,14 +75,14 @@ public final class JavaInnerClassResolver {
|| DescriptorResolverUtils.isInnerEnum(innerPsiClass, owner); || DescriptorResolverUtils.isInnerEnum(innerPsiClass, owner);
} }
private List<ClassDescriptor> resolveInnerClassesOfClassObject(DeclarationDescriptor owner, PsiClass psiClass) { private List<ClassDescriptor> resolveInnerClassesOfClassObject(@NotNull DeclarationDescriptor classObject, @NotNull PsiClass psiClass) {
if (!DescriptorUtils.isClassObject(owner)) { if (!DescriptorUtils.isClassObject(classObject)) {
return Collections.emptyList(); return Collections.emptyList();
} }
List<ClassDescriptor> result = Lists.newArrayList(); List<ClassDescriptor> result = Lists.newArrayList();
// If we're a class object, inner enums of our parent need to be put into us // If we're a class object, inner enums of our parent need to be put into us
DeclarationDescriptor containingDeclaration = owner.getContainingDeclaration(); DeclarationDescriptor containingDeclaration = classObject.getContainingDeclaration();
for (PsiClass innerPsiClass : psiClass.getInnerClasses()) { for (PsiClass innerPsiClass : psiClass.getInnerClasses()) {
if (DescriptorResolverUtils.isInnerEnum(innerPsiClass, containingDeclaration)) { if (DescriptorResolverUtils.isInnerEnum(innerPsiClass, containingDeclaration)) {
ClassDescriptor classDescriptor = resolveInnerClass(innerPsiClass); ClassDescriptor classDescriptor = resolveInnerClass(innerPsiClass);
@@ -86,6 +92,7 @@ public final class JavaInnerClassResolver {
return result; return result;
} }
@NotNull
private ClassDescriptor resolveInnerClass(@NotNull PsiClass innerPsiClass) { private ClassDescriptor resolveInnerClass(@NotNull PsiClass innerPsiClass) {
String name = innerPsiClass.getQualifiedName(); String name = innerPsiClass.getQualifiedName();
assert name != null : "Inner class has no qualified name"; assert name != null : "Inner class has no qualified name";