package com.ui4j.api.interceptor; import java.net.HttpCookie; import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Map; import java.util.Optional; public class Response { private String url; private Map<String, List<String>> headers; public Response(String url, Map<String, List<String>> headers) { this.url = url; this.headers = headers; } public Map<String, List<String>> getHeaders() { return headers; } public Optional<HttpCookie> getCookie(String name) { for (HttpCookie cookie : getCookies()) { if (cookie.getName().equals(name)) { return Optional.of(cookie); } } return Optional.empty(); } public List<HttpCookie> getCookies() { List<HttpCookie> cookies = new ArrayList<>(); if (headers != null) { List<String> list = headers.get("Set-Cookie"); if (list != null) { for (String next : list) { List<HttpCookie> hc = HttpCookie.parse(next); if (!hc.isEmpty()) { cookies.add(hc.get(0)); } } } } return Collections.unmodifiableList(cookies); } public Optional<String> getHeader(String name) { List<String> values = headers.get(name); if (values != null && !values.isEmpty()) { return Optional.of(values.get(0)); } return Optional.empty(); } public String getUrl() { return url; } @Override public String toString() { return "Response [url=" + url + ", headers=" + headers + "]"; } }