addRoute method

void addRoute(
  1. SeafarerRoute route
)

Add a new route to seafarer.

Route is stored in _routeNameMappings.

If a route is provided with a name that was previously added, it will override the old one.

Implementation

void addRoute(SeafarerRoute route) {
  if (_routeNameMappings.containsKey(route.name)) {
    AppLogger.instance.warning(
        "'${route.name}' has already been registered before. Overriding it!");
  }

  // Prepare route params
  final routeParams = <String, SeafarerParam>{};

  if (route.params != null) {
    route.params!.forEach((seafarerParam) {
      if (routeParams.containsKey(seafarerParam.name)) {
        AppLogger.instance.warning(
            "'${seafarerParam.name}' param has already been specified for route $route. Overriding it!");
      }

      routeParams[seafarerParam.name] = seafarerParam;
    });
  }

  _routeNameMappings[route.name] = route;
  _routeParamsMappings[route.name] = routeParams;
}