Die App führt die Berechnung aus
[demos/kafka/training] / src / main / java / de / juplo / kafka / MessageHandler.java
diff --git a/src/main/java/de/juplo/kafka/MessageHandler.java b/src/main/java/de/juplo/kafka/MessageHandler.java
new file mode 100644 (file)
index 0000000..2f58f65
--- /dev/null
@@ -0,0 +1,44 @@
+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;
+    }
+  }
+}