From 1f9636960dbb04c4216f60bf9d3e0f55359cfad9 Mon Sep 17 00:00:00 2001 From: Fabrice Lecomte Date: Tue, 30 Jul 2019 23:02:25 +0200 Subject: [PATCH] fix: Entity CreatedBy --- .../kotlin/fr/postgresjson/entity/Entity.kt | 30 +++++++++---------- src/test/kotlin/fr/postgresjson/EntityTest.kt | 11 +++---- 2 files changed, 20 insertions(+), 21 deletions(-) diff --git a/src/main/kotlin/fr/postgresjson/entity/Entity.kt b/src/main/kotlin/fr/postgresjson/entity/Entity.kt index f770ece..83778d3 100644 --- a/src/main/kotlin/fr/postgresjson/entity/Entity.kt +++ b/src/main/kotlin/fr/postgresjson/entity/Entity.kt @@ -47,47 +47,45 @@ class EntityCreatedAtImp: EntityCreatedAt { class EntityUpdatedAtImp: EntityUpdatedAt { override var updatedAt: DateTime? = null } - interface User: EntityI { - fun isValid(): Boolean } /* Author */ -interface CreatedBy { - var createdBy: User? +interface CreatedBy> { + var createdBy: T? } -interface UpdatedBy { - var updatedBy: User? +interface UpdatedBy> { + var updatedBy: T? } -class EntityCreatedByImp: CreatedBy { - override var createdBy: User? = null +class EntityCreatedByImp>: CreatedBy { + override var createdBy: UserT? = null } -class EntityUpdatedByImp: UpdatedBy { - override var updatedBy: User? = null +class EntityUpdatedByImp>: UpdatedBy { + override var updatedBy: UserT? = null } /* Published */ -interface Published { +interface Published> { var publishedAt: DateTime? - var publishedBy: User? + var publishedBy: UserT? } -class EntityPublishedImp: Published { +class EntityPublishedImp>: Published { override var publishedAt: DateTime? = null - override var publishedBy: User? = null + override var publishedBy: UserT? = null } /* Implementation */ -abstract class EntityImp: Entity(), +abstract class EntityImp>: Entity(), EntityCreatedAt by EntityCreatedAtImp(), EntityUpdatedAt by EntityUpdatedAtImp(), CreatedBy by EntityCreatedByImp(), UpdatedBy by EntityUpdatedByImp() -abstract class EntityExtended: +abstract class EntityExtended>: EntityImp(), EntityVersioningIncrement by EntityVersioningIncrementImp(), Published by EntityPublishedImp() diff --git a/src/test/kotlin/fr/postgresjson/EntityTest.kt b/src/test/kotlin/fr/postgresjson/EntityTest.kt index 074a26e..8e0840f 100644 --- a/src/test/kotlin/fr/postgresjson/EntityTest.kt +++ b/src/test/kotlin/fr/postgresjson/EntityTest.kt @@ -7,18 +7,19 @@ import org.junit.jupiter.api.TestInstance @TestInstance(TestInstance.Lifecycle.PER_CLASS) class EntityTest() { - private class ObjTest(var name: String): EntityExtended() + private class User(override var id: Int?): fr.postgresjson.entity.User + private class ObjTest(var name: String): EntityExtended() @Test fun getObject() { val obj: ObjTest? = ObjTest("plop") assertTrue(obj is ObjTest) - assertTrue(obj is EntityExtended) + assertTrue(obj is EntityExtended) assertTrue(obj is EntityI) assertTrue(obj is Entity) - assertTrue(obj is Published) - assertTrue(obj is CreatedBy) - assertTrue(obj is UpdatedBy) + assertTrue(obj is Published) + assertTrue(obj is CreatedBy) + assertTrue(obj is UpdatedBy) assertTrue(obj is EntityCreatedAt) assertTrue(obj is EntityUpdatedAt) }