feature: remove User interface

This commit is contained in:
2019-08-01 01:36:08 +02:00
parent bb3b0d7e34
commit 528f2b6daa
2 changed files with 9 additions and 11 deletions

View File

@@ -47,45 +47,43 @@ class EntityCreatedAtImp: EntityCreatedAt {
class EntityUpdatedAtImp: EntityUpdatedAt { class EntityUpdatedAtImp: EntityUpdatedAt {
override var updatedAt: DateTime? = null override var updatedAt: DateTime? = null
} }
interface User<T>: EntityI<T> {
}
/* Author */ /* Author */
interface CreatedBy<T: User<*>> { interface CreatedBy<T: EntityI<*>> {
var createdBy: T? var createdBy: T?
} }
interface UpdatedBy<T: User<*>> { interface UpdatedBy<T: EntityI<*>> {
var updatedBy: T? var updatedBy: T?
} }
class EntityCreatedByImp<UserT: User<*>>: CreatedBy<UserT> { class EntityCreatedByImp<UserT: EntityI<*>>: CreatedBy<UserT> {
override var createdBy: UserT? = null override var createdBy: UserT? = null
} }
class EntityUpdatedByImp<UserT: User<*>>: UpdatedBy<UserT> { class EntityUpdatedByImp<UserT: EntityI<*>>: UpdatedBy<UserT> {
override var updatedBy: UserT? = null override var updatedBy: UserT? = null
} }
/* Published */ /* Published */
interface Published<UserT: User<*>> { interface Published<UserT: EntityI<*>> {
var publishedAt: DateTime? var publishedAt: DateTime?
var publishedBy: UserT? var publishedBy: UserT?
} }
class EntityPublishedImp<UserT: User<*>>: Published<UserT> { class EntityPublishedImp<UserT: EntityI<*>>: Published<UserT> {
override var publishedAt: DateTime? = null override var publishedAt: DateTime? = null
override var publishedBy: UserT? = null override var publishedBy: UserT? = null
} }
/* Implementation */ /* Implementation */
abstract class EntityImp<T, UserT: User<*>>: Entity<T>(), abstract class EntityImp<T, UserT: EntityI<*>>: Entity<T>(),
EntityCreatedAt by EntityCreatedAtImp(), EntityCreatedAt by EntityCreatedAtImp(),
EntityUpdatedAt by EntityUpdatedAtImp(), EntityUpdatedAt by EntityUpdatedAtImp(),
CreatedBy<UserT> by EntityCreatedByImp(), CreatedBy<UserT> by EntityCreatedByImp(),
UpdatedBy<UserT> by EntityUpdatedByImp() UpdatedBy<UserT> by EntityUpdatedByImp()
abstract class EntityExtended<T, UserT: User<*>>: abstract class EntityExtended<T, UserT: EntityI<*>>:
EntityImp<T, UserT>(), EntityImp<T, UserT>(),
EntityVersioningIncrement by EntityVersioningIncrementImp(), EntityVersioningIncrement by EntityVersioningIncrementImp(),
Published<UserT> by EntityPublishedImp() Published<UserT> by EntityPublishedImp()

View File

@@ -7,7 +7,7 @@ import org.junit.jupiter.api.TestInstance
@TestInstance(TestInstance.Lifecycle.PER_CLASS) @TestInstance(TestInstance.Lifecycle.PER_CLASS)
class EntityTest() { class EntityTest() {
private class User(override var id: Int?): fr.postgresjson.entity.User<Int?> private class User(override var id: Int?): EntityI<Int?>
private class ObjTest(var name: String): EntityExtended<Int?, User>() private class ObjTest(var name: String): EntityExtended<Int?, User>()
@Test @Test