package com.ms.biz.common;

import org.springframework.util.LinkedMultiValueMap;

/**
 * 不允许有重复key的MultiValueMap
 * 场景:RestTemplate在表单情况下, HttpEntity需要使用MultiValueMap,但是MultiValueMap本身是可以添加相同的key
 *
 * @param <K>
 * @param <V>
 */
public class UniqueKeyMultiValueMap<K, V> extends LinkedMultiValueMap<K, V> {

    @Override
    public void add(K key, V value) {
        if (this.containsKey(key)) {
            throw new IllegalArgumentException("Duplicate key not allowed: " + key);
        }
        super.add(key, value);
    }
}

