File tree 3 files changed +10
-8
lines changed
application/presenter/event/serialization
3 files changed +10
-8
lines changed Original file line number Diff line number Diff line change 10
10
11
11
import application .presenter .event .model .Event ;
12
12
13
+ import java .util .Optional ;
14
+
13
15
/**
14
16
* Interface that models an event deserializer.
15
17
*/
@@ -18,7 +20,7 @@ public interface EventDeserializer {
18
20
* Deserialize an event from string.
19
21
* @param eventKey the key of the event.
20
22
* @param event the event in string format.
21
- * @return the deserialized event.
23
+ * @return the deserialized event as an optional .
22
24
*/
23
- Event <?> fromString (String eventKey , String event );
25
+ Optional < Event <?> > fromString (String eventKey , String event );
24
26
}
Original file line number Diff line number Diff line change 22
22
import java .lang .reflect .Type ;
23
23
import java .util .HashMap ;
24
24
import java .util .Map ;
25
+ import java .util .Optional ;
25
26
26
27
/**
27
28
* Implementation of the {@link EventDeserializer} interface that allows an event to be
@@ -45,10 +46,9 @@ public EventDeserializerImpl() {
45
46
}
46
47
47
48
@ Override
48
- public final Event <?> fromString (final String eventKey , final String event ) {
49
- if (!this .typeMap .containsKey (eventKey )) {
50
- throw new IllegalArgumentException ("Event not supported" );
51
- }
52
- return new Gson ().fromJson (event , this .typeMap .get (eventKey ));
49
+ public final Optional <Event <?>> fromString (final String eventKey , final String event ) {
50
+ return Optional .of (eventKey )
51
+ .filter (this .typeMap ::containsKey )
52
+ .map (key -> new Gson ().fromJson (event , this .typeMap .get (key )));
53
53
}
54
54
}
Original file line number Diff line number Diff line change @@ -72,7 +72,7 @@ public void poll(final Consumer<Event<?>> eventConsumer) {
72
72
this .kafkaConsumer .poll (Duration .ofMillis (POLLING_TIME )).forEach (event -> {
73
73
// log the event
74
74
Logger .getLogger (KafkaClient .class .getName ()).fine (event .toString ());
75
- eventConsumer . accept ( this .eventDeserializer .fromString (event .key (), event .value ()));
75
+ this .eventDeserializer .fromString (event .key (), event .value ()). ifPresent ( eventConsumer );
76
76
});
77
77
}
78
78
}
You can’t perform that action at this time.
0 commit comments