001
014
015 package com.liferay.portlet;
016
017 import com.liferay.portal.kernel.portlet.LiferayPortletURL;
018 import com.liferay.portal.kernel.util.GetterUtil;
019
020 import java.util.Locale;
021
022 import javax.portlet.PortletRequest;
023 import javax.portlet.PortletURL;
024 import javax.portlet.ResourceRequest;
025 import javax.portlet.ResourceResponse;
026 import javax.portlet.ResourceURL;
027
028 import javax.servlet.http.Cookie;
029 import javax.servlet.http.HttpServletResponse;
030
031
034 public class ResourceResponseImpl
035 extends MimeResponseImpl implements ResourceResponse {
036
037 @Override
038 public void addDateHeader(String name, long date) {
039 _response.addDateHeader(name, date);
040 }
041
042 @Override
043 public void addHeader(String name, String value) {
044 _response.addHeader(name, value);
045 }
046
047 @Override
048 public void addIntHeader(String name, int value) {
049 _response.addIntHeader(name, value);
050 }
051
052 @Override
053 public void addProperty(Cookie cookie) {
054 _response.addCookie(cookie);
055 }
056
057 @Override
058 public PortletURL createActionURL() {
059 return super.createActionURL();
060 }
061
062 @Override
063 public LiferayPortletURL createLiferayPortletURL(
064 String portletName, String lifecycle) {
065
066 ResourceRequest resourceRequest = (ResourceRequest)getPortletRequest();
067
068 String cacheability = resourceRequest.getCacheability();
069
070 if (cacheability.equals(ResourceURL.PAGE)) {
071 }
072 else if (lifecycle.equals(PortletRequest.ACTION_PHASE)) {
073 throw new IllegalStateException(
074 "Unable to create an action URL from a resource response " +
075 "when the cacheability is not set to PAGE");
076 }
077 else if (lifecycle.equals(PortletRequest.RENDER_PHASE)) {
078 throw new IllegalStateException(
079 "Unable to create a render URL from a resource response when " +
080 "the cacheability is not set to PAGE");
081 }
082
083 return super.createLiferayPortletURL(portletName, lifecycle);
084 }
085
086 @Override
087 public PortletURL createRenderURL() {
088 return super.createRenderURL();
089 }
090
091 @Override
092 public ResourceURL createResourceURL() {
093 return super.createResourceURL();
094 }
095
096 @Override
097 public String getLifecycle() {
098 return PortletRequest.RESOURCE_PHASE;
099 }
100
101 public void setCharacterEncoding(String charset) {
102 _response.setCharacterEncoding(charset);
103 }
104
105 public void setContentLength(int length) {
106 _response.setContentLength(length);
107 }
108
109 @Override
110 public void setDateHeader(String name, long date) {
111 _response.setDateHeader(name, date);
112 }
113
114 @Override
115 public void setHeader(String name, String value) {
116 _response.setHeader(name, value);
117
118 if (name.equals(ResourceResponse.HTTP_STATUS_CODE)) {
119 int status = GetterUtil.getInteger(
120 value, HttpServletResponse.SC_OK);
121
122 _response.setStatus(status);
123 }
124 }
125
126 @Override
127 public void setIntHeader(String name, int value) {
128 _response.setIntHeader(name, value);
129 }
130
131 public void setLocale(Locale locale) {
132 _response.setLocale(locale);
133 }
134
135 @Override
136 protected void init(
137 PortletRequestImpl portletRequestImpl, HttpServletResponse response,
138 String portletName, long companyId, long plid) {
139
140 super.init(portletRequestImpl, response, portletName, companyId, plid);
141
142 _response = response;
143 }
144
145 private HttpServletResponse _response;
146
147 }