Signature
This commit is contained in:
parent
86b183873f
commit
479d4cc25e
@ -2,6 +2,7 @@ package no.iktdev.eventi.models
|
|||||||
|
|
||||||
import java.util.UUID
|
import java.util.UUID
|
||||||
|
|
||||||
|
@Suppress("UNCHECKED_CAST")
|
||||||
abstract class Event {
|
abstract class Event {
|
||||||
var referenceId: UUID = UUID.randomUUID()
|
var referenceId: UUID = UUID.randomUUID()
|
||||||
protected set
|
protected set
|
||||||
@ -10,22 +11,24 @@ abstract class Event {
|
|||||||
var metadata: Metadata = Metadata()
|
var metadata: Metadata = Metadata()
|
||||||
protected set
|
protected set
|
||||||
|
|
||||||
fun derivedOf(event: Event) = apply {
|
protected open fun <T : Event> self(): T = this as T
|
||||||
this.referenceId = event.referenceId
|
|
||||||
this.metadata = Metadata(derivedFromId = event.eventId)
|
fun producedFrom(task: Task): Event = self<Event>().apply {
|
||||||
|
referenceId = task.referenceId
|
||||||
|
metadata = Metadata(derivedFromId = task.taskId)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun producedFrom(task: Task) = apply {
|
fun derivedOf(event: Event) = self<Event>().apply {
|
||||||
this.referenceId = task.referenceId
|
referenceId = event.referenceId
|
||||||
this.metadata = Metadata(derivedFromId = task.taskId)
|
metadata = Metadata(derivedFromId = event.eventId)
|
||||||
}
|
}
|
||||||
|
|
||||||
fun newReferenceId() = apply {
|
fun newReferenceId() = self<Event>().apply {
|
||||||
this.referenceId = UUID.randomUUID()
|
referenceId = UUID.randomUUID()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun usingReferenceId(refId: UUID) = apply {
|
fun usingReferenceId(refId: UUID) = self<Event>().apply {
|
||||||
this.referenceId = refId
|
referenceId = refId
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -11,13 +11,16 @@ abstract class Task {
|
|||||||
var metadata: Metadata = Metadata()
|
var metadata: Metadata = Metadata()
|
||||||
protected set
|
protected set
|
||||||
|
|
||||||
fun newReferenceId() = apply {
|
|
||||||
this.referenceId = UUID.randomUUID()
|
protected open fun <T : Task> self(): T = this as T
|
||||||
|
|
||||||
|
fun newReferenceId() = self<Task>().apply {
|
||||||
|
referenceId = UUID.randomUUID()
|
||||||
}
|
}
|
||||||
|
|
||||||
fun derivedOf(event: Event) = apply {
|
fun derivedOf(event: Event) = self<Task>().apply {
|
||||||
this.referenceId = event.referenceId
|
referenceId = event.referenceId
|
||||||
this.metadata = Metadata(derivedFromId = event.eventId)
|
metadata = Metadata(derivedFromId = event.eventId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user