javax.faces.application

## Class ConfigurableNavigationHandler

- java.lang.Object
- - javax.faces.application.NavigationHandler
  - - javax.faces.application.ConfigurableNavigationHandler

- Direct Known Subclasses:
    ConfigurableNavigationHandlerWrapper

      public abstract class ConfigurableNavigationHandler
      extends NavigationHandler

  ConfigurableNavigationHandler extends the contract of `NavigationHandler` to allow runtime inspection of the `NavigationCase`s that make up the rule-base for navigation. An implementation compliant with the version of the specification in which this class was introduced (or a later version) must make it so that its `NavigationHandler` is an extension of this class.

  Since:
    2.0

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `ConfigurableNavigationHandler()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `abstract NavigationCase` | `getNavigationCase(FacesContext context, String fromAction, String outcome)` Return the `NavigationCase` representing the navigation that would be taken had `NavigationHandler.handleNavigation(javax.faces.context.FacesContext, java.lang.String, java.lang.String)` been called with the same arguments or `null` if there is no such case.
    `NavigationCase` | `getNavigationCase(FacesContext context, String fromAction, String outcome, String toFlowDocumentId)` Return the `NavigationCase` representing the navigation that would be taken had `NavigationHandler.handleNavigation(javax.faces.context.FacesContext, java.lang.String, java.lang.String)` been called with the same arguments or `null` if there is no such case.
    `abstract Map<String,Set<NavigationCase>>` | `getNavigationCases()` 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>`.
    `void` | `inspectFlow(FacesContext context, Flow flow)` Called by the flow system to cause the flow to be inspected for navigation rules.
    `void` | `performNavigation(String outcome)` A convenience method to signal the JavaServer Faces implementation to perform navigation with the provided outcome.

    - ### Methods inherited from class javax.faces.application.NavigationHandler

      `handleNavigation, handleNavigation`

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

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

- - ### Constructor Detail

    - #### ConfigurableNavigationHandler

          public ConfigurableNavigationHandler()

  - ### Method Detail

    - #### getNavigationCase

          public abstract NavigationCase getNavigationCase(FacesContext context,
                                         String fromAction,
                                         String outcome)

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

      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`)
      Throws:
        `NullPointerException` - if `context` is `null`
      Since:
        2.0

    - #### getNavigationCase

          public NavigationCase getNavigationCase(FacesContext context,
                                         String fromAction,
                                         String outcome,
                                         String toFlowDocumentId)

      Return the `NavigationCase` representing the navigation that would be taken had `NavigationHandler.handleNavigation(javax.faces.context.FacesContext, java.lang.String, java.lang.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 `getNavigationCase(javax.faces.context.FacesContext, java.lang.String, java.lang.String)`, ignoring the `toFlowDocumentId` parameter.

      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`)
      Throws:
        `NullPointerException` - if `context` is `null`
      Since:
        2.2

    - #### getNavigationCases

          public abstract Map<String,Set<NavigationCase>> getNavigationCases()

      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`.

      Since:
        2.0

    - #### performNavigation

          public void performNavigation(String outcome)

      A convenience method to signal the JavaServer 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.

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

    - #### inspectFlow

          public void inspectFlow(FacesContext context,
                         Flow flow)

      Called by the flow system to cause the flow to be inspected for navigation rules. For backward compatibility with earlier implementations, an empty method is provided.

      Since:
        2.2

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