Class NavigationCase

java.lang.Object
jakarta.faces.application.NavigationCase
Direct Known Subclasses:
NavigationCaseWrapper

public class NavigationCase extends Object

NavigationCase represents a <navigation-case> in the navigation rule base, as well as the <from-view-id> with which this <navigation-case> is a sibling.

Since:
2.0
  • Constructor Details

  • Method Details

    • getActionURL

      public URL getActionURL(FacesContext context) throws MalformedURLException

      Construct an absolute URL to this NavigationCase instance using ViewHandler.getActionURL(FacesContext, String) on the path portion of the url.

      Parameters:
      context - the FacesContext for the current request
      Returns:
      the action URL.
      Throws:
      MalformedURLException - if the process of constructing the URL causes this exception to be thrown.
    • getResourceURL

      public URL getResourceURL(FacesContext context) throws MalformedURLException

      Construct an absolute URL to this NavigationCase instance using ViewHandler.getResourceURL(FacesContext, String) on the path portion of the url.

      Parameters:
      context - the FacesContext for the current request
      Returns:
      the resource URL.
      Throws:
      MalformedURLException - if the process of constructing the URL causes this exception to be thrown.
    • getRedirectURL

      public URL getRedirectURL(FacesContext context) throws MalformedURLException

      Construct an absolute URL suitable for a "redirect" to this NavigationCase instance using ViewHandler.getRedirectURL(FacesContext, String, Map, boolean) on the path portion of the url.

      Parameters:
      context - the FacesContext for the current request
      Returns:
      the redirect URL.
      Throws:
      MalformedURLException - if the process of constructing the URL causes this exception to be thrown.
    • getBookmarkableURL

      public URL getBookmarkableURL(FacesContext context) throws MalformedURLException

      Construct an absolute URL suitable for a bookmarkable link to this NavigationCase instance using ViewHandler.getBookmarkableURL(FacesContext, String, Map, boolean) on the path portion of the url. This URL may include view parameters specified as metadata within the view.

      Parameters:
      context - the FacesContext for the current request
      Returns:
      the bookmarkable URL.
      Throws:
      MalformedURLException - if the process of constructing the URL causes this exception to be thrown.
    • getFromViewId

      public String getFromViewId()

      Return the <from-view-id> of the <navigation-rule> inside which this <navigation-case> is nested.

      Returns:
      the from viedId.
    • getFromAction

      public String getFromAction()

      Return the <from-action> for this <navigation-case>

      Returns:
      the from action.
    • getFromOutcome

      public String getFromOutcome()

      Return the <from-outcome> for this <navigation-case>

      Returns:
      the from outcome.
    • getToViewId

      public String getToViewId(FacesContext context)

      Evaluates the <to-view-id> for this <navigation-case>

      Parameters:
      context - the FacesContext for the current request
      Returns:
      the view ID that should be navigated to
    • getToFlowDocumentId

      public String getToFlowDocumentId()

      If this navigation case represents a flow invocation, this property is the documentId in which the flow whose id is given by the return from getFromOutcome() is defined. Implementations must override this method to return the value defined in the corresponding application configuration resources element. The base implementation returns the empty string.

      Returns:
      the toFlow documentId.
      Since:
      2.2
    • hasCondition

      public boolean hasCondition()

      Test if this navigation case has an associated <if> element.

      Returns:
      true if there's an <if> element associated with this <navigation-case>, otherwise false
    • getCondition

      public Boolean getCondition(FacesContext context)

      Evaluates the <if> for this <navigation-case>, if any. The expression to be evaluated is passed into the constructor as a string. When the expression is evaluated, its value must be coerced into a boolean per the normal Jakarta Expression Language coercion rules.

      Note throws any exceptions encountered during the process of evaluating the expression or obtaining its value.
      Parameters:
      context - the FacesContext for the current request
      Returns:
      null if there is no <if> element associated with this <navigation-case>, otherwise return the evaluation result of the condition
    • getParameters

      public Map<String, List<String>> getParameters()

      Return the parameters to be included for navigation cases requiring a redirect. If no parameters are defined, null will be returned. The keys in the Map are parameter names. For each key, the corresponding value is a List of unconverted values.

      Returns:
      the list of parameters, or null
    • getFragment

      public String getFragment()

      Return the URL fragment identifier (the part after # in a URL) to be appended to the redirect or bookmarkable URL for this navigation case. Returns null when no fragment is defined.

      Returns:
      the URL fragment identifier without the leading #, or null if none is defined
      Since:
      5.0
    • isRedirect

      public boolean isRedirect()

      Return the <redirect> value for this <navigation-case>. This will be true if the new view should be navigated to via a ExternalContext.redirect(String)

      Returns:
      true if this is a redirect, false otherwise.
    • isIncludeViewParams

      public boolean isIncludeViewParams()

      Return the <redirect> value for this <navigation-case>. This will be true if the view parameters should be encoded into the redirect URL (only applies to redirect case)

      When true, view parameter values are obtained from the source view (the view being navigated away from) and encoded into the target URL. See the Jakarta Faces Specification Document section on ViewHandler.getBookmarkableURL() for the complete algorithm and clarifications on view parameter value resolution.

      Returns:
      true if view parameters are to be included, false otherwise.
    • equals

      public boolean equals(Object o)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object