javax.faces.context

## Class FacesContextFactory

- java.lang.Object
- - javax.faces.context.FacesContextFactory

- All Implemented Interfaces:
    FacesWrapper<FacesContextFactory>

      public abstract class FacesContextFactory
      extends Object
      implements FacesWrapper<FacesContextFactory>

  FacesContextFactory is a factory object that creates (if needed) and returns new `FacesContext` instances, initialized for the processing of the specified request and response objects. Implementations may take advantage of the calls to the `release()` method of the allocated `FacesContext` instances to pool and recycle them, rather than creating a new instance every time.

  There must be one `FacesContextFactory` instance per web application that is utilizing JavaServer Faces. This instance can be acquired, in a portable manner, by calling:

         FacesContextFactory factory = (FacesContextFactory)
          FactoryFinder.getFactory(FactoryFinder.FACES_CONTEXT_FACTORY);

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `FacesContextFactory()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract FacesContext` | `getFacesContext(Object context, Object request, Object response, Lifecycle lifecycle)` Create (if needed) and return a `FacesContext` instance that is initialized for the processing of the specified request and response objects, utilizing the specified `Lifecycle` instance, for this web application.
    `FacesContextFactory` | `getWrapped()` If this factory has been decorated, the implementation doing the decorating may override this method to provide access to the implementation being wrapped.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### FacesContextFactory

          public FacesContextFactory()

  - ### Method Detail

    - #### getWrapped

          public FacesContextFactory getWrapped()

      If this factory has been decorated, the implementation doing the decorating may override this method to provide access to the implementation being wrapped. A default implementation is provided that returns `null`.

      Specified by:
        `getWrapped` in interface `FacesWrapper<FacesContextFactory>`
      Since:
        2.0

    - #### getFacesContext

          public abstract FacesContext getFacesContext(Object context,
                                     Object request,
                                     Object response,
                                     Lifecycle lifecycle)
                                                throws FacesException

      Create (if needed) and return a `FacesContext` instance that is initialized for the processing of the specified request and response objects, utilizing the specified `Lifecycle` instance, for this web application.

      The implementation of this method must ensure that calls to the `getCurrentInstance()` method of `FacesContext`, from the same thread that called this method, will return the same `FacesContext` instance until the `release()` method is called on that instance.

      The implementation must call `ExternalContextFactory.getExternalContext(java.lang.Object, java.lang.Object, java.lang.Object)` to produce the `ExternalContext` for the `FacesContext` instance.

      The default implementation must call `ExceptionHandlerFactory.getExceptionHandler()` and make it so the return from that method is what gets returned from a call to `FacesContext.getExceptionHandler()` on the returned `FacesContext` instance.

      The default implementation must call `ClientWindowFactory.getClientWindow(javax.faces.context.FacesContext)` and make it so the return from that method is what gets returned from a call to `ExternalContext.getClientWindow()` on the returned `ExternalContext` instance.

      Parameters:
        `context` - In servlet environments, the `ServletContext` that is associated with this web application
        `request` - In servlet environments, the `ServletRequest` that is to be processed
        `response` - In servlet environments, the `ServletResponse` that is to be processed
        `lifecycle` - The `Lifecycle` instance being used to process this request
      Throws:
        `FacesException` - if a `FacesContext` cannot be constructed for the specified parameters
        `NullPointerException` - if any of the parameters are `null`

Copyright © 1996-2013, Oracle and/or its affiliates. All Rights Reserved. Use is subject to license terms.