All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.opentripplanner.graph_builder.module.RouteToCentroidStationIdsValidator Maven / Gradle / Ivy

The newest version!
package org.opentripplanner.graph_builder.module;

import java.util.Collection;
import java.util.stream.Collectors;
import org.opentripplanner.graph_builder.issue.api.DataImportIssueStore;
import org.opentripplanner.graph_builder.model.GraphBuilderModule;
import org.opentripplanner.transit.model.framework.AbstractTransitEntity;
import org.opentripplanner.transit.model.framework.FeedScopedId;
import org.opentripplanner.transit.service.TimetableRepository;

public class RouteToCentroidStationIdsValidator implements GraphBuilderModule {

  private final DataImportIssueStore issueStore;
  private final Collection transitRouteToStationCentroid;
  private final TimetableRepository timetableRepository;

  public RouteToCentroidStationIdsValidator(
    DataImportIssueStore issueStore,
    Collection transitRouteToStationCentroid,
    TimetableRepository timetableRepository
  ) {
    this.issueStore = issueStore;
    this.transitRouteToStationCentroid = transitRouteToStationCentroid;
    this.timetableRepository = timetableRepository;
  }

  private void validate() {
    var stationIds = timetableRepository
      .getSiteRepository()
      .listStations()
      .stream()
      .map(AbstractTransitEntity::getId)
      .collect(Collectors.toSet());
    transitRouteToStationCentroid
      .stream()
      .filter(id -> !stationIds.contains(id))
      .forEach(id ->
        issueStore.add(
          "UnknownStationId",
          "Config parameter 'transitRouteToStationCentroid' specified a station that does not exist: %s",
          id
        )
      );
  }

  @Override
  public void buildGraph() {
    validate();
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy