org.apache.pluto.internal.impl
Class MimeResponseImpl

java.lang.Object
  extended by javax.servlet.ServletResponseWrapper
      extended by javax.servlet.http.HttpServletResponseWrapper
          extended by org.apache.pluto.internal.impl.PortletResponseImpl
              extended by org.apache.pluto.internal.impl.MimeResponseImpl
All Implemented Interfaces:
MimeResponse, PortletResponse, javax.servlet.http.HttpServletResponse, javax.servlet.ServletResponse, InternalPortletResponse
Direct Known Subclasses:
RenderResponseImpl, ResourceResponseImpl

public class MimeResponseImpl
extends PortletResponseImpl
implements MimeResponse


Field Summary
 
Fields inherited from interface javax.portlet.MimeResponse
CACHE_SCOPE, ETAG, EXPIRATION_CACHE, MARKUP_HEAD_ELEMENT, NAMESPACED_RESPONSE, PRIVATE_SCOPE, PUBLIC_SCOPE, USE_CACHED_CONTENT
 
Fields inherited from interface javax.servlet.http.HttpServletResponse
SC_ACCEPTED, SC_BAD_GATEWAY, SC_BAD_REQUEST, SC_CONFLICT, SC_CONTINUE, SC_CREATED, SC_EXPECTATION_FAILED, SC_FORBIDDEN, SC_FOUND, SC_GATEWAY_TIMEOUT, SC_GONE, SC_HTTP_VERSION_NOT_SUPPORTED, SC_INTERNAL_SERVER_ERROR, SC_LENGTH_REQUIRED, SC_METHOD_NOT_ALLOWED, SC_MOVED_PERMANENTLY, SC_MOVED_TEMPORARILY, SC_MULTIPLE_CHOICES, SC_NO_CONTENT, SC_NON_AUTHORITATIVE_INFORMATION, SC_NOT_ACCEPTABLE, SC_NOT_FOUND, SC_NOT_IMPLEMENTED, SC_NOT_MODIFIED, SC_OK, SC_PARTIAL_CONTENT, SC_PAYMENT_REQUIRED, SC_PRECONDITION_FAILED, SC_PROXY_AUTHENTICATION_REQUIRED, SC_REQUEST_ENTITY_TOO_LARGE, SC_REQUEST_TIMEOUT, SC_REQUEST_URI_TOO_LONG, SC_REQUESTED_RANGE_NOT_SATISFIABLE, SC_RESET_CONTENT, SC_SEE_OTHER, SC_SERVICE_UNAVAILABLE, SC_SWITCHING_PROTOCOLS, SC_TEMPORARY_REDIRECT, SC_UNAUTHORIZED, SC_UNSUPPORTED_MEDIA_TYPE, SC_USE_PROXY
 
Constructor Summary
MimeResponseImpl(PortletContainer container, InternalPortletWindow internalPortletWindow, javax.servlet.http.HttpServletRequest servletRequest, javax.servlet.http.HttpServletResponse servletResponse)
           
 
Method Summary
 void addDateHeader(java.lang.String arg0, long arg1)
           
 void addHeader(java.lang.String arg0, java.lang.String arg1)
           
 void addIntHeader(java.lang.String arg0, int arg1)
           
 void flushBuffer()
          Forces any content in the buffer to be written to the underlying output stream.
 CacheControl getCacheControl()
          Returns the cache control object allowing to set specific cache settings valid for the markup returned in this response.
 java.lang.String getCharacterEncoding()
          Returns the name of the charset used for the MIME body sent in this response.
 java.util.Locale getLocale()
          Returns the locale assigned to the response.
 javax.servlet.ServletOutputStream getOutputStream()
          TODO: javadoc about why we are using a wrapped writer here.
 java.io.OutputStream getPortletOutputStream()
          Returns a OutputStream suitable for writing binary data in the response.
 java.io.PrintWriter getWriter()
          Returns a PrintWriter object that can send character text to the portal.
 boolean isCommitted()
          Returns a boolean indicating if the response has been committed.
protected  boolean isValidContentType(java.lang.String contentType)
          Checks if the specified content type is valid (supported by the portlet).
 void reset()
          Clears any data that exists in the buffer as well as the properties set.
 void resetBuffer()
          Clears the content of the underlying buffer in the response without clearing properties set.
 void sendRedirect(java.lang.String arg0)
           
 void setBufferSize(int size)
          Sets the preferred buffer size for the body of the response.
 void setDateHeader(java.lang.String arg0, long arg1)
           
 void setHeader(java.lang.String arg0, java.lang.String arg1)
           
 void setIntHeader(java.lang.String arg0, int arg1)
           
 void setStatus(int arg0)
           
 void setStatus(int arg0, java.lang.String arg1)
           
 
Methods inherited from class org.apache.pluto.internal.impl.PortletResponseImpl
addCookie, addProperty, addProperty, addProperty, addProperty, containsHeader, createActionURL, createElement, createRenderURL, createResourceURL, createResourceURL, encodeRedirectUrl, encodeRedirectURL, encodeUrl, encodeURL, getContainer, getHttpServletRequest, getHttpServletResponse, getInternalPortletWindow, getNamespace, isForwarded, isIncluded, sendError, sendError, setForwarded, setIncluded, setProperty
 
Methods inherited from class javax.servlet.ServletResponseWrapper
getBufferSize, getContentType, getResponse, setCharacterEncoding, setContentLength, setContentType, setLocale, setResponse
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface javax.portlet.MimeResponse
addProperty, createActionURL, createRenderURL, createResourceURL, getBufferSize, getContentType, setContentType
 
Methods inherited from interface javax.portlet.PortletResponse
addProperty, addProperty, createElement, encodeURL, getNamespace, setProperty
 
Methods inherited from interface javax.servlet.ServletResponse
getBufferSize, getContentType, setCharacterEncoding, setContentLength, setContentType, setLocale
 

Constructor Detail

MimeResponseImpl

public MimeResponseImpl(PortletContainer container,
                        InternalPortletWindow internalPortletWindow,
                        javax.servlet.http.HttpServletRequest servletRequest,
                        javax.servlet.http.HttpServletResponse servletResponse)
Method Detail

flushBuffer

public void flushBuffer()
                 throws java.io.IOException
Description copied from interface: MimeResponse
Forces any content in the buffer to be written to the underlying output stream. A call to this method automatically commits the response.

Specified by:
flushBuffer in interface MimeResponse
Specified by:
flushBuffer in interface javax.servlet.ServletResponse
Overrides:
flushBuffer in class javax.servlet.ServletResponseWrapper
Throws:
java.io.IOException - if an error occurred when writing the output
See Also:
MimeResponse.setBufferSize(int), MimeResponse.getBufferSize(), MimeResponse.isCommitted(), MimeResponse.reset()

getCacheControl

public CacheControl getCacheControl()
Description copied from interface: MimeResponse
Returns the cache control object allowing to set specific cache settings valid for the markup returned in this response.

Specified by:
getCacheControl in interface MimeResponse
Returns:
Cache control for the current response.

getCharacterEncoding

public java.lang.String getCharacterEncoding()
Description copied from interface: MimeResponse
Returns the name of the charset used for the MIME body sent in this response.

See RFC 2047 for more information about character encoding and MIME.

Specified by:
getCharacterEncoding in interface MimeResponse
Specified by:
getCharacterEncoding in interface javax.servlet.ServletResponse
Overrides:
getCharacterEncoding in class javax.servlet.ServletResponseWrapper
Returns:
a String specifying the name of the charset, for example, ISO-8859-1

getLocale

public java.util.Locale getLocale()
Description copied from interface: MimeResponse
Returns the locale assigned to the response.

Specified by:
getLocale in interface MimeResponse
Specified by:
getLocale in interface javax.servlet.ServletResponse
Overrides:
getLocale in class javax.servlet.ServletResponseWrapper
Returns:
Locale of this response

getPortletOutputStream

public java.io.OutputStream getPortletOutputStream()
                                            throws java.io.IOException
Description copied from interface: MimeResponse
Returns a OutputStream suitable for writing binary data in the response. The portlet container does not encode the binary data.

Before calling this method the content type of the render response must be set using the MimeResponse.setContentType(java.lang.String) method.

Calling flush() on the OutputStream commits the response.

Either this method or MimeResponse.getWriter() may be called to write the body, not both.

Specified by:
getPortletOutputStream in interface MimeResponse
Returns:
a OutputStream for writing binary data
Throws:
java.io.IOException - if an input or output exception occurred
See Also:
PortletResponseImpl.getOutputStream(), getWriter()

getWriter

public java.io.PrintWriter getWriter()
                              throws java.io.IOException,
                                     java.lang.IllegalStateException
Description copied from interface: MimeResponse
Returns a PrintWriter object that can send character text to the portal.

Before calling this method the content type of the render response must be set using the MimeResponse.setContentType(java.lang.String) method.

Either this method or MimeResponse.getPortletOutputStream() may be called to write the body, not both.

Specified by:
getWriter in interface MimeResponse
Specified by:
getWriter in interface javax.servlet.ServletResponse
Overrides:
getWriter in class PortletResponseImpl
Returns:
a PrintWriter object that can return character data to the portal
Throws:
java.io.IOException - if an input or output exception occurred
java.lang.IllegalStateException - if the getPortletOutputStream method has been called on this response, or if no content type was set using the setContentType method.
See Also:
PortletResponseImpl.getWriter(), getPortletOutputStream()

isCommitted

public boolean isCommitted()
Description copied from interface: MimeResponse
Returns a boolean indicating if the response has been committed.

Specified by:
isCommitted in interface MimeResponse
Specified by:
isCommitted in interface javax.servlet.ServletResponse
Overrides:
isCommitted in class javax.servlet.ServletResponseWrapper
Returns:
a boolean indicating if the response has been committed
See Also:
MimeResponse.setBufferSize(int), MimeResponse.getBufferSize(), MimeResponse.flushBuffer(), MimeResponse.reset()

reset

public void reset()
Description copied from interface: MimeResponse
Clears any data that exists in the buffer as well as the properties set. If the response has been committed, this method throws an IllegalStateException.

Specified by:
reset in interface MimeResponse
Specified by:
reset in interface javax.servlet.ServletResponse
Overrides:
reset in class javax.servlet.ServletResponseWrapper
See Also:
MimeResponse.setBufferSize(int), MimeResponse.getBufferSize(), MimeResponse.flushBuffer(), MimeResponse.isCommitted()

resetBuffer

public void resetBuffer()
Description copied from interface: MimeResponse
Clears the content of the underlying buffer in the response without clearing properties set. If the response has been committed, this method throws an IllegalStateException.

Specified by:
resetBuffer in interface MimeResponse
Specified by:
resetBuffer in interface javax.servlet.ServletResponse
Overrides:
resetBuffer in class javax.servlet.ServletResponseWrapper
See Also:
MimeResponse.setBufferSize(int), MimeResponse.getBufferSize(), MimeResponse.isCommitted(), MimeResponse.reset()

setBufferSize

public void setBufferSize(int size)
Description copied from interface: MimeResponse
Sets the preferred buffer size for the body of the response. The portlet container will use a buffer at least as large as the size requested.

This method must be called before any response body content is written; if content has been written, or the portlet container does not support buffering, this method may throw an IllegalStateException.

Specified by:
setBufferSize in interface MimeResponse
Specified by:
setBufferSize in interface javax.servlet.ServletResponse
Overrides:
setBufferSize in class javax.servlet.ServletResponseWrapper
Parameters:
size - the preferred buffer size
See Also:
MimeResponse.getBufferSize(), MimeResponse.flushBuffer(), MimeResponse.isCommitted(), MimeResponse.reset()

addDateHeader

public void addDateHeader(java.lang.String arg0,
                          long arg1)
Specified by:
addDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addDateHeader in class javax.servlet.http.HttpServletResponseWrapper

addHeader

public void addHeader(java.lang.String arg0,
                      java.lang.String arg1)
Specified by:
addHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addHeader in class javax.servlet.http.HttpServletResponseWrapper

addIntHeader

public void addIntHeader(java.lang.String arg0,
                         int arg1)
Specified by:
addIntHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
addIntHeader in class javax.servlet.http.HttpServletResponseWrapper

getOutputStream

public javax.servlet.ServletOutputStream getOutputStream()
                                                  throws java.lang.IllegalStateException,
                                                         java.io.IOException
Description copied from class: PortletResponseImpl
TODO: javadoc about why we are using a wrapped writer here.

Specified by:
getOutputStream in interface javax.servlet.ServletResponse
Overrides:
getOutputStream in class PortletResponseImpl
Throws:
java.lang.IllegalStateException
java.io.IOException
See Also:
PrintWriterServletOutputStream

sendRedirect

public void sendRedirect(java.lang.String arg0)
                  throws java.io.IOException
Specified by:
sendRedirect in interface javax.servlet.http.HttpServletResponse
Overrides:
sendRedirect in class javax.servlet.http.HttpServletResponseWrapper
Throws:
java.io.IOException

setDateHeader

public void setDateHeader(java.lang.String arg0,
                          long arg1)
Specified by:
setDateHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setDateHeader in class javax.servlet.http.HttpServletResponseWrapper

setHeader

public void setHeader(java.lang.String arg0,
                      java.lang.String arg1)
Specified by:
setHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setHeader in class javax.servlet.http.HttpServletResponseWrapper

setIntHeader

public void setIntHeader(java.lang.String arg0,
                         int arg1)
Specified by:
setIntHeader in interface javax.servlet.http.HttpServletResponse
Overrides:
setIntHeader in class javax.servlet.http.HttpServletResponseWrapper

setStatus

public void setStatus(int arg0,
                      java.lang.String arg1)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class javax.servlet.http.HttpServletResponseWrapper

setStatus

public void setStatus(int arg0)
Specified by:
setStatus in interface javax.servlet.http.HttpServletResponse
Overrides:
setStatus in class javax.servlet.http.HttpServletResponseWrapper

isValidContentType

protected boolean isValidContentType(java.lang.String contentType)
Checks if the specified content type is valid (supported by the portlet). The specified content type should be a tripped mime type without any character encoding suffix.

Parameters:
contentType - the content type to check.
Returns:
true if the content type is valid, false otherwise.


Copyright © 2003-2010 Apache Software Foundation. All Rights Reserved.