package com.gr.project.util; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.ws.rs.core.MultivaluedMap; public class MultivaluedHashMap<K, V> extends ForwardingMap<K, List<V>> implements MultivaluedMap<K, V> { public static MultivaluedMap<?, ?> EMPTY = new MultivaluedHashMap<Object, Object>(); public static <K, V> MultivaluedHashMap<K, V> empty() { return (MultivaluedHashMap<K, V>) EMPTY; } private Map<K, List<V>> map = new HashMap<K, List<V>>(); @Override protected Map<K, List<V>> delegate() { return map; } @Override public void putSingle(K key, V value) { List<V> l = new ArrayList<V>(1); l.add(value); put(key, l); } @Override public void add(K key, V value) { List<V> l = get(key); if (l == null) { l = new ArrayList<V>(1); put(key, l); } l.add(value); } @Override public V getFirst(K key) { List<V> l = get(key); return l == null ? null : l.get(0); } }