Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
package org.opentripplanner.routing.algorithm.raptor.transit.request;
import org.opentripplanner.model.FeedScopedId;
import org.opentripplanner.routing.algorithm.raptor.transit.TransitLayer;
import org.opentripplanner.routing.algorithm.raptor.transit.TripPatternWithRaptorStopIndexes;
import org.opentripplanner.routing.algorithm.raptor.transit.TripPatternForDate;
import org.opentripplanner.routing.algorithm.raptor.transit.mappers.DateMapper;
import org.opentripplanner.transit.raptor.api.transit.RaptorTransfer;
import org.opentripplanner.model.TransitMode;
import java.time.Instant;
import java.time.LocalDate;
import java.time.ZonedDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import static java.util.stream.Collectors.toList;
import static java.util.stream.Collectors.toMap;
import static org.opentripplanner.routing.algorithm.raptor.transit.mappers.DateMapper.secondsSinceStartOfTime;
/**
* This class is responsible for creating the internal data structure of
* {@link RaptorRoutingRequestTransitData}. The code is messy so it is nice to NOT have it in
* the transit data class itself, to keep it clean. Another benefit of isolating this code
* is that these methods are only available at construction time.
*/
class RaptorRoutingRequestTransitDataCreator {
private final TransitLayer transitLayer;
private final ZonedDateTime searchStartTime;
private final LocalDate departureDate;
RaptorRoutingRequestTransitDataCreator(
TransitLayer transitLayer, Instant departureTime
) {
this.transitLayer = transitLayer;
this.departureDate = LocalDate.ofInstant(departureTime, transitLayer.getTransitDataZoneId());
this.searchStartTime = DateMapper.asStartOfService(departureDate, transitLayer.getTransitDataZoneId());
}
ZonedDateTime getSearchStartTime() {
return searchStartTime;
}
List> createTripPatternsPerStop(
int additionalPastSearchDays,
int additionalFutureSearchDays,
Set transitModes,
Set bannedRoutes
) {
List