javax.faces.context
Class FacesContext

java.lang.Object
  extended by javax.faces.context.FacesContext

public abstract class FacesContext
extends Object

FacesContext contains all of the per-request state information related to the processing of a single JavaServer Faces request, and the rendering of the corresponding response. It is passed to, and potentially modified by, each phase of the request processing lifecycle.

A FacesContext instance is associated with a particular request at the beginning of request processing, by a call to the getFacesContext() method of the FacesContextFactory instance associated with the current web application. The instance remains active until its release() method is called, after which no further references to this instance are allowed. While a FacesContext instance is active, it must not be referenced from any thread other than the one upon which the servlet container executing this web application utilizes for the processing of this request.


Constructor Summary
FacesContext()
           
 
Method Summary
abstract  void addMessage(String clientId, FacesMessage message)
          Append a FacesMessage to the set of messages associated with the specified client identifier, if clientId is not null.
abstract  Application getApplication()
          Return the Application instance associated with this web application.
abstract  Iterator<String> getClientIdsWithMessages()
          Return an Iterator over the client identifiers for which at least one FacesMessage has been queued.
static FacesContext getCurrentInstance()
          Return the FacesContext instance for the request that is being processed by the current thread, if any.
 ELContext getELContext()
          Return the ELContext instance for this FacesContext instance.
abstract  ExternalContext getExternalContext()
          Return the ExternalContext instance for this FacesContext instance.
abstract  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.
abstract  Iterator<FacesMessage> getMessages()
          Return an Iterator over the FacesMessages that have been queued, whether or not they are associated with any specific client identifier.
abstract  Iterator<FacesMessage> getMessages(String clientId)
          Return an Iterator over the FacesMessages that have been queued that are associated with the specified client identifier (if clientId is not null), or over the FacesMessages that have been queued that are not associated with any specific client identifier (if clientId is null).
abstract  RenderKit getRenderKit()
          Return the RenderKit instance for the render kit identifier specified on our UIViewRoot, if there is one.
abstract  boolean getRenderResponse()
          Return true if the renderResponse() method has been called for the current request.
abstract  boolean getResponseComplete()
          Return true if the responseComplete() method has been called for the current request.
abstract  ResponseStream getResponseStream()
          Return the ResponseStream to which components should direct their binary output.
abstract  ResponseWriter getResponseWriter()
          Return the ResponseWriter to which components should direct their character-based output.
abstract  UIViewRoot getViewRoot()
          Return the root component that is associated with the this request.
abstract  void release()
          Release any resources associated with this FacesContext instance.
abstract  void renderResponse()
          Signal the JavaServer faces implementation that, as soon as the current phase of the request processing lifecycle has been completed, control should be passed to the Render Response phase, bypassing any phases that have not been executed yet.
abstract  void responseComplete()
          Signal the JavaServer Faces implementation that the HTTP response for this request has already been generated (such as an HTTP redirect), and that the request processing lifecycle should be terminated as soon as the current phase is completed.
protected static void setCurrentInstance(FacesContext context)
          Set the FacesContext instance for the request that is being processed by the current thread.
abstract  void setResponseStream(ResponseStream responseStream)
          Set the ResponseStream to which components should direct their binary output.
abstract  void setResponseWriter(ResponseWriter responseWriter)
          Set the ResponseWriter to which components should direct their character-based output.
abstract  void setViewRoot(UIViewRoot root)
          Set the root component that is associated with this request.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

FacesContext

public FacesContext()
Method Detail

getApplication

public abstract Application getApplication()

Return the Application instance associated with this web application.

Throws:
IllegalStateException - if this method is called after this instance has been released

getClientIdsWithMessages

public abstract Iterator<String> getClientIdsWithMessages()

Return an Iterator over the client identifiers for which at least one FacesMessage has been queued. If there are no such client identifiers, an empty Iterator is returned. If any messages have been queued that were not associated with any specific client identifier, a null value will be included in the iterated values. The elements in the Iterator must be returned in the order in which they were added with addMessage(java.lang.String, javax.faces.application.FacesMessage).

Throws:
IllegalStateException - if this method is called after this instance has been released

getELContext

public ELContext getELContext()

Return the ELContext instance for this FacesContext instance. This ELContext instance has the same lifetime and scope as the FacesContext instance with which it is associated, and may be created lazily the first time this method is called for a given FacesContext instance. Upon creation of the ELContext instance, the implementation must take the following action:

The default implementation throws UnsupportedOperationException and is provided for the sole purpose of not breaking existing applications that extend this class.

Throws:
IllegalStateException - if this method is called after this instance has been released
Since:
1.2

getExternalContext

public abstract ExternalContext getExternalContext()

Return the ExternalContext instance for this FacesContext instance.

Throws:
IllegalStateException - if this method is called after this instance has been released

getMaximumSeverity

public abstract 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.

Throws:
IllegalStateException - if this method is called after this instance has been released

getMessages

public abstract Iterator<FacesMessage> getMessages()

Return an Iterator over the FacesMessages that have been queued, whether or not they are associated with any specific client identifier. If no such messages have been queued, return an empty Iterator. The elements of the Iterator must be returned in the order in which they were added with calls to addMessage(java.lang.String, javax.faces.application.FacesMessage).

Throws:
IllegalStateException - if this method is called after this instance has been released

getMessages

public abstract Iterator<FacesMessage> getMessages(String clientId)

Return an Iterator over the FacesMessages that have been queued that are associated with the specified client identifier (if clientId is not null), or over the FacesMessages that have been queued that are not associated with any specific client identifier (if clientId is null). If no such messages have been queued, return an empty Iterator. The elements of the Iterator must be returned in the order in which they were added with calls to addMessage(java.lang.String, javax.faces.application.FacesMessage).

Parameters:
clientId - The client identifier for which messages are requested, or null for messages not associated with any client identifier
Throws:
IllegalStateException - if this method is called after this instance has been released

getRenderKit

public abstract RenderKit getRenderKit()

Return the RenderKit instance for the render kit identifier specified on our UIViewRoot, if there is one. If there is no current UIViewRoot, if the UIViewRoot does not have a specified renderKitId, or if there is no RenderKit for the specified identifier, return null instead.


getRenderResponse

public abstract boolean getRenderResponse()

Return true if the renderResponse() method has been called for the current request.

Throws:
IllegalStateException - if this method is called after this instance has been released

getResponseComplete

public abstract boolean getResponseComplete()

Return true if the responseComplete() method has been called for the current request.

Throws:
IllegalStateException - if this method is called after this instance has been released

getResponseStream

public abstract ResponseStream getResponseStream()

Return the ResponseStream to which components should direct their binary output. Within a given response, components can use either the ResponseStream or the ResponseWriter, but not both.

Throws:
IllegalStateException - if this method is called after this instance has been released

setResponseStream

public abstract void setResponseStream(ResponseStream responseStream)

Set the ResponseStream to which components should direct their binary output.

Parameters:
responseStream - The new ResponseStream for this response
Throws:
NullPointerException - if responseStream is null
IllegalStateException - if this method is called after this instance has been released

getResponseWriter

public abstract ResponseWriter getResponseWriter()

Return the ResponseWriter to which components should direct their character-based output. Within a given response, components can use either the ResponseStream or the ResponseWriter, but not both.

Throws:
IllegalStateException - if this method is called after this instance has been released

setResponseWriter

public abstract void setResponseWriter(ResponseWriter responseWriter)

Set the ResponseWriter to which components should direct their character-based output.

Parameters:
responseWriter - The new ResponseWriter for this response
Throws:
IllegalStateException - if this method is called after this instance has been released
NullPointerException - if responseWriter is null

getViewRoot

public abstract UIViewRoot getViewRoot()

Return the root component that is associated with the this request.

Throws:
IllegalStateException - if this method is called after this instance has been released

setViewRoot

public abstract void setViewRoot(UIViewRoot root)

Set the root component that is associated with this request. This method can only be called by the application handler (or a class that the handler calls), and only during the Invoke Application phase of the request processing lifecycle.

Parameters:
root - The new component UIViewRoot component
Throws:
IllegalStateException - if this method is called after this instance has been released
NullPointerException - if root is null

addMessage

public abstract void addMessage(String clientId,
                                FacesMessage message)

Append a FacesMessage to the set of messages associated with the specified client identifier, if clientId is not null. If clientId is null, this FacesMessage is assumed to not be associated with any specific component instance.

Parameters:
clientId - The client identifier with which this message is associated (if any)
message - The message to be appended
Throws:
IllegalStateException - if this method is called after this instance has been released
NullPointerException - if message is null

release

public abstract void release()

Release any resources associated with this FacesContext instance. Faces implementations may choose to pool instances in the associated FacesContextFactory to avoid repeated object creation and garbage collection. After release() is called on a FacesContext instance (until the FacesContext instance has been recycled by the implementation for re-use), calling any other methods will cause an IllegalStateException to be thrown.

The implementation must call setCurrentInstance(javax.faces.context.FacesContext) passing null to remove the association between this thread and this dead FacesContext instance.

Throws:
IllegalStateException - if this method is called after this instance has been released

renderResponse

public abstract void renderResponse()

Signal the JavaServer faces implementation that, as soon as the current phase of the request processing lifecycle has been completed, control should be passed to the Render Response phase, bypassing any phases that have not been executed yet.

Throws:
IllegalStateException - if this method is called after this instance has been released

responseComplete

public abstract void responseComplete()

Signal the JavaServer Faces implementation that the HTTP response for this request has already been generated (such as an HTTP redirect), and that the request processing lifecycle should be terminated as soon as the current phase is completed.

Throws:
IllegalStateException - if this method is called after this instance has been released

getCurrentInstance

public static FacesContext getCurrentInstance()

Return the FacesContext instance for the request that is being processed by the current thread, if any.


setCurrentInstance

protected static void setCurrentInstance(FacesContext context)

Set the FacesContext instance for the request that is being processed by the current thread.

Parameters:
context - The FacesContext instance for the current thread, or null if this thread no longer has a FacesContext instance.


Submit a bug or feature

Copyright 2007 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms.