Spring Web Flow

org.springframework.faces.webflow
Class FlowFacesContext

java.lang.Object
  extended by javax.faces.context.FacesContext
      extended by org.springframework.faces.webflow.FlowFacesContext
Direct Known Subclasses:
Jsf2FlowFacesContext

public class FlowFacesContext
extends javax.faces.context.FacesContext

Custom FacesContext implementation that delegates all standard FacesContext messaging functionality to a Spring MessageSource made accessible as part of the current Web Flow request. Additionally, it manages the renderResponse flag in flash scope so that the execution of the JSF Lifecycle may span multiple requests in the case of the POST+REDIRECT+GET pattern being enabled.

Author:
Jeremy Grelle, Phil Webb

Nested Class Summary
protected  class FlowFacesContext.FlowExternalContext
           
 
Constructor Summary
FlowFacesContext(RequestContext context, javax.faces.context.FacesContext delegate)
           
 
Method Summary
 void addMessage(java.lang.String clientId, javax.faces.application.FacesMessage message)
          Translates a FacesMessage to a Spring Web Flow message and adds it to the current MessageContext
 javax.faces.application.Application getApplication()
           
 java.util.Iterator<java.lang.String> getClientIdsWithMessages()
          Returns an Iterator for all component clientId's for which messages have been added.
protected  javax.faces.context.FacesContext getDelegate()
           
 javax.el.ELContext getELContext()
           
 javax.faces.context.ExternalContext getExternalContext()
           
 javax.faces.application.FacesMessage.Severity getMaximumSeverity()
          Return the maximum severity level recorded on any FacesMessages that has been queued, whether or not they are associated with any specific UIComponent.
protected  FlowFacesContextMessageDelegate getMessageDelegate()
           
 java.util.Iterator<javax.faces.application.FacesMessage> getMessages()
          Returns an Iterator for all Messages in the current MessageContext that does translation to FacesMessages.
 java.util.Iterator<javax.faces.application.FacesMessage> getMessages(java.lang.String clientId)
          Returns an Iterator for all Messages with the given clientId in the current MessageContext that does translation to FacesMessages.
 javax.faces.render.RenderKit getRenderKit()
           
 boolean getRenderResponse()
           
 boolean getResponseComplete()
           
 javax.faces.context.ResponseStream getResponseStream()
           
 javax.faces.context.ResponseWriter getResponseWriter()
           
 javax.faces.component.UIViewRoot getViewRoot()
           
static FlowFacesContext newInstance(RequestContext context, javax.faces.lifecycle.Lifecycle lifecycle)
           
 void release()
           
 void renderResponse()
           
 void responseComplete()
           
 void setResponseStream(javax.faces.context.ResponseStream responseStream)
           
 void setResponseWriter(javax.faces.context.ResponseWriter responseWriter)
           
 void setViewRoot(javax.faces.component.UIViewRoot root)
           
 
Methods inherited from class javax.faces.context.FacesContext
getAttributes, getCurrentInstance, getCurrentPhaseId, getExceptionHandler, getMessageList, getMessageList, getNamingContainerSeparatorChar, getPartialViewContext, getResourceLibraryContracts, isPostback, isProcessingEvents, isProjectStage, isReleased, isValidationFailed, setCurrentInstance, setCurrentPhaseId, setExceptionHandler, setProcessingEvents, setResourceLibraryContracts, validationFailed
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FlowFacesContext

public FlowFacesContext(RequestContext context,
                        javax.faces.context.FacesContext delegate)
Method Detail

newInstance

public static FlowFacesContext newInstance(RequestContext context,
                                           javax.faces.lifecycle.Lifecycle lifecycle)

addMessage

public void addMessage(java.lang.String clientId,
                       javax.faces.application.FacesMessage message)
Translates a FacesMessage to a Spring Web Flow message and adds it to the current MessageContext

Specified by:
addMessage in class javax.faces.context.FacesContext

getClientIdsWithMessages

public java.util.Iterator<java.lang.String> getClientIdsWithMessages()
Returns an Iterator for all component clientId's for which messages have been added.

Specified by:
getClientIdsWithMessages in class javax.faces.context.FacesContext

getELContext

public javax.el.ELContext getELContext()
Overrides:
getELContext in class javax.faces.context.FacesContext

getMaximumSeverity

public javax.faces.application.FacesMessage.Severity getMaximumSeverity()
Return the maximum severity level recorded on any FacesMessages that has been queued, whether or not they are associated with any specific UIComponent. If no such messages have been queued, return null.

Specified by:
getMaximumSeverity in class javax.faces.context.FacesContext

getMessages

public java.util.Iterator<javax.faces.application.FacesMessage> getMessages()
Returns an Iterator for all Messages in the current MessageContext that does translation to FacesMessages.

Specified by:
getMessages in class javax.faces.context.FacesContext

getMessages

public java.util.Iterator<javax.faces.application.FacesMessage> getMessages(java.lang.String clientId)
Returns an Iterator for all Messages with the given clientId in the current MessageContext that does translation to FacesMessages.

Specified by:
getMessages in class javax.faces.context.FacesContext

getRenderResponse

public boolean getRenderResponse()
Specified by:
getRenderResponse in class javax.faces.context.FacesContext

getResponseComplete

public boolean getResponseComplete()
Specified by:
getResponseComplete in class javax.faces.context.FacesContext

renderResponse

public void renderResponse()
Specified by:
renderResponse in class javax.faces.context.FacesContext

responseComplete

public void responseComplete()
Specified by:
responseComplete in class javax.faces.context.FacesContext

getApplication

public javax.faces.application.Application getApplication()
Specified by:
getApplication in class javax.faces.context.FacesContext

getExternalContext

public javax.faces.context.ExternalContext getExternalContext()
Specified by:
getExternalContext in class javax.faces.context.FacesContext

getRenderKit

public javax.faces.render.RenderKit getRenderKit()
Specified by:
getRenderKit in class javax.faces.context.FacesContext

getResponseStream

public javax.faces.context.ResponseStream getResponseStream()
Specified by:
getResponseStream in class javax.faces.context.FacesContext

getResponseWriter

public javax.faces.context.ResponseWriter getResponseWriter()
Specified by:
getResponseWriter in class javax.faces.context.FacesContext

getViewRoot

public javax.faces.component.UIViewRoot getViewRoot()
Specified by:
getViewRoot in class javax.faces.context.FacesContext

release

public void release()
Specified by:
release in class javax.faces.context.FacesContext

setResponseStream

public void setResponseStream(javax.faces.context.ResponseStream responseStream)
Specified by:
setResponseStream in class javax.faces.context.FacesContext

setResponseWriter

public void setResponseWriter(javax.faces.context.ResponseWriter responseWriter)
Specified by:
setResponseWriter in class javax.faces.context.FacesContext

setViewRoot

public void setViewRoot(javax.faces.component.UIViewRoot root)
Specified by:
setViewRoot in class javax.faces.context.FacesContext

getDelegate

protected javax.faces.context.FacesContext getDelegate()

getMessageDelegate

protected FlowFacesContextMessageDelegate getMessageDelegate()

Spring Web Flow