+package de.juplo.kafka;
+
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+
+
+@RequiredArgsConstructor
+@Slf4j
+public class MessageHandler
+{
+ private final String id;
+
+ private final AdderBusinessLogic adder;
+
+
+ public void addNumber(
+ String user,
+ MessageAddNumber message)
+ {
+ adder.addToSum(user, message.getNext());
+ }
+
+ public void calculateSum(
+ String user,
+ MessageCalculateSum message)
+ {
+ AdderResult result = adder.calculate(user);
+ log.info("{} - New result for {}: {}", id, user, result);
+ }
+
+ public void handle(String user, Message message)
+ {
+ switch(message.getType())
+ {
+ case ADD:
+ addNumber(user, (MessageAddNumber) message);
+ break;
+
+ case CALC:
+ calculateSum(user, (MessageCalculateSum) message);
+ break;
+ }
+ }
+}