Generate UUID if null is defined as ID

This commit is contained in:
2020-07-10 17:24:35 +02:00
parent 55b547db75
commit 5023f229ca
2 changed files with 11 additions and 7 deletions

View File

@@ -17,7 +17,7 @@ interface UuidEntityI : EntityRefI<UUID> {
} }
abstract class Entity<T>(override val id: T) : EntityRefI<T> abstract class Entity<T>(override val id: T) : EntityRefI<T>
open class UuidEntity(override val id: UUID = UUID.randomUUID()) : UuidEntityI, Entity<UUID>(id) open class UuidEntity(id: UUID? = null) : UuidEntityI, Entity<UUID>(id ?: UUID.randomUUID())
/* Version */ /* Version */
interface EntityVersioning<ID, NUMBER> { interface EntityVersioning<ID, NUMBER> {
@@ -27,8 +27,10 @@ interface EntityVersioning<ID, NUMBER> {
class UuidEntityVersioning( class UuidEntityVersioning(
override var versionNumber: Int? = null, override var versionNumber: Int? = null,
override val versionId: UUID = UUID.randomUUID() versionId: UUID? = null
) : EntityVersioning<UUID, Int?> ) : EntityVersioning<UUID, Int?> {
override val versionId: UUID = versionId ?: UUID.randomUUID()
}
/* Dates */ /* Dates */
interface EntityCreatedAt { interface EntityCreatedAt {

View File

@@ -17,7 +17,7 @@ interface IdEntityI : EntityRefI<Int> {
} }
abstract class Entity<T>(override var id: T? = null) : EntityRefI<T> abstract class Entity<T>(override var id: T? = null) : EntityRefI<T>
open class UuidEntity(override var id: UUID? = UUID.randomUUID()) : UuidEntityI, Entity<UUID>(id) open class UuidEntity(id: UUID? = null) : UuidEntityI, Entity<UUID>(id ?: UUID.randomUUID())
open class IdEntity(override var id: Int? = null) : IdEntityI, Entity<Int>(id) open class IdEntity(override var id: Int? = null) : IdEntityI, Entity<Int>(id)
/* Version */ /* Version */
@@ -28,8 +28,10 @@ interface EntityVersioning<ID, NUMBER> {
class UuidEntityVersioning( class UuidEntityVersioning(
override var versionNumber: Int? = null, override var versionNumber: Int? = null,
override var versionId: UUID = UUID.randomUUID() versionId: UUID? = null
) : EntityVersioning<UUID, Int> ) : EntityVersioning<UUID, Int?> {
override var versionId: UUID = versionId ?: UUID.randomUUID()
}
/* Dates */ /* Dates */
interface EntityCreatedAt { interface EntityCreatedAt {
@@ -131,5 +133,5 @@ abstract class UuidEntityExtended<T, UserT : EntityI>(
publishedBy: UserT? publishedBy: UserT?
) : ) :
EntityImp<T, UserT>(updatedBy), EntityImp<T, UserT>(updatedBy),
EntityVersioning<UUID, Int> by UuidEntityVersioning(), EntityVersioning<UUID, Int?> by UuidEntityVersioning(),
Published<UserT> by EntityPublishedImp(publishedBy) Published<UserT> by EntityPublishedImp(publishedBy)