package com.constellio.data.utils; import java.io.Serializable; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Map.Entry; import java.util.Set; public class KeyListMap<K, V> implements Serializable { Map<K, List<V>> map = new HashMap<>(); public void addAll(K key, List<V> values) { for (V value : values) { add(key, value); } } public void add(K key, V value) { List<V> values = map.get(key); if (values == null) { values = new ArrayList<>(); map.put(key, values); } values.add(value); } public void remove(V key) { map.remove(key); } public List<V> get(K key) { List<V> values = map.get(key); if (values == null) { values = new ArrayList<>(); } return values; } public Set<Entry<K, List<V>>> getMapEntries() { return map.entrySet(); } public Map<K, List<V>> getNestedMap() { return map; } public void set(K key, List<V> values) { map.put(key, values); } public boolean contains(K key) { return map.containsKey(key); } public void clear() { map.clear(); } public boolean contains(K key, V value) { return contains(key) && get(key).contains(value); } }