Vereinfachte Version der auf Spring Kafka basierenden Implementierung
[demos/kafka/training] / src / main / java / de / juplo / kafka / AdderResults.java
1 package de.juplo.kafka;
2
3 import java.util.HashMap;
4 import java.util.LinkedList;
5 import java.util.List;
6 import java.util.Map;
7
8
9 public class AdderResults
10 {
11   private final Map<Integer, Map<String, List<AdderResult>>> results = new HashMap<>();
12
13
14   public void addResults(Integer partition, String user, AdderResult result)
15   {
16     Map<String, List<AdderResult>> resultsByUser = this.results.get(partition);
17
18     List<AdderResult> results = resultsByUser.get(user);
19     if (results == null)
20     {
21       results = new LinkedList<>();
22       resultsByUser.put(user, results);
23     }
24
25     results.add(result);
26   }
27
28   protected void addPartition(Integer partition, Map<String, List<AdderResult>> results)
29   {
30     this.results.put(partition, results);
31   }
32
33   protected Map<String, List<AdderResult>> removePartition(Integer partition)
34   {
35     return this.results.remove(partition);
36   }
37
38   public Map<Integer, Map<String, List<AdderResult>>> getState()
39   {
40     return results;
41   }
42
43   public Map<String, List<AdderResult>> getState(Integer partition)
44   {
45     return results.get(partition);
46   }
47 }