From 15c347e3fd6db58c5a06bfcf2b30de6a77a66461 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Sat, 3 Aug 2019 20:26:20 +0200 Subject: [PATCH] feature: add pretty option for serializer and extention String.deserialize() --- .../kotlin/fr/postgresjson/serializer/Serializer.kt | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt b/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt index ebbd11d..6b5df87 100644 --- a/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt +++ b/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt @@ -32,15 +32,16 @@ class Serializer(val mapper: ObjectMapper = jacksonObjectMapper()) { mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); } - fun serialize(source: EntityI): String { - return mapper.writeValueAsString(source) + fun serialize(source: EntityI, pretty: Boolean = false): String { + return if (pretty) mapper.writerWithDefaultPrettyPrinter().writeValueAsString(source) + else mapper.writeValueAsString(source) } fun > deserialize(json: String, valueTypeRef: TypeReference): E { return this.mapper.readValue(json, valueTypeRef) } - inline fun ?> deserialize(json: String): E { + inline fun > deserialize(json: String): E? { return this.mapper.readValue(json) } @@ -57,8 +58,9 @@ class Serializer(val mapper: ObjectMapper = jacksonObjectMapper()) { } } -fun EntityI.serialize() = Serializer().serialize(this) -inline fun > E.deserialize(json: String) = Serializer().deserialize(json, this) +fun EntityI.serialize(pretty: Boolean = false) = Serializer().serialize(this, pretty) +inline fun > E.deserialize(json: String) = Serializer().deserialize(json, this) +inline fun > String.deserialize() = Serializer().deserialize(this) class EntityUuidDeserializer @JvmOverloads constructor(vc: Class<*>? = null): StdDeserializer(vc) {