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