Skip to content

Commit bb37d0a

Browse files
chore: change way to check event types
1 parent ebd1ba3 commit bb37d0a

File tree

1 file changed

+22
-16
lines changed

1 file changed

+22
-16
lines changed

src/main/kotlin/application/handler/EventHandlers.kt

Lines changed: 22 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,10 @@ import java.time.Instant
3030
*/
3131
object EventHandlers {
3232
/** Event handler for room temperature update event. */
33-
class TemperatureEventHandler(private val roomRepository: RoomRepository): EventHandler {
34-
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<RoomEventPayloads.TemperaturePayload>>()
33+
class TemperatureEventHandler(private val roomRepository: RoomRepository) : EventHandler {
34+
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<*>> {
35+
this.data.cast<RoomEventPayloads.TemperaturePayload>()
36+
}
3537

3638
override fun consume(event: Event<*>) {
3739
event.cast<RoomEvent<RoomEventPayloads.TemperaturePayload>>() {
@@ -45,8 +47,10 @@ object EventHandlers {
4547
}
4648

4749
/** Event handler for room humidity update event. */
48-
class HumidityEventHandler(private val roomRepository: RoomRepository): EventHandler {
49-
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<RoomEventPayloads.HumidityPayload>>()
50+
class HumidityEventHandler(private val roomRepository: RoomRepository) : EventHandler {
51+
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<*>> {
52+
this.data.cast<RoomEventPayloads.HumidityPayload>()
53+
}
5054

5155
override fun consume(event: Event<*>) {
5256
event.cast<RoomEvent<RoomEventPayloads.HumidityPayload>>() {
@@ -60,8 +64,10 @@ object EventHandlers {
6064
}
6165

6266
/** Event handler for room luminosity update event. */
63-
class LuminosityEventHandler(private val roomRepository: RoomRepository): EventHandler {
64-
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<RoomEventPayloads.LuminosityPayload>>()
67+
class LuminosityEventHandler(private val roomRepository: RoomRepository) : EventHandler {
68+
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<*>> {
69+
this.data.cast<RoomEventPayloads.LuminosityPayload>()
70+
}
6571

6672
override fun consume(event: Event<*>) {
6773
event.cast<RoomEvent<RoomEventPayloads.LuminosityPayload>>() {
@@ -75,8 +81,10 @@ object EventHandlers {
7581
}
7682

7783
/** Event handler for room presence update event. */
78-
class PresenceEventHandler(private val roomRepository: RoomRepository): EventHandler {
79-
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<RoomEventPayloads.PresencePayload>>()
84+
class PresenceEventHandler(private val roomRepository: RoomRepository) : EventHandler {
85+
override fun canHandle(event: Event<*>): Boolean = event.cast<RoomEvent<*>> {
86+
this.data.cast<RoomEventPayloads.PresencePayload>()
87+
}
8088

8189
override fun consume(event: Event<*>) {
8290
event.cast<RoomEvent<RoomEventPayloads.PresencePayload>>() {
@@ -92,17 +100,17 @@ object EventHandlers {
92100
/** Event handler for medical technology usage update event. */
93101
class MedicalTechnologyEventHandler(
94102
private val medicalTechnologyRepository: MedicalTechnologyRepository
95-
): EventHandler {
103+
) : EventHandler {
96104
override fun canHandle(event: Event<*>): Boolean = event is MedicalTechnologyEvent
97105

98106
override fun consume(event: Event<*>) {
99107
event.cast<MedicalTechnologyEvent>() {
100108
MedicalTechnologyService.UpdateMedicalTechnologyUsage(
101109
MedicalTechnologyID(this.data.medicalTechnologyID),
102-
this.data.isInUse,
110+
this.data.inUse,
103111
Instant.parse(this.dateTime),
104112
medicalTechnologyRepository
105-
)
113+
).execute()
106114
}
107115
}
108116
}
@@ -119,9 +127,7 @@ object EventHandlers {
119127
roomRepository
120128
).execute()
121129

122-
private inline fun <reified T> Any?.cast(operation: T.() -> Unit = {}): Boolean =
123-
if(this is T) {
124-
operation()
125-
true
126-
} else false
130+
private inline fun <reified T> Any?.cast(operation: T.() -> Boolean = { true }): Boolean = if (this is T) {
131+
operation()
132+
} else false
127133
}

0 commit comments

Comments
 (0)