Refactor JDR: minor, extract class
This commit is contained in:
+3
-19
@@ -22,10 +22,9 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
|
|||||||
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
|
||||||
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
|
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
import org.jetbrains.jet.lang.resolve.java.lazy.GlobalJavaResolverContext;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaClassResolver;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaClassResolverWithCache;
|
||||||
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
import org.jetbrains.jet.lang.resolve.java.lazy.LazyJavaPackageFragmentProvider;
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
import org.jetbrains.jet.lang.resolve.java.resolver.*;
|
||||||
import org.jetbrains.jet.lang.resolve.java.structure.JavaClass;
|
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
import org.jetbrains.jet.lang.resolve.kotlin.DeserializedDescriptorResolver;
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.KotlinClassFinder;
|
import org.jetbrains.jet.lang.resolve.kotlin.KotlinClassFinder;
|
||||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||||
@@ -46,7 +45,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
ExternalSignatureResolver externalSignatureResolver,
|
ExternalSignatureResolver externalSignatureResolver,
|
||||||
ErrorReporter errorReporter,
|
ErrorReporter errorReporter,
|
||||||
MethodSignatureChecker signatureChecker,
|
MethodSignatureChecker signatureChecker,
|
||||||
final JavaResolverCache javaResolverCache,
|
JavaResolverCache javaResolverCache,
|
||||||
DeserializedDescriptorResolver deserializedDescriptorResolver,
|
DeserializedDescriptorResolver deserializedDescriptorResolver,
|
||||||
KotlinClassFinder kotlinClassFinder,
|
KotlinClassFinder kotlinClassFinder,
|
||||||
ModuleDescriptor module
|
ModuleDescriptor module
|
||||||
@@ -58,22 +57,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
|
|||||||
javaClassFinder,
|
javaClassFinder,
|
||||||
kotlinClassFinder,
|
kotlinClassFinder,
|
||||||
deserializedDescriptorResolver,
|
deserializedDescriptorResolver,
|
||||||
new LazyJavaClassResolver() {
|
new LazyJavaClassResolverWithCache(javaResolverCache),
|
||||||
@Override
|
|
||||||
public ClassDescriptor resolveClass(JavaClass aClass) {
|
|
||||||
FqName fqName = aClass.getFqName();
|
|
||||||
if (fqName != null) {
|
|
||||||
return resolveClassByFqName(fqName);
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public ClassDescriptor resolveClassByFqName(FqName fqName) {
|
|
||||||
return javaResolverCache.getClassResolvedFromSource(fqName);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
externalAnnotationResolver,
|
externalAnnotationResolver,
|
||||||
externalSignatureResolver,
|
externalSignatureResolver,
|
||||||
errorReporter,
|
errorReporter,
|
||||||
|
|||||||
@@ -26,12 +26,27 @@ import org.jetbrains.jet.lang.resolve.name.FqName
|
|||||||
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader
|
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader
|
||||||
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader.Kind
|
import org.jetbrains.jet.lang.resolve.kotlin.header.KotlinClassHeader.Kind
|
||||||
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
|
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
|
||||||
|
import org.jetbrains.jet.lang.resolve.java.resolver.JavaResolverCache
|
||||||
|
|
||||||
trait LazyJavaClassResolver {
|
trait LazyJavaClassResolver {
|
||||||
fun resolveClass(javaClass: JavaClass): ClassDescriptor?
|
fun resolveClass(javaClass: JavaClass): ClassDescriptor?
|
||||||
fun resolveClassByFqName(fqName: FqName): ClassDescriptor?
|
fun resolveClassByFqName(fqName: FqName): ClassDescriptor?
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class LazyJavaClassResolverWithCache(val javaResolverCache: JavaResolverCache) : LazyJavaClassResolver {
|
||||||
|
override fun resolveClass(javaClass: JavaClass): ClassDescriptor? {
|
||||||
|
val fqName = javaClass.getFqName()
|
||||||
|
if (fqName != null) {
|
||||||
|
return resolveClassByFqName(fqName)
|
||||||
|
}
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun resolveClassByFqName(fqName: FqName): ClassDescriptor? {
|
||||||
|
return javaResolverCache.getClassResolvedFromSource(fqName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
trait TypeParameterResolver {
|
trait TypeParameterResolver {
|
||||||
class object {
|
class object {
|
||||||
object EMPTY : TypeParameterResolver {
|
object EMPTY : TypeParameterResolver {
|
||||||
|
|||||||
Reference in New Issue
Block a user