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

kr.bydelta.koala.kryo.MorphemeSerializer.scala Maven / Gradle / Ivy

The newest version!
package kr.bydelta.koala.kryo

import com.esotericsoftware.kryo.io.{Input, Output}
import com.esotericsoftware.kryo.{Kryo, Serializer}
import kr.bydelta.koala.POS
import kr.bydelta.koala.data.Morpheme

/**
  * KryoSerializer object for Morpheme class
  */
object MorphemeSerializer extends Serializer[Morpheme] {

  override def write(kryo: Kryo, output: Output, value: Morpheme): Unit = {
    output.writeString(value.surface)
    output.writeString(value.rawTag)
    output.writeInt(value.tag.id)
  }

  override def read(kryo: Kryo, input: Input, cls: Class[Morpheme]): Morpheme = {
    val surface = input.readString
    val rawTag = input.readString
    val tag = POS(input.readInt)
    Morpheme(surface, rawTag, tag)
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy