Interface RouteRegistry

All Superinterfaces:
Serializable
All Known Implementing Classes:
AbstractRouteRegistry, ApplicationRouteRegistry, SessionRouteRegistry

public interface RouteRegistry extends Serializable
The RouteRegistry interface class that gives the out facing usage needs for a route registry implementation.

This is used by Router when resolving navigation and layout chain population.

Since:
1.3
  • Method Details

    • setRoute

      void setRoute(String path, Class<? extends Component> navigationTarget, List<Class<? extends RouterLayout>> parentChain)
      Register a navigation target with specified path and given parent layout chain. Any ParentLayout, Route or RouteAlias will be ignored in route handling.
      Parameters:
      path - path to register navigation target to
      navigationTarget - navigation target to register into session scope
      parentChain - chain of parent layouts that should be used with this target
      Throws:
      InvalidRouteConfigurationException - thrown if exact route already defined in this scope
    • removeRoute

      void removeRoute(Class<? extends Component> navigationTarget)
      Remove the given navigation target route registration.

      Note! this will remove target route and if possible any RouteAlias route that can be found for the class.

      Parameters:
      navigationTarget - navigation target class to remove
    • removeRoute

      void removeRoute(String path)
      Remove the registration for given path.

      In case navigationTarget is a HasUrlParameter, path argument needs to include the parameter placeholder which is added automatically. Otherwise, using removeRoute(String, Class) is preferred in such a case.

      Parameters:
      path - path for which to remove the navigation target.
    • removeRoute

      void removeRoute(String path, Class<? extends Component> navigationTarget)
      Remove navigationTarget for the path.

      This method will check if indeed navigationTarget is registered with path.

      In case navigationTarget is a HasUrlParameter, the path needs to be specified exactly as it is in the Route annotation or as it was registered using setRoute(String, Class, List), without the parameter placeholder which is automatically added.

      Parameters:
      path - path to remove from registry
      navigationTarget - path navigation target to remove
    • getRegisteredRoutes

      List<RouteData> getRegisteredRoutes()
      Get the RouteData for all registered navigation targets.
      Returns:
      list of routes available for this registry
    • getNavigationRouteTarget

      NavigationRouteTarget getNavigationRouteTarget(String url)
      Search for a route target using given navigation url argument.
      Parameters:
      url - the navigation url used to search a route target.
      Returns:
      a NavigationRouteTarget instance containing the RouteTarget and RouteParameters extracted from the url argument according with the route configuration.
    • getRouteTarget

      RouteTarget getRouteTarget(Class<? extends Component> target, RouteParameters parameters)
      Gets the RouteTarget instance matching the given target component and route parameters.
      Parameters:
      target - a component class which is a navigation target.
      parameters - parameter values that may be used with given target.
      Returns:
      the RouteTarget instance matching the given target component and route parameters.
    • getNavigationTarget

      Optional<Class<? extends Component>> getNavigationTarget(String url)
      Gets the optional navigation target class for a given path. Returns an empty optional if no navigation target corresponds to the given url.
      Parameters:
      url - the path to get the navigation target for, not null
      Returns:
      optional of the navigation target corresponding to the given path
    • getNavigationTarget

      Optional<Class<? extends Component>> getNavigationTarget(String url, List<String> segments)
      Gets the optional navigation target class for a given Location matching with path segments.
      Parameters:
      url - path to get navigation target for, not null
      segments - segments given for path
      Returns:
      optional navigation target corresponding to the given location with given segments if any applicable targets found.
      See Also:
    • getTargetUrl

      Optional<String> getTargetUrl(Class<? extends Component> navigationTarget)
      Get the url string for given navigation target.
      Parameters:
      navigationTarget - navigation target to get registered route for, not null
      Returns:
      Optional navigation target url string or Optional.empty() if navigation target was not found
    • getTargetUrl

      Optional<String> getTargetUrl(Class<? extends Component> navigationTarget, RouteParameters parameters)
      Get the url string for given navigation target.
      Parameters:
      navigationTarget - navigation target to get registered route for, not null
      parameters - parameters for the target url.
      Returns:
      Optional navigation target url string or Optional.empty() if navigation target was not found
    • getTemplate

      Optional<String> getTemplate(Class<? extends Component> navigationTarget)
      Get the main template for given navigation target.

      In case of annotated target the main template is composed of the Route annotation value prefixed by all RoutePrefix values of the parent RouterLayouts chain.

      Parameters:
      navigationTarget - navigation target to get route definition for, not null
      Returns:
      Optional navigation target template string or Optional.empty() if navigation target was not found
    • update

      void update(Command command)
      Block updates to the registry configuration from other threads until update command has completed. This makes the command changes atomic for the registry as no one else can change the registry state during the command.

      Any other thread trying to configure current registry will be blocked until the update has released all the locks.

      Parameters:
      command - command to execute for the update
    • addRoutesChangeListener

      Registration addRoutesChangeListener(RoutesChangedListener listener)
      Adds the given route change listener to the registry.
      Parameters:
      listener - listener to be informed on route changes
      Returns:
      registration to remove the listener
    • clean

      void clean()
      Clear all registered routes from the registry.
    • getContext

      VaadinContext getContext()
      Gets the Vaadin context which the registry belongs to.
      Returns:
      the Vaadin context
    • hasMandatoryParameter

      boolean hasMandatoryParameter(Class<? extends Component> navigationTarget)
      Check if the given navigationTarget requires parameters.
      Parameters:
      navigationTarget - navigation target to check
      Returns:
      true if parameters are required
      Throws:
      NotFoundException - if given navigation target is not registered