javax.faces.lifecycle

## Class Lifecycle

- java.lang.Object
- - javax.faces.lifecycle.Lifecycle

- Direct Known Subclasses:
    LifecycleWrapper

      public abstract class Lifecycle
      extends Object

  Lifecycle manages the processing of the entire lifecycle of a particular JavaServer Faces request. It is responsible for executing all of the phases that have been defined by the JavaServer Faces Specification, in the specified order, unless otherwise directed by activities that occurred during the execution of each phase.

  An instance of `Lifecycle` is created by calling the `getLifecycle()` method of `LifecycleFactory`, for a specified lifecycle identifier. Because this instance is shared across multiple simultaneous requests, it must be implemented in a thread-safe manner.

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `Lifecycle()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract void` | `addPhaseListener(PhaseListener listener)` Register a new `PhaseListener` instance that is interested in being notified before and after the processing for standard phases of the request processing lifecycle.
    `void` | `attachWindow(FacesContext context)` Create or restore the `ClientWindow` to be used to display the `UIViewRoot` for this run through the lifecycle.
    `abstract void` | `execute(FacesContext context)` Execute all of the phases of the request processing lifecycle, up to but not including the Render Response phase, as described in the JavaServer Faces Specification, in the specified order.
    `abstract PhaseListener[]` | `getPhaseListeners()` Return the set of registered `PhaseListener`s for this `Lifecycle` instance.
    `abstract void` | `removePhaseListener(PhaseListener listener)` Deregister an existing `PhaseListener` instance that is no longer interested in being notified before and after the processing for standard phases of the request processing lifecycle.
    `abstract void` | `render(FacesContext context)` Execute the Render Response phase of the request processing lifecycle, unless the `responseComplete()` method has been called on the `FacesContext` instance associated with the current request.

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

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

- - ### Constructor Detail

    - #### Lifecycle

          public Lifecycle()

  - ### Method Detail

    - #### addPhaseListener

          public abstract void addPhaseListener(PhaseListener listener)

      Register a new `PhaseListener` instance that is interested in being notified before and after the processing for standard phases of the request processing lifecycle.

      Parameters:
        `listener` - The `PhaseListener` to be registered
      Throws:
        `NullPointerException` - if `listener` is `null`

    - #### execute

          public abstract void execute(FacesContext context)
                                throws FacesException

      Execute all of the phases of the request processing lifecycle, up to but not including the Render Response phase, as described in the JavaServer Faces Specification, in the specified order. The processing flow can be affected (by the application, by components, or by event listeners) by calls to the `renderResponse()` or `responseComplete()` methods of the `FacesContext` instance associated with the current request.

      Parameters:
        `context` - FacesContext for the request to be processed
      Throws:
        `FacesException` - if thrown during the execution of the request processing lifecycle
        `NullPointerException` - if `context` is `null`

    - #### attachWindow

          public void attachWindow(FacesContext context)

      Create or restore the `ClientWindow` to be used to display the `UIViewRoot` for this run through the lifecycle. See the class documentation for `ClientWindow` for an overview of the feature. If `ExternalContext.getClientWindow()` returns null, create a new instance of `ClientWindow` using the `ClientWindowFactory`. If the result is non-null, call `ClientWindow.decode(javax.faces.context.FacesContext)` on it. Store the new `ClientWindow` by calling `ExternalContext.setClientWindow(javax.faces.lifecycle.ClientWindow)`.

      Since:
        2.2

    - #### getPhaseListeners

          public abstract PhaseListener[] getPhaseListeners()

      Return the set of registered `PhaseListener`s for this `Lifecycle` instance. If there are no registered listeners, a zero-length array is returned.

    - #### removePhaseListener

          public abstract void removePhaseListener(PhaseListener listener)

      Deregister an existing `PhaseListener` instance that is no longer interested in being notified before and after the processing for standard phases of the request processing lifecycle. If no such listener instance has been registered, no action is taken.

      Parameters:
        `listener` - The `PhaseListener` to be deregistered
      Throws:
        `NullPointerException` - if `listener` is `null`

    - #### render

          public abstract void render(FacesContext context)
                               throws FacesException

      Execute the Render Response phase of the request processing lifecycle, unless the `responseComplete()` method has been called on the `FacesContext` instance associated with the current request.

      Parameters:
        `context` - FacesContext for the request being processed
      Throws:
        `FacesException` - if an exception is thrown during the execution of the request processing lifecycle
        `NullPointerException` - if `context` is `null`

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