javax.portlet.faces
Interface BridgeWriteBehindResponse


public interface BridgeWriteBehindResponse

The BridgeWriteBehindResponse interface defines the api the bridge relies on to acquire the buffered JSP output from the response(Wrapper) used to handle the Faces implementation dependent writeBehindResponse methodlogy/interface.

Note: the Portlet 1.0 Bridge relied on Portlet 1.0 which didn't support response wrappers. In that version the writeBehindResponse behavior is provided in a Servlet ResponseWrapper inserted in a Servlet filter set up to be called on included JSPs. In Portlet 2.0 Bridge this behavior can now be implemented directly in a Portlet ResponseWrapper which can then be registered for use with the bridge. So that the bridge recognizes and use this support, such wrappers must implement this interface.

Implementations must be one of the Portlet 2.0 ResponseWrappers and have a null constructor that utilizes FacesContext.getCurrentInstance().getExternalContext().getResponse() to acquire the response to be wrapped.


Method Summary
 void flushMarkupToWrappedResponse()
          Called by the bridge after dispatching to flush the current buffered content to the wrapped response (this could be a Servlet or Portlet response).
 byte[] getBytes()
          Called by the bridge after dispatching is complete to acquire the AfterJSPContent when the response has been written as bytes.
 char[] getChars()
          Called by the bridge after dispatching is complete to acquire the AfterJSPContent when the response has been written as characters.
 boolean hasFacesWriteBehindMarkup()
          Called by the bridge to detect whether this response actively participated in the Faces writeBehind support and hence has data that should be written after the View is rendered.
 boolean isBytes()
          Called by the bridge after dispatching is complete to determine whether the JSP AfterViewContent was written as bytes (written via an OutputStream
 boolean isChars()
          Called by the bridge after dispatching is complete to determine whether the JSP AfterViewContent was written as chars (written via a PrintWriter
 

Method Detail

isChars

boolean isChars()
Called by the bridge after dispatching is complete to determine whether the JSP AfterViewContent was written as chars (written via a PrintWriter

Returns:
true if the response (buffer) is represented as chars written via the PrintWriter, false otherwise.

getChars

char[] getChars()
Called by the bridge after dispatching is complete to acquire the AfterJSPContent when the response has been written as characters. The bridge writes this buffer to the (real) response.

Returns:
the response as a char[].

isBytes

boolean isBytes()
Called by the bridge after dispatching is complete to determine whether the JSP AfterViewContent was written as bytes (written via an OutputStream

Returns:
true if the response (buffer) is represented as bytes written via the OutputStream, false otherwise.

getBytes

byte[] getBytes()
Called by the bridge after dispatching is complete to acquire the AfterJSPContent when the response has been written as bytes. The bridge writes this buffer to the (real) response.

Returns:
the response as a byte[].

flushMarkupToWrappedResponse

void flushMarkupToWrappedResponse()
                                  throws java.io.IOException
Called by the bridge after dispatching to flush the current buffered content to the wrapped response (this could be a Servlet or Portlet response). This is done in a situation where we aren't supporting writeBehind behavior. We stil use a wrapped/buffered response because we use dispatch.forward which in many environments closes the writer at the end of the forward. If not wrapped, not further writing to the output would be feasible.

Throws:
java.io.IOException - if content cannot be written

hasFacesWriteBehindMarkup

boolean hasFacesWriteBehindMarkup()
Called by the bridge to detect whether this response actively participated in the Faces writeBehind support and hence has data that should be written after the View is rendered. Typically, this method will return true if the Faces write behind implementation specific flush api has been called on this response, otherwise false

Returns:
an indication of whether the response actually particpated in the writeBehind mechanism.


Copyright © 2007-2011 The Apache Software Foundation. All Rights Reserved.