Refactor JDR: minor, extract class

This commit is contained in:
Pavel V. Talanov
2014-02-07 14:10:11 +04:00
parent 37154e42d2
commit 4153182fd2
2 changed files with 18 additions and 19 deletions
@@ -22,10 +22,9 @@ import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor;
import org.jetbrains.jet.lang.descriptors.PackageFragmentDescriptor;
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.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.KotlinClassFinder;
import org.jetbrains.jet.lang.resolve.name.FqName;
@@ -46,7 +45,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
ExternalSignatureResolver externalSignatureResolver,
ErrorReporter errorReporter,
MethodSignatureChecker signatureChecker,
final JavaResolverCache javaResolverCache,
JavaResolverCache javaResolverCache,
DeserializedDescriptorResolver deserializedDescriptorResolver,
KotlinClassFinder kotlinClassFinder,
ModuleDescriptor module
@@ -58,22 +57,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
javaClassFinder,
kotlinClassFinder,
deserializedDescriptorResolver,
new LazyJavaClassResolver() {
@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);
}
},
new LazyJavaClassResolverWithCache(javaResolverCache),
externalAnnotationResolver,
externalSignatureResolver,
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.Kind
import org.jetbrains.jet.lang.resolve.java.resolver.DescriptorResolverUtils
import org.jetbrains.jet.lang.resolve.java.resolver.JavaResolverCache
trait LazyJavaClassResolver {
fun resolveClass(javaClass: JavaClass): 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 {
class object {
object EMPTY : TypeParameterResolver {