All Downloads are FREE. Search and download functionalities are using the official Maven repository.

codec.GenericRecordSingleObjectEncoder.kt Maven / Gradle / Ivy

package io.toolisticon.kotlin.avro.codec

import io.toolisticon.kotlin.avro.value.ByteArrayValue
import io.toolisticon.kotlin.avro.value.SingleObjectEncodedBytes
import org.apache.avro.generic.GenericData
import org.apache.avro.generic.GenericRecord
import org.apache.avro.message.BinaryMessageEncoder

@Suppress("PARAMETER_NAME_CHANGED_ON_OVERRIDE")
class GenericRecordSingleObjectEncoder(
  private val genericData: GenericData
) : AvroCodec.SingleObjectEncoder {

  override fun encode(record: GenericRecord): SingleObjectEncodedBytes {
    val writerSchema = record.schema

    val bytes = ByteArrayValue {
      BinaryMessageEncoder(
        genericData,
        writerSchema
      ).encode(record, this)
    }
    return SingleObjectEncodedBytes.of(bytes = bytes)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy