package de.juplo.kafka;
+import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.apache.kafka.clients.consumer.ConsumerRecord;
import java.util.Map;
+@RequiredArgsConstructor
@Slf4j
public class ApplicationRecordHandler implements RecordHandler<String, String>
{
+ private final AdderResults results;
+
private final Map<Integer, AdderBusinessLogic> state = new HashMap<>();
{
AdderResult result = state.get(partition).calculate(user);
log.info("New result for {}: {}", user, result);
+ results.addResults(partition, user, result);
return;
}
state.get(partition).addToSum(user, Integer.parseInt(message));
}
- protected void addPartition(Integer partition, Map<String, Long> state)
+ protected void addPartition(Integer partition, Map<String, AdderResult> state)
{
this.state.put(partition, new AdderBusinessLogic(state));
}
- protected Map<String, Long> removePartition(Integer partition)
+ protected Map<String, AdderResult> removePartition(Integer partition)
{
return this.state.remove(partition).getState();
}
{
return state;
}
+
+ public AdderBusinessLogic getState(Integer partition)
+ {
+ return state.get(partition);
+ }
}