From 4ff30e1201bb36ad1f7c83e16c0861bd98f3955a Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Wed, 14 Jul 2021 20:18:45 +0200 Subject: [PATCH] Remove update object by deserialize --- .../fr/postgresjson/connexion/Connection.kt | 9 +-------- .../fr/postgresjson/serializer/Serializer.kt | 5 ----- src/test/kotlin/fr/postgresjson/RequesterTest.kt | 4 ++-- .../kotlin/fr/postgresjson/SerializerTest.kt | 16 ---------------- 4 files changed, 3 insertions(+), 31 deletions(-) diff --git a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt index a09ec1e..2cd0712 100644 --- a/src/main/kotlin/fr/postgresjson/connexion/Connection.kt +++ b/src/main/kotlin/fr/postgresjson/connexion/Connection.kt @@ -55,19 +55,12 @@ class Connection( values: List, block: (QueryResult, R?) -> Unit ): R? { - val primaryObject = values.firstOrNull { - it is EntityI && typeReference.type.typeName == it::class.java.name - } as R? val result = exec(sql, compileArgs(values)) val json = result.rows.firstOrNull()?.getString(0) return if (json === null) { null } else { - if (primaryObject != null) { - serializer.deserialize(json, primaryObject) - } else { - serializer.deserialize(json, typeReference) - } + serializer.deserialize(json, typeReference) }.also { block(result, it) } diff --git a/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt b/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt index bf4719a..e32ace3 100644 --- a/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt +++ b/src/main/kotlin/fr/postgresjson/serializer/Serializer.kt @@ -42,13 +42,8 @@ class Serializer(val mapper: ObjectMapper = jacksonObjectMapper()) { inline fun deserializeList(json: String): E { return deserializeList(json, object : TypeReference() {}) } - - fun deserialize(json: String, target: E): E { - return mapper.readerForUpdating(target).readValue(json) - } } fun Serializable.serialize(pretty: Boolean = false) = Serializer().serialize(this, pretty) fun List.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) diff --git a/src/test/kotlin/fr/postgresjson/RequesterTest.kt b/src/test/kotlin/fr/postgresjson/RequesterTest.kt index ea02185..f60d11f 100644 --- a/src/test/kotlin/fr/postgresjson/RequesterTest.kt +++ b/src/test/kotlin/fr/postgresjson/RequesterTest.kt @@ -9,7 +9,7 @@ import org.junit.jupiter.api.Test import java.util.UUID class RequesterTest : TestAbstract() { - class ObjTest(var name: String, id: UUID = UUID.fromString("5623d902-3067-42f3-bfd9-095dbb12c29f")) : UuidEntity(id) + class ObjTest(val name: String, id: UUID = UUID.fromString("5623d902-3067-42f3-bfd9-095dbb12c29f")) : UuidEntity(id) @Test fun `get query from file`() { @@ -100,7 +100,7 @@ class RequesterTest : TestAbstract() { .selectOne("resource" to obj2)!! assertEquals("changedName", obj.name) - assertEquals("changedName", obj2.name) + assertEquals("original", obj2.name) } @Test diff --git a/src/test/kotlin/fr/postgresjson/SerializerTest.kt b/src/test/kotlin/fr/postgresjson/SerializerTest.kt index cbef4b1..eee238f 100644 --- a/src/test/kotlin/fr/postgresjson/SerializerTest.kt +++ b/src/test/kotlin/fr/postgresjson/SerializerTest.kt @@ -69,20 +69,4 @@ internal class SerializerTest { assertEquals(obj.val1, objDeserialized!!.val1) assertEquals(obj.val2, objDeserialized.val2) } - - @Test - fun deserializeUpdate() { - val objDeserialized: ObjTest = serializer.deserialize(objSerializedUpdate, obj) - assertTrue(obj === objDeserialized) - assertEquals("update", objDeserialized.val1) - assertEquals(123, objDeserialized.val2) - } - - @Test - fun deserializeUpdate2() { - val objDeserialized = obj.deserialize(objSerializedUpdate) - assertTrue(obj === objDeserialized) - assertEquals("update", objDeserialized.val1) - assertEquals(123, objDeserialized.val2) - } }