Changes to behaviour

This commit is contained in:
bskjon 2025-04-08 23:42:44 +02:00
parent 58e3766ebd
commit e1df66f994
3 changed files with 16 additions and 0 deletions

View File

@ -29,6 +29,14 @@ inline fun <reified T: Event> List<Event>.findFirstEventOf(): T? {
} else null } else null
} }
fun Event.isOfEvent(eventType: Events): Boolean {
return this.eventType == eventType
}
inline fun <reified T: Event> List<Event>.findEventOf(): T? {
return this.filterIsInstance<T>().firstOrNull()
}
inline fun List<Event>.findFirstOf(events: Events): Event? { inline fun List<Event>.findFirstOf(events: Events): Event? {
return this.firstOrNull { it.eventType == events } return this.firstOrNull { it.eventType == events }
} }

View File

@ -1,5 +1,6 @@
package no.iktdev.eventi.core package no.iktdev.eventi.core
import com.mysql.cj.protocol.Protocol.ProtocolEventListener.EventType
import no.iktdev.eventi.data.EventImpl import no.iktdev.eventi.data.EventImpl
import no.iktdev.eventi.data.EventMetadata import no.iktdev.eventi.data.EventMetadata
@ -13,6 +14,10 @@ class ConsumableEvent<T: EventImpl>(private var event: T) {
} else null } else null
} }
fun isOfEvent(eventType: Any): Boolean {
return event.eventType == eventType
}
fun metadata(): EventMetadata { fun metadata(): EventMetadata {
return event.metadata return event.metadata
} }

View File

@ -66,6 +66,9 @@ abstract class EventListenerImpl<T: EventImpl, E: EventsManagerImpl<T>> {
} }
open fun shouldIProcessAndHandleEvent(incomingEvent: T, events: List<T>): Boolean { open fun shouldIProcessAndHandleEvent(incomingEvent: T, events: List<T>): Boolean {
if (listensForEvents.isEmpty()) {
return true
}
if (!isOfEventsIListenFor(incomingEvent)) if (!isOfEventsIListenFor(incomingEvent))
return false return false
if (!isPrerequisitesFulfilled(incomingEvent, events)) { if (!isPrerequisitesFulfilled(incomingEvent, events)) {