code: public static <K,V> MultiValueMap<K,V> unmodifiableMultiValueMap(MultiValueMap<? extends K, ? extends V> map) {
  		Assert.notNull(map, "'map' must not be null");
  		Map<K, List<V>> result = new LinkedHashMap<K, List<V>>(map.size());
  		for (Map.Entry<? extends K, ? extends List<? extends V>> entry : map.entrySet()) {
  			List<V> values = Collections.unmodifiableList(entry.getValue());
  			result.put(entry.getKey(), values);
  		}
  		Map<K, List<V>> unmodifiableMap = Collections.unmodifiableMap(result);
  		return toMultiValueMap(unmodifiableMap);
  	}
docs: Returns an unmodifiable view of the specified multi-value map.
  
  @param  map the map for which an unmodifiable view is to be returned.
  @return an unmodifiable view of the specified multi-value map.