open.source.exchange.parser.MultiValueMapParser Maven / Gradle / Ivy
package open.source.exchange.parser;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;
import lombok.RequiredArgsConstructor;
import lombok.extern.log4j.Log4j2;
import open.source.exchange.model.ExBase;
import open.source.exchange.model.ExMultiValueMap;
import open.source.exchange.model.ExServerHttpRequest;
@Log4j2
@Service
@RequiredArgsConstructor
public class MultiValueMapParser {
@Autowired
private ObjectParser objectParser;
public ExMultiValueMap parse(MultiValueMap multiValueMap) {
log.trace("parse -> (multiValueMap) {}", multiValueMap);
ExMultiValueMap exMultiValueMap = null;
if (null != multiValueMap) {
ExBase exBase = objectParser.parse(multiValueMap);
exMultiValueMap = new ExMultiValueMap(exBase);
int size = multiValueMap.size();
exMultiValueMap.setSize(size);
boolean isEmpty = multiValueMap.isEmpty();
exMultiValueMap.setEmpty(isEmpty);
if (size > 0) {
Map> mapVsList = new TreeMap>();
for (K key : multiValueMap.keySet()) {
List list = multiValueMap.get(key);
List values = new ArrayList();
values.addAll(list);
mapVsList.put(key, values);
}
exMultiValueMap.setMapVsList(mapVsList);
}
}
return exMultiValueMap;
}
}