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>
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 */
interface EntityVersioning<ID, NUMBER> {
@@ -27,8 +27,10 @@ interface EntityVersioning<ID, NUMBER> {
class UuidEntityVersioning(
override var versionNumber: Int? = null,
override val versionId: UUID = UUID.randomUUID()
) : EntityVersioning<UUID, Int?>
versionId: UUID? = null
) : EntityVersioning<UUID, Int?> {
override val versionId: UUID = versionId ?: UUID.randomUUID()
}
/* Dates */
interface EntityCreatedAt {

View File

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