top.jfunc.http.holder.ValuesMapHolder Maven / Gradle / Ivy
package top.jfunc.http.holder;
import top.jfunc.common.utils.MultiValueMap;
import java.util.Map;
/**
* 多值处理器,对于Query、Header、Form参数可能存在k-v1、v2的情况
* @author xiongshiyan
*/
public interface ValuesMapHolder {
/**
* 请求的多值参数
* @return MultiValueMap maybe Nullable
*/
MultiValueMap get();
/**
* 设置MultiValueMap
* @param multiValueMap 多值参数
* @return this
*/
ValuesMapHolder set(MultiValueMap multiValueMap);
/**
* 设置Map
* @param map 单值参数兼容
* @return this
*/
ValuesMapHolder set(Map map);
/**
* 添加,set方式
* @param key key
* @param value value
* @return this
*/
ValuesMapHolder set(String key, String value);
/**
* set多个kv
* @param entry kv
* @param entries kvs
* @return this
*/
default ValuesMapHolder set(Map.Entry entry, Map.Entry... entries){
set(entry.getKey() , entry.getValue());
for (Map.Entry kv : entries) {
set(kv.getKey() , kv.getValue());
}
return this;
}
/**
* set多个kv
* @param entries kvs
* @return this
*/
@SuppressWarnings("unchecked")
default ValuesMapHolder set(Iterable> entries){
entries.forEach(this::set);
return this;
}
/**
* 添加,add方式
* @param key key
* @param value value
* @return this
*/
ValuesMapHolder add(String key, String value);
/**
* 添加
* @param key key
* @param value value
* @param values values
* @return this
*/
ValuesMapHolder add(String key, String value, String... values);
/**
* 添加
* @param key key
* @param values values
* @return this
*/
ValuesMapHolder add(String key, Iterable values);
/**
* 添加Iterable
* @param multiValueEntries Iterable
* @return this
*/
ValuesMapHolder add(Iterable>> multiValueEntries);
/**
* 添加Map.Entry>
* @param entry Map.Entry
* @param entries Map.Entry
* @return this
*/
ValuesMapHolder add(Map.Entry> entry, Map.Entry>... entries);
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy