From e1df66f994e7e8fd6b60122595c5530eb122dedc Mon Sep 17 00:00:00 2001 From: bskjon Date: Tue, 8 Apr 2025 23:42:44 +0200 Subject: [PATCH] Changes to behaviour --- .../mediaprocessing/shared/common/contract/data/Event.kt | 8 ++++++++ .../main/kotlin/no/iktdev/eventi/core/ConsumableEvent.kt | 5 +++++ .../no/iktdev/eventi/implementations/EventListenerImpl.kt | 3 +++ 3 files changed, 16 insertions(+) diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt index 8005cc80..112a3870 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/contract/data/Event.kt @@ -29,6 +29,14 @@ inline fun List.findFirstEventOf(): T? { } else null } +fun Event.isOfEvent(eventType: Events): Boolean { + return this.eventType == eventType +} + +inline fun List.findEventOf(): T? { + return this.filterIsInstance().firstOrNull() +} + inline fun List.findFirstOf(events: Events): Event? { return this.firstOrNull { it.eventType == events } } diff --git a/shared/eventi/src/main/kotlin/no/iktdev/eventi/core/ConsumableEvent.kt b/shared/eventi/src/main/kotlin/no/iktdev/eventi/core/ConsumableEvent.kt index e887a88a..46eae000 100644 --- a/shared/eventi/src/main/kotlin/no/iktdev/eventi/core/ConsumableEvent.kt +++ b/shared/eventi/src/main/kotlin/no/iktdev/eventi/core/ConsumableEvent.kt @@ -1,5 +1,6 @@ package no.iktdev.eventi.core +import com.mysql.cj.protocol.Protocol.ProtocolEventListener.EventType import no.iktdev.eventi.data.EventImpl import no.iktdev.eventi.data.EventMetadata @@ -13,6 +14,10 @@ class ConsumableEvent(private var event: T) { } else null } + fun isOfEvent(eventType: Any): Boolean { + return event.eventType == eventType + } + fun metadata(): EventMetadata { return event.metadata } diff --git a/shared/eventi/src/main/kotlin/no/iktdev/eventi/implementations/EventListenerImpl.kt b/shared/eventi/src/main/kotlin/no/iktdev/eventi/implementations/EventListenerImpl.kt index 31568638..e1d28592 100644 --- a/shared/eventi/src/main/kotlin/no/iktdev/eventi/implementations/EventListenerImpl.kt +++ b/shared/eventi/src/main/kotlin/no/iktdev/eventi/implementations/EventListenerImpl.kt @@ -66,6 +66,9 @@ abstract class EventListenerImpl> { } open fun shouldIProcessAndHandleEvent(incomingEvent: T, events: List): Boolean { + if (listensForEvents.isEmpty()) { + return true + } if (!isOfEventsIListenFor(incomingEvent)) return false if (!isPrerequisitesFulfilled(incomingEvent, events)) {