From e72c38aabbc181065c24190e82214d7f8fe4144a Mon Sep 17 00:00:00 2001 From: "Pavel V. Talanov" Date: Sat, 6 Oct 2012 20:39:38 +0400 Subject: [PATCH] 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 --- .../resolve/java/JavaDescriptorResolver.java | 2 +- .../java/resolver/AnnotationResolver.java | 4 ++-- .../resolve/java/resolver/ClassResolver.java | 20 ++++++++----------- .../resolver/CompileTimeConstResolver.java | 12 +++++------ .../java/resolver/ConstructorResolver.java | 4 ++-- .../java/resolver/FunctionResolver.java | 10 +++++----- .../java/resolver/InnerClassResolver.java | 6 +++--- .../java/resolver/NamespaceResolver.java | 8 ++++---- .../java/resolver/PropertiesResolver.java | 2 +- .../java/resolver/ValueParameterResolver.java | 4 ++-- 10 files changed, 34 insertions(+), 38 deletions(-) diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java index 766481e2d5d..8e9983aa98d 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/JavaDescriptorResolver.java @@ -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() { diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java index f36f67e9dde..72b2dff253c 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/AnnotationResolver.java @@ -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 result = new ArrayList(); PsiModifierList list = owner.getModifierList(); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java index 3dc0a6cd7fd..066a50c2253 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ClassResolver.java @@ -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 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; diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/CompileTimeConstResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/CompileTimeConstResolver.java index f04cca50a1c..52a746469b8 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/CompileTimeConstResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/CompileTimeConstResolver.java @@ -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 taskList) { + private CompileTimeConstant getCompileTimeConstFromAnnotation(PsiAnnotation value, List 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 taskList @@ -100,7 +100,7 @@ public class CompileTimeConstResolver { return new ArrayValue(values, expectedArrayType); } - public List> getCompileTimeConstantForArrayValues( + private List> getCompileTimeConstantForArrayValues( FqName annotationQualifiedName, Name valueName, List taskList, @@ -119,7 +119,7 @@ public class CompileTimeConstResolver { } @Nullable - public CompileTimeConstant getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List taskList) { + private CompileTimeConstant getCompileTimeConstFromReferenceExpression(PsiReferenceExpression value, List 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); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ConstructorResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ConstructorResolver.java index b6634e4a0cb..a93ecc9b77b 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ConstructorResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ConstructorResolver.java @@ -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, diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java index ce9cb900576..f7338d47952 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/FunctionResolver.java @@ -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 methodTypeParameters = functionDescriptor.getValueParameters(); String methodName = functionDescriptor.getName().getName(); JetType nullableString = TypeUtils.makeNullable(JetStandardLibrary.getInstance().getStringType()); diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/InnerClassResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/InnerClassResolver.java index d84da9064e6..1cdb685d3e4 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/InnerClassResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/InnerClassResolver.java @@ -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 resolveInnerClassesOfClassObject(DeclarationDescriptor owner, PsiClass psiClass) { + private List resolveInnerClassesOfClassObject(DeclarationDescriptor owner, PsiClass psiClass) { if (!DescriptorUtils.isClassObject(owner)) { return new ArrayList(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 = diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java index 197de88c91e..271b38bec28 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/NamespaceResolver.java @@ -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); } diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java index 407d452895f..23c21410f3f 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/PropertiesResolver.java @@ -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, diff --git a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java index 86f1d2c8778..4f19adab12d 100644 --- a/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java +++ b/compiler/frontend.java/src/org/jetbrains/jet/lang/resolve/java/resolver/ValueParameterResolver.java @@ -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 ) {