registerBloc method

void registerBloc(
  1. Bloc bloc
)

Register business module

Implementation

void registerBloc(Bloc bloc) {
  if (blocMap[bloc.moduleName] == null) {
    blocMap[bloc.moduleName] = bloc;

    ReduxBloc reduxBloc = bloc.initialReduxBloc();
    reduxBloc.initBloc();
    // Register redux BLoC
    reduxBlocList.add(reduxBloc);
    // Register page
    Map<String, BlocPageBuilder> pageList = bloc.initialPageList();
    for (final pageName in pageList.keys) {
      if (pageMap['${bloc.moduleName}/$pageName'] == null) {
        pageMap['${bloc.moduleName}/$pageName'] = pageList[pageName]!;
      } else {
        assert(false, 'same page name');
      }
    }

    // Register popup box
    Map<String, BlocPopupBoxBuilder> popupBoxList = bloc.initialPopupBoxList();
    for (final String popupBoxName in popupBoxList.keys) {
      if (popUpBoxMap['${bloc.moduleName}/$popupBoxName'] == null) {
        popUpBoxMap['${bloc.moduleName}/$popupBoxName'] = popupBoxList[popupBoxName]!;
      } else {
        assert(false, 'same popup box name');
      }
    }

    // Register widget
    Map<String, BlocWidgetBuilder> widgetList = bloc.initialWidgetList();
    for (final String widgetName in widgetList.keys) {
      if (widgetMap['${bloc.moduleName}/$widgetName'] == null) {
        widgetMap['${bloc.moduleName}/$widgetName'] = widgetList[widgetName]!;
      } else {
        assert(false, 'same widget name');
      }
    }

    // Register function
    Map<String, BlocFunction> functionList = bloc.initialFunctionList();
    for (final String functionName in functionList.keys) {
      if (functionMap['${bloc.moduleName}/$functionName'] == null) {
        functionMap['${bloc.moduleName}/$functionName'] = functionList[functionName]!;
      } else {
        assert(false, 'same function name');
      }
    }
  } else {
    assert(false, 'same BLoC name');
  }
}