/** * Get the {@link ViewConfiguration} which corresponds to the {@link View} represented by the given * <code>navigationState</code>, if available. * @param navigationState Navigation state * @return Optional {@link ViewConfiguration} */ public Optional<ViewConfiguration> getViewConfiguration(String navigationState) { ViewProvider viewProvider = getViewProvider(navigationState); if (viewProvider != null) { String viewName = viewProvider.getViewName(navigationState); if (viewName != null) { ViewProvider vp = (viewProvider instanceof ViewProviderAdapter) ? ((ViewProviderAdapter) viewProvider).getWrappedProvider() : viewProvider; ViewClassProvider viewClassProvider = viewClassProviders.get(vp); if (viewClassProvider != null) { return viewClassProvider.getViewClass(viewName).map(viewClass -> getViewConfiguration(viewClass)); } } } return Optional.empty(); }