Minor, delete SerializerProvider
This commit is contained in:
+9
-35
@@ -23,65 +23,39 @@ import org.jetbrains.jet.lang.descriptors.NamespaceDescriptor;
|
||||
import org.jetbrains.jet.lang.resolve.DescriptorUtils;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqName;
|
||||
import org.jetbrains.jet.lang.resolve.name.FqNameUnsafe;
|
||||
import org.jetbrains.jet.utils.ExceptionUtils;
|
||||
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Collection;
|
||||
|
||||
public class ClassSerializationUtil {
|
||||
private ClassSerializationUtil() {
|
||||
}
|
||||
|
||||
public interface Sink {
|
||||
void writeClass(@NotNull ClassDescriptor classDescriptor, @NotNull ProtoBuf.Class classProto);
|
||||
}
|
||||
|
||||
public interface SerializerProvider {
|
||||
@NotNull
|
||||
DescriptorSerializer getSerializerFor(@NotNull ClassDescriptor classDescriptor);
|
||||
}
|
||||
|
||||
public static final SerializerProvider NEW_EVERY_TIME = new SerializerProvider() {
|
||||
@NotNull
|
||||
@Override
|
||||
public DescriptorSerializer getSerializerFor(@NotNull ClassDescriptor classDescriptor) {
|
||||
return new DescriptorSerializer();
|
||||
}
|
||||
};
|
||||
|
||||
@NotNull
|
||||
public static SerializerProvider constantSerializer(@NotNull final DescriptorSerializer serializer) {
|
||||
return new SerializerProvider() {
|
||||
@NotNull
|
||||
@Override
|
||||
public DescriptorSerializer getSerializerFor(@NotNull ClassDescriptor classDescriptor) {
|
||||
return serializer;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
public static void serializeClass(@NotNull ClassDescriptor classDescriptor, @NotNull SerializerProvider serializerProvider, @NotNull Sink sink) {
|
||||
DescriptorSerializer serializer = serializerProvider.getSerializerFor(classDescriptor);
|
||||
public static void serializeClass(@NotNull ClassDescriptor classDescriptor, @NotNull DescriptorSerializer serializer, @NotNull Sink sink) {
|
||||
ProtoBuf.Class classProto = serializer.classProto(classDescriptor).build();
|
||||
sink.writeClass(classDescriptor, classProto);
|
||||
|
||||
serializeClasses(classDescriptor.getUnsubstitutedInnerClassesScope().getAllDescriptors(), serializerProvider, sink);
|
||||
serializeClasses(classDescriptor.getUnsubstitutedInnerClassesScope().getAllDescriptors(), serializer, sink);
|
||||
|
||||
serializeClasses(classDescriptor.getUnsubstitutedInnerClassesScope().getObjectDescriptors(), serializerProvider, sink);
|
||||
serializeClasses(classDescriptor.getUnsubstitutedInnerClassesScope().getObjectDescriptors(), serializer, sink);
|
||||
|
||||
ClassDescriptor classObjectDescriptor = classDescriptor.getClassObjectDescriptor();
|
||||
if (classObjectDescriptor != null) {
|
||||
serializeClass(classObjectDescriptor, serializerProvider, sink);
|
||||
serializeClass(classObjectDescriptor, serializer, sink);
|
||||
}
|
||||
}
|
||||
|
||||
public static void serializeClasses(
|
||||
@NotNull Collection<? extends DeclarationDescriptor> descriptors,
|
||||
@NotNull SerializerProvider serializerProvider,
|
||||
@NotNull DescriptorSerializer serializer,
|
||||
@NotNull Sink sink
|
||||
) {
|
||||
for (DeclarationDescriptor descriptor : descriptors) {
|
||||
if (descriptor instanceof ClassDescriptor) {
|
||||
ClassDescriptor nestedClass = (ClassDescriptor) descriptor;
|
||||
serializeClass(nestedClass, serializerProvider, sink);
|
||||
serializeClass((ClassDescriptor) descriptor, serializer, sink);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
+1
-2
@@ -53,7 +53,6 @@ import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.util.*;
|
||||
|
||||
import static org.jetbrains.jet.descriptors.serialization.ClassSerializationUtil.constantSerializer;
|
||||
import static org.jetbrains.jet.descriptors.serialization.ClassSerializationUtil.getClassId;
|
||||
import static org.jetbrains.jet.descriptors.serialization.NameSerializationUtil.*;
|
||||
import static org.jetbrains.jet.descriptors.serialization.descriptors.AnnotationDeserializer.UNSUPPORTED;
|
||||
@@ -232,7 +231,7 @@ public abstract class AbstractDescriptorSerializationTest extends KotlinTestWith
|
||||
final Map<ClassDescriptor, byte[]> serializedClasses = Maps.newHashMap();
|
||||
final DescriptorSerializer serializer = new DescriptorSerializer();
|
||||
|
||||
ClassSerializationUtil.serializeClasses(classes, constantSerializer(serializer), new ClassSerializationUtil.Sink() {
|
||||
ClassSerializationUtil.serializeClasses(classes, serializer, new ClassSerializationUtil.Sink() {
|
||||
@Override
|
||||
public void writeClass(@NotNull ClassDescriptor classDescriptor, @NotNull ProtoBuf.Class classProto) {
|
||||
serializedClasses.put(classDescriptor, new ClassData(createNameResolver(serializer.getNameTable()), classProto).toBytes());
|
||||
|
||||
+1
-3
@@ -44,8 +44,6 @@ import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import static org.jetbrains.jet.descriptors.serialization.ClassSerializationUtil.constantSerializer;
|
||||
|
||||
public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
@Override
|
||||
protected JetCoreEnvironment createEnvironment() {
|
||||
@@ -139,7 +137,7 @@ public class BuiltinsDeserializationTest extends KotlinTestWithEnvironment {
|
||||
Collection<DeclarationDescriptor> allDescriptors
|
||||
) {
|
||||
final Map<ClassId, ProtoBuf.Class> classProtos = Maps.newHashMap();
|
||||
ClassSerializationUtil.serializeClasses(allDescriptors, constantSerializer(serializer), new ClassSerializationUtil.Sink() {
|
||||
ClassSerializationUtil.serializeClasses(allDescriptors, serializer, new ClassSerializationUtil.Sink() {
|
||||
@Override
|
||||
public void writeClass(
|
||||
@NotNull ClassDescriptor classDescriptor, @NotNull ProtoBuf.Class classProto
|
||||
|
||||
@@ -70,7 +70,7 @@ public class BuiltInsSerializer {
|
||||
});
|
||||
|
||||
final List<Name> classNames = new ArrayList<Name>();
|
||||
ClassSerializationUtil.serializeClasses(allDescriptors, ClassSerializationUtil.constantSerializer(serializer), new ClassSerializationUtil.Sink() {
|
||||
ClassSerializationUtil.serializeClasses(allDescriptors, serializer, new ClassSerializationUtil.Sink() {
|
||||
@Override
|
||||
public void writeClass(@NotNull ClassDescriptor classDescriptor, @NotNull ProtoBuf.Class classProto) {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user