da9f65e3034164846a2136a4d4235c7c0a38e070
[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     if (resultsByUser == null)
19     {
20       resultsByUser = new HashMap<>();
21       results.put(partition, resultsByUser);
22     }
23
24     List<AdderResult> results = resultsByUser.get(user);
25     if (results == null)
26     {
27       results = new LinkedList<>();
28       resultsByUser.put(user, results);
29     }
30
31     results.add(result);
32   }
33
34   protected void addPartition(Integer partition, Map<String, List<AdderResult>> results)
35   {
36     this.results.put(partition, results);
37   }
38
39   protected Map<String, List<AdderResult>> removePartition(Integer partition)
40   {
41     return this.results.remove(partition);
42   }
43
44   public Map<Integer, Map<String, List<AdderResult>>> getState()
45   {
46     return results;
47   }
48
49   public Map<String, List<AdderResult>> getState(Integer partition)
50   {
51     return results.get(partition);
52   }
53 }