1 package org.testng.internal;
2 
3 import org.testng.IResultMap;
4 import org.testng.ITestNGMethod;
5 import org.testng.ITestResult;
6 import org.testng.collections.Objects;
7 
8 import java.util.Collection;
9 import java.util.HashSet;
10 import java.util.Map;
11 import java.util.Map.Entry;
12 import java.util.Set;
13 import java.util.concurrent.ConcurrentHashMap;
14 
15 public class ResultMap implements IResultMap {
16   /**
17    *
18    */
19   private static final long serialVersionUID = 80134376515999093L;
20   private Map<ITestResult, ITestNGMethod> m_map = new ConcurrentHashMap<>();
21 
22   @Override
addResult(ITestResult result, ITestNGMethod method)23   public void addResult(ITestResult result, ITestNGMethod method) {
24     m_map.put(result, method);
25   }
26 
27   @Override
getResults(ITestNGMethod method)28   public Set<ITestResult> getResults(ITestNGMethod method) {
29     Set<ITestResult> result = new HashSet<>();
30 
31     for (Map.Entry<ITestResult, ITestNGMethod> entry : m_map.entrySet()) {
32       if (entry.getValue().equals(method)) {
33         result.add(entry.getKey());
34       }
35     }
36 
37     return result;
38   }
39 
40   @Override
removeResult(ITestNGMethod m)41   public void removeResult(ITestNGMethod m) {
42     for (Entry<ITestResult, ITestNGMethod> entry : m_map.entrySet()) {
43       if (entry.getValue().equals(m)) {
44         m_map.remove(entry.getKey());
45         return;
46       }
47     }
48   }
49 
50   @Override
removeResult(ITestResult r)51   public void removeResult(ITestResult r) {
52     m_map.remove(r);
53   }
54 
55   @Override
getAllResults()56   public Set<ITestResult> getAllResults() {
57     return m_map.keySet();
58   }
59 
60   @Override
size()61   public int size() {
62     return m_map.size();
63   }
64 
65   @Override
getAllMethods()66   public Collection<ITestNGMethod> getAllMethods() {
67     return m_map.values();
68   }
69 
70   @Override
toString()71   public String toString() {
72     return Objects.toStringHelper(getClass())
73         .add("map", m_map)
74         .toString();
75   }
76 
77 }
78