/** * Starts the activities in the given set. If any are null or throw an exception from their <code>onStartup()</code> * method, they will not appear in the returned set. * @param activities * @param place * @return */ private Set<Activity> startIfNecessary(Set<Activity> activities, PlaceRequest place) { Set<Activity> validatedActivities = new HashSet<Activity>(); for (Activity activity : activities) { Activity validated = startIfNecessary(activity, place); if (validated != null) { validatedActivities.add(validated); } } return validatedActivities; }
@Override public SplashScreenActivity getSplashScreenInterceptor(final PlaceRequest placeRequest) { SplashScreenActivity resultBean = null; for (SplashScreenActivity splashScreen : activityBeansCache.getSplashScreens()) { if (splashScreen.intercept(placeRequest)) { if (splashScreen.isEnabled()) { resultBean = splashScreen; break; } } } return startIfNecessary(secure(resultBean), placeRequest); }
@Override public Set<Activity> getActivities(final PlaceRequest placeRequest, boolean secure) { final Collection<SyncBeanDef<Activity>> beans; if (placeRequest instanceof PathPlaceRequest) { beans = resolveByPath((PathPlaceRequest) placeRequest); } else { beans = resolveById(placeRequest.getIdentifier()); } final Set<Activity> activities = startIfNecessary(secure(beans, secure), placeRequest); if (placeRequest instanceof PathPlaceRequest) { resolvePathPlaceRequestIdentifier(placeRequest, activities); } return activities; }