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:
+1
-1
@@ -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() {
|
||||
|
||||
+2
-2
@@ -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();
|
||||
|
||||
+8
-12
@@ -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;
|
||||
|
||||
+6
-6
@@ -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);
|
||||
|
||||
+2
-2
@@ -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,
|
||||
|
||||
+5
-5
@@ -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());
|
||||
|
||||
+3
-3
@@ -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 =
|
||||
|
||||
+4
-4
@@ -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);
|
||||
}
|
||||
|
||||
+1
-1
@@ -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,
|
||||
|
||||
+2
-2
@@ -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
|
||||
) {
|
||||
|
||||
Reference in New Issue
Block a user