Class NavigationHandlerWrapper

java.lang.Object
jakarta.faces.application.NavigationHandler
jakarta.faces.application.NavigationHandlerWrapper
All Implemented Interfaces:
FacesWrapper<NavigationHandler>

public abstract class NavigationHandlerWrapper extends NavigationHandler implements FacesWrapper<NavigationHandler>

NavigationHandlerWrapper provides a simple implementation of NavigationHandler that can be subclassed by developers wishing to provide specialized behavior to an existing NavigationHandler instance. The default implementation of all methods is to call through to the wrapped NavigationHandler instance.

Usage: extend this class and push the implementation being wrapped to the constructor and use getWrapped() to access the instance being wrapped.

Since:
2.2
  • Constructor Details

    • NavigationHandlerWrapper

      @Deprecated public NavigationHandlerWrapper()
      Deprecated.
      Use the other constructor taking the implementation being wrapped.
    • NavigationHandlerWrapper

      public NavigationHandlerWrapper(NavigationHandler wrapped)

      If this navigation handler has been decorated, the implementation doing the decorating should push the implementation being wrapped to this constructor. The getWrapped() will then return the implementation being wrapped.

      Parameters:
      wrapped - The implementation being wrapped.
      Since:
      2.3
  • Method Details

    • getWrapped

      public NavigationHandler getWrapped()
      Description copied from interface: FacesWrapper

      A class that implements this interface uses this method to return an instance of the class being wrapped.

      Specified by:
      getWrapped in interface FacesWrapper<NavigationHandler>
      Returns:
      the wrapped instance.
    • handleNavigation

      public void handleNavigation(FacesContext context, String fromAction, String outcome)
      Description copied from class: NavigationHandler

      Perform navigation processing based on the state information in the specified FacesContext, plus the outcome string returned by an executed application action.

      If the implementation class also extends ConfigurableNavigationHandler, the implementation must guarantee that the logic used in a call to ConfigurableNavigationHandler.getNavigationCase(FacesContext, String, String) is used in this method to determine the correct navigation.

      This method must set the render targets (used in partial rendering) to render all invoking PartialViewContext.setRenderAll(boolean)) if the view identifier has changed as the result of an application action (to take into account Ajax requests).

      Specified by:
      handleNavigation in class NavigationHandler
      Parameters:
      context - The FacesContext for the current request
      fromAction - The action binding expression that was evaluated to retrieve the specified outcome, or null if the outcome was acquired by some other means
      outcome - The logical outcome returned by a previous invoked application action (which may be null)
    • handleNavigation

      public void handleNavigation(FacesContext context, String fromAction, String outcome, String toFlowDocumentId)
      Description copied from class: NavigationHandler

      Overloaded variant of NavigationHandler.handleNavigation(jakarta.faces.context.FacesContext, java.lang.String, java.lang.String) that allows the caller to provide the defining document id for a flow to be entered by this navigation. For backward compatibility with decorated NavigationHandler implementations that conform to an earlier version of the specification, an implementation is provided that calls through to NavigationHandler.handleNavigation(jakarta.faces.context.FacesContext, java.lang.String, java.lang.String), ignoring the toFlowDocumentId parameter.

      Overrides:
      handleNavigation in class NavigationHandler
      Parameters:
      context - The FacesContext for the current request
      fromAction - The action binding expression that was evaluated to retrieve the specified outcome, or null if the outcome was acquired by some other means
      outcome - The logical outcome returned by a previous invoked application action (which may be null)
      toFlowDocumentId - The defining document id of the flow into which this navigation will cause entry.
    • getNavigationCase

      public NavigationCase getNavigationCase(FacesContext context, String fromAction, String outcome)
      Description copied from class: NavigationHandler

      Return the NavigationCase representing the navigation that would be taken had NavigationHandler.handleNavigation(FacesContext, String, String) been called with the same arguments or null if there is no such case.

      Historically this method was declared in ConfigurableNavigationHandler since 2.0. For backward compatibility with earlier implementations, a default implementation is provided which returns null.

      Overrides:
      getNavigationCase in class NavigationHandler
      Parameters:
      context - The FacesContext for the current request
      fromAction - The action binding expression that was evaluated to retrieve the specified outcome, or null if the outcome was acquired by some other means
      outcome - The logical outcome returned by a previous invoked application action (which may be null)
      Returns:
      the navigation case, or null.
    • getNavigationCases

      public Map<String, Set<NavigationCase>> getNavigationCases()
      Description copied from class: NavigationHandler

      Return a Map<String, Set<NavigationCase>> where the keys are <from-view-id> values and the values are Set<NavigationCase> where each element in the Set is a NavigationCase that applies to that <from-view-id>. The implementation must support live modifications to this Map.

      Historically this method was declared in ConfigurableNavigationHandler since 2.0. For backward compatibility with earlier implementations, a default implementation is provided which returns an empty map.

      Overrides:
      getNavigationCases in class NavigationHandler
      Returns:
      a map with navigation cases.
    • getNavigationCase

      public NavigationCase getNavigationCase(FacesContext context, String fromAction, String outcome, String toFlowDocumentId)
      Description copied from class: NavigationHandler

      Return the NavigationCase representing the navigation that would be taken had NavigationHandler.handleNavigation(FacesContext, String, String) been called with the same arguments or null if there is no such case. Implementations that comply the version of the specification in which this method was introduced must override this method. For compatibility with decorated implementations that comply with an earlier version of the specification, an implementation is provided that simply calls through to NavigationHandler.getNavigationCase(jakarta.faces.context.FacesContext, java.lang.String, java.lang.String), ignoring the toFlowDocumentId parameter.

      Historically this method was declared in ConfigurableNavigationHandler since 2.2.

      Overrides:
      getNavigationCase in class NavigationHandler
      Parameters:
      context - The FacesContext for the current request
      fromAction - The action binding expression that was evaluated to retrieve the specified outcome, or null if the outcome was acquired by some other means
      outcome - The logical outcome returned by a previous invoked application action (which may be null)
      toFlowDocumentId - The value of the toFlowDocumentId property for the navigation case (which may be null)
      Returns:
      the navigation case, or null.
    • performNavigation

      public void performNavigation(String outcome)
      Description copied from class: NavigationHandler

      A convenience method to signal the Jakarta Faces implementation to perform navigation with the provided outcome. When the NavigationHandler is invoked, the current viewId is treated as the "from viewId" and the "from action" is null.

      Historically this method was declared in ConfigurableNavigationHandler since 2.0.

      Overrides:
      performNavigation in class NavigationHandler
      Parameters:
      outcome - the provided outcome.
    • inspectFlow

      public void inspectFlow(FacesContext context, Flow flow)
      Description copied from class: NavigationHandler

      Called by the flow system to cause the flow to be inspected for navigation rules.

      Historically this method was declared in ConfigurableNavigationHandler since 2.2. For backward compatibility with earlier implementations, a default implementation is provided which does nothing.

      Overrides:
      inspectFlow in class NavigationHandler
      Parameters:
      context - the Faces context.
      flow - the flow.