001
014
015 package com.liferay.util.servlet.filters;
016
017 import com.liferay.portal.kernel.servlet.Header;
018 import com.liferay.portal.kernel.servlet.ServletResponseUtil;
019 import com.liferay.portal.kernel.util.ListUtil;
020
021 import java.io.IOException;
022
023 import java.util.List;
024 import java.util.Map;
025
026 import javax.servlet.http.HttpServletResponse;
027
028
031 public class CacheResponseUtil {
032
033 public static void setHeaders(
034 HttpServletResponse response, Map<String, List<Header>> headers) {
035
036 for (Map.Entry<String, List<Header>> entry : headers.entrySet()) {
037 String headerKey = entry.getKey();
038 List<Header> headerValues = ListUtil.copy(entry.getValue());
039
040 for (Header header : headerValues) {
041 int type = header.getType();
042
043 if (type == Header.COOKIE_TYPE) {
044 response.addCookie(header.getCookieValue());
045 }
046 else if (type == Header.DATE_TYPE) {
047 response.setDateHeader(headerKey, header.getDateValue());
048 }
049 else if (type == Header.INTEGER_TYPE) {
050 response.setIntHeader(headerKey, header.getIntValue());
051 }
052 else if (type == Header.STRING_TYPE) {
053 response.setHeader(headerKey, header.getStringValue());
054 }
055 }
056 }
057 }
058
059 public static void write(
060 HttpServletResponse response, CacheResponseData cacheResponseData)
061 throws IOException {
062
063 setHeaders(response, cacheResponseData.getHeaders());
064
065 response.setContentType(cacheResponseData.getContentType());
066
067 ServletResponseUtil.write(response, cacheResponseData.getByteBuffer());
068 }
069
070 }