@Override public Optional<ErrorTargetEntry> getErrorNavigationTarget( Exception exception) { initErrorTargets(); return super.getErrorNavigationTarget(exception); }
@Override public Class<?> getPwaConfigurationClass() { initPwa(); return super.getPwaConfigurationClass(); }
@Override public void onStartup(Set<Class<?>> c, ServletContext ctx) throws ServletException { verifyServletVersion(); }
private static ApplicationRouteRegistry createRegistry( ServletContext context) { if (context != null && context == OSGiAccess.getInstance() .getOsgiServletContext()) { return new OSGiDataCollector(); } else if (OSGiAccess.getInstance().getOsgiServletContext() == null) { return new ApplicationRouteRegistry(); } OSGiRouteRegistry osgiRouteRegistry = new OSGiRouteRegistry(); OSGiDataCollector osgiDataCollector = (OSGiDataCollector) getInstance( OSGiAccess.getInstance().getOsgiServletContext()); osgiRouteRegistry.setRoutes(osgiDataCollector.getRegisteredRoutes()); osgiRouteRegistry.subscribeToChanges(osgiDataCollector); return osgiRouteRegistry; } }
private void initPwa() { if (getConfiguration().getRoutes().isEmpty()) { return; } if (OSGiAccess.getInstance().hasInitializers()) { OSGiDataCollector registry = (OSGiDataCollector) getInstance( OSGiAccess.getInstance().getOsgiServletContext()); setPwaConfigurationClass(registry.getPwaConfigurationClass()); } }
/** * Add a new route navigation target. * <p> * When adding a new target it will be validated that it is a valid path to * add with the already existing navigation targets. * * @param target * navigation target to add * @throws InvalidRouteConfigurationException * exception for miss configured routes where navigation targets * can not be clearly selected */ public void addRoute(Class<? extends Component> target) { throwIfImmutable(); addTargetByType(target); }
private Optional<BundleDependencyFilter> createBundleFilterForBrowser( WebBrowser browser, VaadinService service) { return readBundleManifest(browser, service) .flatMap(bundleData -> createDependencyFilter(browser, bundleData, service)); }
private void subscribeToChanges(RouteRegistry routeRegistry) { subscribingRegistrations.add(routeRegistry.addRoutesChangeListener( event -> update(() -> applyChange(event)))); }
@Override public Optional<Class<? extends Component>> getNavigationTarget( String pathString, List<String> segments) { if (getConfiguration().hasRoute(pathString, segments)) { return getConfiguration().getRoute(pathString, segments); } return Optional.empty(); }
@Override public void onStartup(Set<Class<?>> classSet, ServletContext servletContext) throws ServletException { validateClasses(classSet); }
/** * Create a new Route target holder with the given target registered. * * @param target * navigation target * @param mutable * if this should be mutable * @throws InvalidRouteConfigurationException * exception for miss configured routes where navigation targets * can not be clearly selected */ public RouteTarget(Class<? extends Component> target, boolean mutable) { this.mutable = mutable; addTargetByType(target); }
/** * Check if navigation target is present in current target. * * @param target * navigation target to check for * @return true if navigation target is found in some position */ public boolean containsTarget(Class<? extends Component> target) { return getRoutes().contains(target); }
protected Optional<ErrorTargetEntry> getErrorNavigationTarget( Exception exception) { if (registry instanceof ApplicationRouteRegistry) { return ((ApplicationRouteRegistry) registry) .getErrorNavigationTarget(exception); } return Optional.empty(); } }
private boolean isVaadinServlet(ClassLoader classLoader, String className) { return loadClass(classLoader, className) .map(VaadinServlet.class::isAssignableFrom).orElse(false); }
@Override public Optional<Class<? extends Component>> getNavigationTarget( String pathString) { Objects.requireNonNull(pathString, "pathString must not be null."); return getNavigationTarget(pathString, Collections.emptyList()); }
private void initErrorTargets( Map<Class<? extends Exception>, Class<? extends Component>> map) { if (!map.containsKey(NotFoundException.class)) { map.put(NotFoundException.class, RouteNotFoundError.class); } if (!map.containsKey(Exception.class)) { map.put(Exception.class, InternalServerError.class); } configure(configuration -> map.forEach(configuration::setErrorRoute)); }
private boolean allErrorFiltersMatch(Class<? extends Component> target) { return routeFilters.stream() .allMatch(filter -> filter.testErrorNavigationTarget(target)); }
private List<Class<? extends RouterLayout>> getParentLayouts( ConfiguredRoutes configuration, Class<? extends Component> target, String url) { RouteTarget routeTarget = configuration.getRouteTarget(url); if (routeTarget != null) { return routeTarget.getParentLayouts(target); } return Collections.emptyList(); }
@Override public void setRoute(String path, Class<? extends Component> navigationTarget, List<Class<? extends RouterLayout>> parentChain) { configure(configuration -> { RouteTarget routeTarget = addRouteToConfiguration(path, navigationTarget, configuration); routeTarget.setParentLayouts(navigationTarget, parentChain); }); }
/** * Check if there are registered navigation targets in the registry. * * @return true if any navigation are registered */ public boolean hasNavigationTargets() { return !getConfiguration().getRoutes().isEmpty(); }