class ActivityBeansCache {

    @PostConstruct
    void init() {
        registerGwtEditorProvider();

        final Collection<SyncBeanDef<Activity>> availableActivities = getAvailableActivities();

        for (final SyncBeanDef<Activity> activityBean : availableActivities) {

            final String id = activityBean.getName();

            validateUniqueness(id);

            activitiesById.put(id, activityBean);

            if (isSplashScreen(activityBean.getQualifiers())) {
                splashActivities.add((SplashScreenActivity) activityBean.getInstance());
            } else {
                if (isClientEditor(activityBean.getQualifiers())) {
                    registerGwtClientBean(id, activityBean);
                }
                final Pair<Integer, List<String>> metaInfo = generateActivityMetaInfo(activityBean);
                if (metaInfo != null) {
                    addResourceActivity(activityBean,
                                        metaInfo);
                }
            }
        }

        this.resourceTypeManagerCache.sortResourceActivitiesByPriority();
    }

    public  ActivityBeansCache();
    @Inject public  ActivityBeansCache(SyncBeanManager iocManager,
                              Event<NewPerspectiveEvent> newPerspectiveEventEvent,
                              Event<NewWorkbenchScreenEvent> newWorkbenchScreenEventEvent,
                              ResourceTypeManagerCache resourceTypeManagerCache,
                              ExperimentalActivitiesAuthorizationManager experimentalActivitiesAuthorizationManager,
                              GWTEditorNativeRegister gwtEditorNativeRegister);

}