class AbstractArchetypeTablePresenter implements ArchetypeTablePresenter,
                                                                 HasBusyIndicator {

    public void setSelected(final ArchetypeItem archetypeItem,
                            final boolean isSelected) {
        final Map<String, Boolean> selectionMap = getSelectionMap();
        if (selectionMap.containsKey(archetypeItem.getArchetype().getAlias())) {
            getSelectionMap().put(archetypeItem.getArchetype().getAlias(),
                                  isSelected);

            updateSelectionCounter();

            runOnChangedCallback();
        }
    }

    public  AbstractArchetypeTablePresenter(final View view,
                                           final ArchetypeListPresenter archetypeListPresenter,
                                           final BusyIndicatorView busyIndicatorView,
                                           final TranslationService ts,
                                           final AddArchetypeModalPresenter addArchetypeModalPresenter,
                                           final ArchetypePreferences archetypePreferences,
                                           final Caller<ArchetypeService> archetypeService,
                                           final PreferenceScopeFactory preferenceScopeFactory,
                                           final Promises promises);

}