/** * Override superclass to ensure that MultiMap instances are * correctly handled. * <p> * If you call this method with a normal map, each entry is * added using <code>put(Object,Object)</code>. * If you call this method with a multi map, each entry is * added using <code>putAll(Object,Collection)</code>. * * @param map the map to copy (either a normal or multi map) */ @Override @SuppressWarnings("unchecked") public void putAll(final Map<? extends K, ?> map) { if (map instanceof MultiMap) { for (final Map.Entry<? extends K, Object> entry : ((MultiMap<? extends K, V>) map).entrySet()) { putAll(entry.getKey(), (Collection<V>) entry.getValue()); } } else { for (final Map.Entry<? extends K, ?> entry : map.entrySet()) { put(entry.getKey(), entry.getValue()); } } }
private void writeObject(ObjectOutputStream out) throws IOException { serializableHeadersBackingList = new HashMap(); Iterator iter = headers.entrySet().iterator(); while (iter.hasNext()) { Map.Entry entry = (Entry) iter.next(); serializableHeadersBackingList.put(entry.getKey(), new ArrayList((Collection)entry.getValue())); } out.defaultWriteObject(); }