/** * Check if the route is available as a registered target. * * @param route * target class to check for registration * @return true if class is registered */ public boolean isRouteRegistered(Class<? extends Component> route) { return handledRegistry.getTargetUrl(route).isPresent(); }
private void validateRouteParameters(Router router, Class<? extends Component> navigationTarget) { if (router == null) { throw new IllegalArgumentException("Router must not be null"); } else if (!router.getRegistry().getTargetUrl(navigationTarget) .isPresent()) { LoggerFactory.getLogger(RouterLink.class) .warn("Creating link for non registered navigationTarget '" + navigationTarget.getName() + "'. If target is not registered when link is used, navigation will fail on a 404 not found."); } }
private String getUrlForTarget(Class<? extends Component> navigationTarget, RouteRegistry registry) { Optional<String> targetUrl = registry.getTargetUrl(navigationTarget); if (!targetUrl.isPresent()) { throw new NotFoundException( "No route found for given navigation target!"); } return targetUrl.get(); }
@Override public Optional<String> getTargetUrl( Class<? extends Component> navigationTarget) { Optional<String> targetUrl = super.getTargetUrl(navigationTarget); if (targetUrl.isPresent()) { return targetUrl; } return parentRegistry.getTargetUrl(navigationTarget); }
/** * Return the url base without any url parameters. * * @param navigationTarget * navigation target to get url for * @return optional url base without url parameters or empty if there is no * registered route for {@code navigationTarget}, not {@code null} */ public Optional<String> getUrlBase( Class<? extends Component> navigationTarget) { Optional<String> targetUrl = handledRegistry .getTargetUrl(navigationTarget); return targetUrl.map(url -> getUrlBase(navigationTarget, url)); }