| package org.testng.internal; |
| |
| import java.util.ArrayList; |
| import java.util.List; |
| import java.util.Map; |
| |
| import org.testng.collections.Lists; |
| import org.testng.collections.Maps; |
| |
| /** |
| * A container to hold lists indexed by a key. |
| */ |
| public class MapList<K, V> { |
| private Map<K, List<V>> m_objects = Maps.newHashMap(); |
| |
| public void put(K key, V method) { |
| List<V> l = m_objects.get(key); |
| if (l == null) { |
| l = Lists.newArrayList(); |
| m_objects.put(key, l); |
| } |
| l.add(method); |
| } |
| |
| public List<V> get(K key) { |
| return m_objects.get(key); |
| } |
| |
| public List<K> getKeys() { |
| return new ArrayList(m_objects.keySet()); |
| // List<K> result = new ArrayList<K>(); |
| // for (K k : m_objects.keySet()) { |
| // result.add(k); |
| // } |
| // Collections.sort(result); |
| // return result; |
| } |
| |
| public boolean containsKey(K k) { |
| return m_objects.containsKey(k); |
| } |
| |
| @Override |
| public String toString() { |
| StringBuilder result = new StringBuilder(); |
| List<K> indices = getKeys(); |
| // Collections.sort(indices); |
| for (K i : indices) { |
| result.append("\n ").append(i).append(" <-- "); |
| for (Object o : m_objects.get(i)) { |
| result.append(o).append(" "); |
| } |
| } |
| return result.toString(); |
| } |
| |
| public boolean isEmpty() { |
| return m_objects.size() == 0; |
| } |
| |
| public int getSize() { |
| return m_objects.size(); |
| } |
| |
| public List<V> remove(K key) { |
| return m_objects.remove(key); |
| } |
| } |