![JAR search and dependency download from the Maven repository](/logo.png)
commonMain.com.harmony.kotlin.data.mapper.ByteArrayMapper.kt Maven / Gradle / Ivy
package com.harmony.kotlin.data.mapper
import com.harmony.kotlin.error.DataSerializationException
import kotlinx.serialization.KSerializer
import kotlinx.serialization.SerializationException
import kotlinx.serialization.builtins.ListSerializer
import kotlinx.serialization.json.Json
class ObjectToByteArrayMapper(
private val serializer: KSerializer,
private val json: Json
) : Mapper {
override fun map(from: T): ByteArray =
try {
json.encodeToString(serializer, from).encodeToByteArray()
} catch (e: SerializationException) {
throw DataSerializationException(cause = e)
}
}
class ByteArrayToObjectMapper(
private val serializer: KSerializer,
private val json: Json
) : Mapper {
override fun map(from: ByteArray): T =
try {
json.decodeFromString(serializer, from.decodeToString())
} catch (e: SerializationException) {
throw DataSerializationException(cause = e)
}
}
class ObjectListToByteArrayMapper(
private val serializer: KSerializer,
private val json: Json
) : Mapper, ByteArray> {
override fun map(from: List): ByteArray =
try {
json.encodeToString(ListSerializer(serializer), from).encodeToByteArray()
} catch (e: SerializationException) {
throw DataSerializationException(cause = e)
}
}
class ByteArrayToObjectListMapper(
private val serializer: KSerializer,
private val json: Json
) : Mapper> {
override fun map(from: ByteArray): List =
try {
json.decodeFromString(ListSerializer(serializer), from.decodeToString())
} catch (e: SerializationException) {
throw DataSerializationException(cause = e)
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy