fix: Entity CreatedBy

This commit is contained in:
2019-07-30 23:02:25 +02:00
parent 7346c85f95
commit 1f9636960d
2 changed files with 20 additions and 21 deletions

View File

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