@Nonnull public static Locale getDisplayLocale (@Nonnull final IRequestWebScopeWithoutResponse aRequestScope) { final Locale aLocale = getRequestState (aRequestScope).getDisplayLocale (); if (aLocale == null) throw new IllegalStateException ("No locale is available"); return aLocale; }
@Nonnull public static IMenuItemPage getMenuItem (@Nonnull final IRequestWebScopeWithoutResponse aRequestScope) { final IMenuItemPage aMenuItem = getRequestState (aRequestScope).getMenuItem (); if (aMenuItem == null) throw new IllegalStateException ("No menu item is present!"); return aMenuItem; }
@Nonnull public static IMenuTree getMenuTree (@Nonnull final IRequestWebScopeWithoutResponse aRequestScope) { final IMenuTree aMenuTree = getRequestState (aRequestScope).getMenuTree (); if (aMenuTree == null) throw new IllegalStateException ("No menu tree is present!"); return aMenuTree; }
@Nullable private static PhotonRequestState _getRequestStateOrNull (@Nonnull final IRequestWebScopeWithoutResponse aRequestScope) { PhotonRequestState ret = aRequestScope.attrs ().getCastedValue (REQUEST_ATTR_STATE); if (ret == null) { // Fallback to last saved state from session final String sAppID = _getApplicationIDOrNull (aRequestScope); if (StringHelper.hasText (sAppID)) { final PhotonSessionState aSessionState = PhotonSessionState.getInstanceIfInstantiated (); if (aSessionState != null) { final PhotonSessionStatePerApp aSessionStatePerApp = aSessionState.state (sAppID); // Is e.g. empty if a new session state was created! if (aSessionStatePerApp.isNotEmpty ()) ret = new PhotonRequestState (aSessionStatePerApp); } // Global state as last resort if (ret == null) ret = new PhotonRequestState (PhotonGlobalState.state (sAppID)); } // else - no app ID - we're lost } return ret; }
aRequestState = new PhotonRequestState (aSessionStatePerApp); aRequestState = new PhotonRequestState (PhotonGlobalState.state (sAppID));
new PhotonRequestState (aMenuTree, aMenuItem, aDisplayLocale));