Refactor: Extract deserialize class to context

This commit is contained in:
Pavel V. Talanov
2014-06-16 15:00:57 +04:00
parent 348de193b4
commit 6683173f67
3 changed files with 10 additions and 10 deletions
@@ -31,12 +31,6 @@ import org.jetbrains.jet.descriptors.serialization.descriptors.ConstantLoader
import org.jetbrains.jet.lang.descriptors.ModuleDescriptor import org.jetbrains.jet.lang.descriptors.ModuleDescriptor
import org.jetbrains.jet.lang.descriptors.ClassDescriptor import org.jetbrains.jet.lang.descriptors.ClassDescriptor
import org.jetbrains.jet.descriptors.serialization.ClassId import org.jetbrains.jet.descriptors.serialization.ClassId
import org.jetbrains.jet.lang.descriptors.PackageViewDescriptor
import org.jetbrains.jet.lang.resolve.scopes.JetScope
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe
import org.jetbrains.jet.lang.resolve.name.Name
import org.jetbrains.jet.lang.resolve.name.SpecialNames
import org.jetbrains.jet.lang.descriptors.ClassifierDescriptor
public open class DeserializationGlobalContext( public open class DeserializationGlobalContext(
public val storageManager: StorageManager, public val storageManager: StorageManager,
@@ -110,3 +104,7 @@ class DeserializationContextWithTypes(
} }
} }
fun DeserializationGlobalContext.deserializeClass(classId: ClassId): ClassDescriptor? {
return descriptorFinder.findClass(classId)
}
@@ -22,6 +22,7 @@ import kotlin.KotlinPackage;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable; import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.descriptors.serialization.*; import org.jetbrains.jet.descriptors.serialization.*;
import org.jetbrains.jet.descriptors.serialization.context.ContextPackage;
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext; import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext;
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContextWithTypes; import org.jetbrains.jet.descriptors.serialization.context.DeserializationContextWithTypes;
import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext; import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext;
@@ -141,7 +142,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
return fragments.iterator().next(); return fragments.iterator().next();
} }
else { else {
ClassDescriptor result = context.getDescriptorFinder().findClass(classId.getOuterClassId()); ClassDescriptor result = ContextPackage.deserializeClass(context, classId.getOuterClassId());
return result != null ? result : ErrorUtils.getErrorModule(); return result != null ? result : ErrorUtils.getErrorModule();
} }
} }
@@ -245,7 +246,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
return new DeserializedClassDescriptor(context, classObjectProto.getData()); return new DeserializedClassDescriptor(context, classObjectProto.getData());
} }
return context.getDescriptorFinder().findClass(classId.createNestedClassId(getClassObjectName(getName()))); return ContextPackage.deserializeClass(context, classId.createNestedClassId(getClassObjectName(getName())));
} }
@NotNull @NotNull
@@ -488,7 +489,7 @@ public class DeserializedClassDescriptor extends AbstractClassDescriptor impleme
.create(storageManager, DeserializedClassDescriptor.this, name, enumMemberNames); .create(storageManager, DeserializedClassDescriptor.this, name, enumMemberNames);
} }
if (nestedClassNames.contains(name)) { if (nestedClassNames.contains(name)) {
return context.getDescriptorFinder().findClass(classId.createNestedClassId(name)); return ContextPackage.deserializeClass(context, classId.createNestedClassId(name));
} }
return null; return null;
} }
@@ -21,6 +21,7 @@ import org.jetbrains.annotations.Nullable;
import org.jetbrains.jet.descriptors.serialization.ClassId; import org.jetbrains.jet.descriptors.serialization.ClassId;
import org.jetbrains.jet.descriptors.serialization.PackageData; import org.jetbrains.jet.descriptors.serialization.PackageData;
import org.jetbrains.jet.descriptors.serialization.ProtoBuf; import org.jetbrains.jet.descriptors.serialization.ProtoBuf;
import org.jetbrains.jet.descriptors.serialization.context.ContextPackage;
import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext; import org.jetbrains.jet.descriptors.serialization.context.DeserializationContext;
import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext; import org.jetbrains.jet.descriptors.serialization.context.DeserializationGlobalContext;
import org.jetbrains.jet.lang.descriptors.ClassDescriptor; import org.jetbrains.jet.lang.descriptors.ClassDescriptor;
@@ -58,7 +59,7 @@ public class DeserializedPackageMemberScope extends DeserializedMemberScope {
@Nullable @Nullable
@Override @Override
protected ClassDescriptor getClassDescriptor(@NotNull Name name) { protected ClassDescriptor getClassDescriptor(@NotNull Name name) {
return context.getDescriptorFinder().findClass(new ClassId(packageFqName, FqNameUnsafe.topLevel(name))); return ContextPackage.deserializeClass(context, new ClassId(packageFqName, FqNameUnsafe.topLevel(name)));
} }
@Override @Override