package util; import java.util.Collection; import java.util.HashMap; import java.util.HashSet; import java.util.Set; /** * UNUSED * * Minimal-effort implementation of a multi-map, with little regard for good * practices. */ @SuppressWarnings("serial") public class Multimap<K, V> extends HashMap<K, Set<V>> { /****************************************************************************/ private Set<V> getOrNew(K key) { Set<V> set = get(key); if (set == null) { set = new HashSet<V>(); put(key, set); } return set; } /****************************************************************************/ public boolean add(K key, V value) { return getOrNew(key).add(value); } /****************************************************************************/ public void add(K key, Collection<? extends V> values) { getOrNew(key).addAll(values); } /****************************************************************************/ public Set<V> allValues() { Set<V> all = new HashSet<V>(); for (Set<V> set : values()) { all.addAll(set); } return all; } }