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.
Constructor and Description |
---|
ConfigurableNavigationHandler() |
Modifier and Type | Method and Description |
---|---|
abstract NavigationCase |
getNavigationCase(FacesContext context,
java.lang.String fromAction,
java.lang.String outcome)
Return the |
NavigationCase |
getNavigationCase(FacesContext context,
java.lang.String fromAction,
java.lang.String outcome,
java.lang.String toFlowDocumentId)
Return the |
abstract java.util.Map<java.lang.String,java.util.Set<NavigationCase>> |
getNavigationCases()
Return a |
void |
inspectFlow(FacesContext context,
Flow flow)
Called by the flow system to cause the flow to be inspected for navigation rules. |
void |
performNavigation(java.lang.String outcome)
A convenience method to signal the Jakarta Server Faces implementation to perform navigation with the provided outcome. |
handleNavigation, handleNavigation
public abstract NavigationCase getNavigationCase(FacesContext context, java.lang.String fromAction, java.lang.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.
context
- The FacesContext
for the current requestfromAction
- The action binding expression that was evaluated to retrieve the specified
outcome, or null
if the outcome was acquired by some other meansoutcome
- The logical outcome returned by a previous invoked application action (which
may be null
)null
.java.lang.NullPointerException
- if context
is null
public NavigationCase getNavigationCase(FacesContext context, java.lang.String fromAction, java.lang.String outcome, java.lang.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.
context
- The FacesContext
for the current requestfromAction
- The action binding expression that was evaluated to retrieve the specified
outcome, or null
if the outcome was acquired by some other meansoutcome
- 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
)null
.java.lang.NullPointerException
- if context
is null
public abstract java.util.Map<java.lang.String,java.util.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
.
public void performNavigation(java.lang.String outcome)
A convenience method to signal the Jakarta Server 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.
outcome
- the provided outcome.java.lang.IllegalStateException
- if this method is called after this instance has been releasedpublic 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.
context
- the Faces context.flow
- the flow.