Make members in *Resolver classes private where possible and classes themselves final

Overall: very roughly split monster class JavaDescriptorResolver into smaller pieces of functionality represented by *ResolverClasses
It by no means improves abstraction (and no significant changes to the logic has been made) but makes the whole subsystem more structured and easier to understand/modify in the future
This commit is contained in:
Pavel V. Talanov
2012-10-06 20:39:38 +04:00
parent cae349d4f0
commit e72c38aabb
10 changed files with 34 additions and 38 deletions
@@ -145,7 +145,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
@Override
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName) {
return classResolver.resolveClass(qualifiedName);
return classResolver.resolveClass(qualifiedName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
}
public PsiClassFinder getPsiClassFinder() {
@@ -36,7 +36,7 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class AnnotationResolver {
public final class AnnotationResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public AnnotationResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -115,7 +115,7 @@ public class AnnotationResolver {
}
@NotNull
public static PsiAnnotation[] getAllAnnotations(@NotNull PsiModifierListOwner owner) {
private static PsiAnnotation[] getAllAnnotations(@NotNull PsiModifierListOwner owner) {
List<PsiAnnotation> result = new ArrayList<PsiAnnotation>();
PsiModifierList list = owner.getModifierList();
@@ -56,7 +56,7 @@ import static org.jetbrains.jet.lang.resolve.DescriptorResolver.createEnumClassO
import static org.jetbrains.jet.lang.resolve.DescriptorResolver.createEnumClassObjectValuesMethod;
import static org.jetbrains.jet.lang.resolve.DescriptorUtils.getClassObjectName;
public class ClassResolver {
public final class ClassResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public ClassResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -73,10 +73,6 @@ public class ClassResolver {
return clazz;
}
public ClassDescriptor resolveClass(@NotNull FqName qualifiedName) {
return resolveClass(qualifiedName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
}
public ClassDescriptor resolveClass(
@NotNull FqName qualifiedName,
@NotNull DescriptorSearchRule searchRule,
@@ -130,7 +126,7 @@ public class ClassResolver {
}
@NotNull
public JavaDescriptorResolveData.ResolverClassData createJavaClassDescriptor(
private JavaDescriptorResolveData.ResolverClassData createJavaClassDescriptor(
@NotNull final PsiClass psiClass,
List<Runnable> taskList
) {
@@ -208,7 +204,7 @@ public class ClassResolver {
}
@Nullable
public MutableClassDescriptorLite createClassObjectDescriptor(
private MutableClassDescriptorLite createClassObjectDescriptor(
@NotNull ClassDescriptor containing,
@NotNull PsiClass psiClass
) {
@@ -248,7 +244,7 @@ public class ClassResolver {
return classObjectDescriptor;
}
public void setUpClassObjectDescriptor(
private void setUpClassObjectDescriptor(
@NotNull ClassDescriptor containing,
@NotNull FqNameBase fqName,
@NotNull JavaDescriptorResolveData.ResolverClassData data,
@@ -401,7 +397,7 @@ public class ClassResolver {
}
@NotNull
public ClassOrNamespaceDescriptor resolveParentDescriptor(@NotNull PsiClass psiClass) {
private ClassOrNamespaceDescriptor resolveParentDescriptor(@NotNull PsiClass psiClass) {
final String qualifiedName = psiClass.getQualifiedName();
assert qualifiedName != null;
FqName fqName = new FqName(qualifiedName);
@@ -434,7 +430,7 @@ public class ClassResolver {
}
@Nullable
public ClassDescriptor resolveJavaLangObject() {
private ClassDescriptor resolveJavaLangObject() {
ClassDescriptor clazz = resolveClass(JavaDescriptorResolver.OBJECT_FQ_NAME, DescriptorSearchRule.IGNORE_IF_FOUND_IN_KOTLIN);
if (clazz == null) {
// TODO: warning
@@ -442,7 +438,7 @@ public class ClassResolver {
return clazz;
}
public static ClassKind getClassKind(@NotNull PsiClass psiClass, @NotNull JetClassAnnotation jetClassAnnotation) {
private static ClassKind getClassKind(@NotNull PsiClass psiClass, @NotNull JetClassAnnotation jetClassAnnotation) {
if (psiClass.isInterface()) {
return (psiClass.isAnnotationType() ? ClassKind.ANNOTATION_CLASS : ClassKind.TRAIT);
}
@@ -457,7 +453,7 @@ public class ClassResolver {
}
@Nullable
public static PsiClass getInnerClassClassObject(@NotNull PsiClass outer) {
private static PsiClass getInnerClassClassObject(@NotNull PsiClass outer) {
for (PsiClass inner : outer.getInnerClasses()) {
if (inner.getName().equals(JvmAbi.CLASS_OBJECT_CLASS_NAME)) {
return inner;
@@ -39,7 +39,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class CompileTimeConstResolver {
public final class CompileTimeConstResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public CompileTimeConstResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -71,7 +71,7 @@ public class CompileTimeConstResolver {
}
@Nullable
public CompileTimeConstant<?> getCompileTimeConstFromAnnotation(PsiAnnotation value, List<Runnable> taskList) {
private CompileTimeConstant<?> getCompileTimeConstFromAnnotation(PsiAnnotation value, List<Runnable> taskList) {
AnnotationDescriptor annotationDescriptor = javaDescriptorResolver.resolveAnnotation(value, taskList);
if (annotationDescriptor != null) {
return new AnnotationValue(annotationDescriptor);
@@ -80,7 +80,7 @@ public class CompileTimeConstResolver {
}
@Nullable
public CompileTimeConstant<?> getCompileTimeConstFromArrayExpression(
private CompileTimeConstant<?> getCompileTimeConstFromArrayExpression(
FqName annotationFqName,
Name valueName, PsiArrayInitializerMemberValue value,
List<Runnable> taskList
@@ -100,7 +100,7 @@ public class CompileTimeConstResolver {
return new ArrayValue(values, expectedArrayType);
}
public List<CompileTimeConstant<?>> getCompileTimeConstantForArrayValues(
private List<CompileTimeConstant<?>> getCompileTimeConstantForArrayValues(
FqName annotationQualifiedName,
Name valueName,
List<Runnable> taskList,
@@ -119,7 +119,7 @@ public class CompileTimeConstResolver {
}
@Nullable
public CompileTimeConstant<?> getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List<Runnable> taskList) {
private CompileTimeConstant<?> getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List<Runnable> taskList) {
PsiElement resolveElement = value.resolve();
if (resolveElement instanceof PsiEnumConstant) {
PsiElement psiElement = resolveElement.getParent();
@@ -157,7 +157,7 @@ public class CompileTimeConstResolver {
}
@Nullable
public static CompileTimeConstant<?> getCompileTimeConstFromLiteralExpression(PsiLiteralExpression value) {
private static CompileTimeConstant<?> getCompileTimeConstFromLiteralExpression(PsiLiteralExpression value) {
Object literalValue = value.getValue();
if (literalValue instanceof String) {
return new StringValue((String) literalValue);
@@ -35,7 +35,7 @@ import java.util.Collection;
import java.util.Collections;
import java.util.List;
public class ConstructorResolver {
public final class ConstructorResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public ConstructorResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -142,7 +142,7 @@ public class ConstructorResolver {
}
@Nullable
public ConstructorDescriptor resolveConstructor(
private ConstructorDescriptor resolveConstructor(
PsiClass psiClass,
JavaDescriptorResolveData.ResolverClassData classData,
boolean aStatic,
@@ -40,7 +40,7 @@ import org.jetbrains.jet.lang.types.lang.JetStandardLibrary;
import java.util.*;
public class FunctionResolver {
public final class FunctionResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public FunctionResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -48,7 +48,7 @@ public class FunctionResolver {
}
@Nullable
public SimpleFunctionDescriptor resolveMethodToFunctionDescriptor(
private SimpleFunctionDescriptor resolveMethodToFunctionDescriptor(
@NotNull final PsiClass psiClass, final PsiMethodWrapper method,
@NotNull JavaDescriptorResolveData.ResolverScopeData scopeData
) {
@@ -136,7 +136,7 @@ public class FunctionResolver {
return functionDescriptorImpl;
}
public void resolveNamedGroupFunctions(
private void resolveNamedGroupFunctions(
@NotNull ClassOrNamespaceDescriptor owner, PsiClass psiClass,
NamedMembers namedMembers, Name methodName, JavaDescriptorResolveData.ResolverScopeData scopeData
) {
@@ -208,7 +208,7 @@ public class FunctionResolver {
}
}
public JetType makeReturnType(
private JetType makeReturnType(
PsiType returnType, PsiMethodWrapper method,
@NotNull TypeVariableResolver typeVariableResolver
) {
@@ -264,7 +264,7 @@ public class FunctionResolver {
return functions;
}
public static boolean isEnumSpecialMethod(@NotNull FunctionDescriptor functionDescriptor) {
private static boolean isEnumSpecialMethod(@NotNull FunctionDescriptor functionDescriptor) {
List<ValueParameterDescriptor> methodTypeParameters = functionDescriptor.getValueParameters();
String methodName = functionDescriptor.getName().getName();
JetType nullableString = TypeUtils.makeNullable(JetStandardLibrary.getInstance().getStringType());
@@ -31,7 +31,7 @@ import org.jetbrains.jet.lang.resolve.name.FqName;
import java.util.ArrayList;
import java.util.List;
public class InnerClassResolver {
public final class InnerClassResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public InnerClassResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -63,7 +63,7 @@ public class InnerClassResolver {
return r;
}
public List<ClassDescriptor> resolveInnerClassesOfClassObject(DeclarationDescriptor owner, PsiClass psiClass) {
private List<ClassDescriptor> resolveInnerClassesOfClassObject(DeclarationDescriptor owner, PsiClass psiClass) {
if (!DescriptorUtils.isClassObject(owner)) {
return new ArrayList<ClassDescriptor>(0);
}
@@ -80,7 +80,7 @@ public class InnerClassResolver {
return r;
}
public ClassDescriptor resolveInnerClass(@NotNull PsiClass innerPsiClass) {
private ClassDescriptor resolveInnerClass(@NotNull PsiClass innerPsiClass) {
String name = innerPsiClass.getQualifiedName();
assert name != null : "Inner class has no qualified name";
ClassDescriptor classDescriptor =
@@ -32,7 +32,7 @@ import org.jetbrains.jet.lang.resolve.name.Name;
import java.util.Collections;
public class NamespaceResolver {
public final class NamespaceResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
public NamespaceResolver(JavaDescriptorResolver javaDescriptorResolver) {
@@ -93,7 +93,7 @@ public class NamespaceResolver {
return resolveNamespace(qualifiedName, DescriptorSearchRule.ERROR_IF_FOUND_IN_KOTLIN);
}
public NamespaceDescriptorParent resolveParentNamespace(FqName fqName) {
private NamespaceDescriptorParent resolveParentNamespace(FqName fqName) {
if (fqName.isRoot()) {
return JavaDescriptorResolver.FAKE_ROOT_MODULE;
}
@@ -103,7 +103,7 @@ public class NamespaceResolver {
}
@Nullable
public JavaDescriptorResolveData.ResolverNamespaceData createNamespaceResolverScopeData(
private JavaDescriptorResolveData.ResolverNamespaceData createNamespaceResolverScopeData(
@NotNull FqName fqName,
@NotNull NamespaceDescriptor ns
) {
@@ -170,7 +170,7 @@ public class NamespaceResolver {
}
@Nullable
public PsiClass getPsiClassForJavaPackageScope(@NotNull FqName packageFQN) {
private PsiClass getPsiClassForJavaPackageScope(@NotNull FqName packageFQN) {
return javaDescriptorResolver.getPsiClassFinder()
.findPsiClass(packageFQN.child(Name.identifier(JvmAbi.PACKAGE_CLASS)), PsiClassFinder.RuntimeClassesHandleMode.IGNORE);
}
@@ -117,7 +117,7 @@ public final class PropertiesResolver {
this.javaDescriptorSignatureResolver = javaDescriptorSignatureResolver;
}
public void resolveNamedGroupProperties(
private void resolveNamedGroupProperties(
@NotNull ClassOrNamespaceDescriptor owner,
@NotNull ResolverScopeData scopeData,
@NotNull NamedMembers namedMembers,
@@ -37,7 +37,7 @@ import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class ValueParameterResolver {
public final class ValueParameterResolver {
private final JavaDescriptorResolver javaDescriptorResolver;
@@ -46,7 +46,7 @@ public class ValueParameterResolver {
}
@NotNull
public JvmMethodParameterMeaning resolveParameterDescriptor(
private JvmMethodParameterMeaning resolveParameterDescriptor(
DeclarationDescriptor containingDeclaration, int i,
PsiParameterWrapper parameter, TypeVariableResolver typeVariableResolver
) {