Integer partition = record.partition();
String user = record.key();
String message = record.value();
- switch (message)
+
+ if (message.equals("CALCULATE"))
{
- case "START":
- state.get(partition).startSum(user);
- break;
-
- case "END":
- Long result = state.get(partition).endSum(user);
- log.info("New result for {}: {}", user, result);
- break;
-
- default:
- state.get(partition).addToSum(user, Integer.parseInt(message));
- break;
+ Long result = state.get(partition).calculate(user);
+ log.info("New result for {}: {}", user, result);
+ return;
}
+
+ state.get(partition).addToSum(user, Integer.parseInt(message));
}
protected void addPartition(Integer partition, Map<String, Long> state)