Extract serialization of packageFqName extension to SerializerExtensionBase

This commit is contained in:
Alexander Udalov
2017-02-01 15:03:28 +03:00
parent 4e91dadfab
commit b52b90c182
6 changed files with 16 additions and 19 deletions
@@ -17,10 +17,14 @@
package org.jetbrains.kotlin.serialization
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.name.FqName
import org.jetbrains.kotlin.resolve.constants.NullValue
import org.jetbrains.kotlin.types.KotlinType
open class KotlinSerializerExtensionBase(private val protocol: SerializerExtensionProtocol) : SerializerExtension() {
open class KotlinSerializerExtensionBase(
private val protocol: SerializerExtensionProtocol,
private val packageFqName: FqName
) : SerializerExtension() {
override val stringTable = StringTableImpl()
override fun serializeClass(descriptor: ClassDescriptor, proto: ProtoBuf.Class.Builder) {
@@ -29,6 +33,10 @@ open class KotlinSerializerExtensionBase(private val protocol: SerializerExtensi
}
}
override fun serializePackage(proto: ProtoBuf.Package.Builder) {
proto.setExtension(protocol.packageFqName, stringTable.getPackageFqNameIndex(packageFqName))
}
override fun serializeConstructor(descriptor: ConstructorDescriptor, proto: ProtoBuf.Constructor.Builder) {
for (annotation in descriptor.annotations) {
proto.addExtension(protocol.constructorAnnotation, annotationSerializer.serializeAnnotation(annotation))