Generate UUID if null is defined as ID
This commit is contained in:
@@ -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 {
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
Reference in New Issue
Block a user