package org.apache.struts2.portlet.servlet; import java.io.IOException; import java.io.PrintWriter; import java.util.Locale; import javax.portlet.MimeResponse; import javax.portlet.PortletResponse; import javax.portlet.ResourceResponse; import javax.servlet.ServletOutputStream; import com.opensymphony.xwork2.util.logging.Logger; import com.opensymphony.xwork2.util.logging.LoggerFactory; /** * PortletServletResponseJSR286. * * @author Rene Gielen */ public class PortletServletResponseJSR286 extends PortletServletResponse { private static final Logger LOG = LoggerFactory.getLogger(PortletServletResponseJSR286.class); public PortletServletResponseJSR286( PortletResponse portletResponse ) { super(portletResponse); } public void flushBuffer() throws IOException { if(portletResponse instanceof MimeResponse) { ((MimeResponse)portletResponse).flushBuffer(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public int getBufferSize() { if(portletResponse instanceof MimeResponse) { return ((MimeResponse)portletResponse).getBufferSize(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public String getCharacterEncoding() { if(portletResponse instanceof MimeResponse) { return ((MimeResponse)portletResponse).getCharacterEncoding(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public String getContentType() { if(portletResponse instanceof MimeResponse) { return ((MimeResponse)portletResponse).getContentType(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public Locale getLocale() { if(portletResponse instanceof MimeResponse) { return ((MimeResponse)portletResponse).getLocale(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public ServletOutputStream getOutputStream() throws IOException { if(portletResponse instanceof MimeResponse) { return new PortletServletOutputStream(((MimeResponse)portletResponse).getPortletOutputStream()); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public PrintWriter getWriter() throws IOException { if(portletResponse instanceof MimeResponse) { return ((MimeResponse)portletResponse).getWriter(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public boolean isCommitted() { if(portletResponse instanceof MimeResponse) { return ((MimeResponse)portletResponse).isCommitted(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public void reset() { if(portletResponse instanceof MimeResponse) { ((MimeResponse)portletResponse).reset(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public void resetBuffer() { if(portletResponse instanceof MimeResponse) { ((MimeResponse)portletResponse).resetBuffer(); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public void setBufferSize(int size) { if(portletResponse instanceof MimeResponse) { ((MimeResponse)portletResponse).setBufferSize(size); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public void setCharacterEncoding(String charset) { if(portletResponse instanceof ResourceResponse) { ((ResourceResponse)portletResponse).setCharacterEncoding(charset); } else { throw new IllegalStateException("Only allowed in resource phase"); } } public void setContentLength(int len) { if(portletResponse instanceof ResourceResponse) { ((ResourceResponse)portletResponse).setContentLength(len); } else { throw new IllegalStateException("Only allowed in resource phase"); } } public void setContentType(String type) { if(portletResponse instanceof MimeResponse) { ((MimeResponse)portletResponse).setContentType(type); } else { throw new IllegalStateException("Only allowed in render or resource phase"); } } public void setLocale(Locale loc) { if(portletResponse instanceof ResourceResponse) { ((ResourceResponse)portletResponse).setLocale(loc); } else { throw new IllegalStateException("Only allowed in resource phase"); } } }