use of org.opentripplanner.model.plan.ScheduledTransitLeg in project OpenTripPlanner by opentripplanner.
the class TripTimeShortHelper method getIntermediateTripTimeShortsForLeg.
/**
* Find trip time shorts for all intermediate stops for a leg.
*/
public static List<TripTimeOnDate> getIntermediateTripTimeShortsForLeg(Leg leg) {
if (!leg.isScheduledTransitLeg()) {
return List.of();
}
ScheduledTransitLeg transitLeg = leg.asScheduledTransitLeg();
TripTimes tripTimes = transitLeg.getTripTimes();
TripPattern tripPattern = transitLeg.getTripPattern();
Instant serviceDateMidnight = transitLeg.getServiceDateMidnight();
return IntStream.range(leg.getBoardStopPosInPattern() + 1, leg.getAlightStopPosInPattern()).mapToObj(i -> new TripTimeOnDate(tripTimes, i, tripPattern, serviceDateMidnight)).collect(Collectors.toList());
}
use of org.opentripplanner.model.plan.ScheduledTransitLeg in project OpenTripPlanner by opentripplanner.
the class TripTimeShortHelper method getAllTripTimeShortsForLegsTrip.
/**
* Find trip time shorts for all stops for the full trip of a leg.
*/
public static List<TripTimeOnDate> getAllTripTimeShortsForLegsTrip(Leg leg) {
if (!leg.isScheduledTransitLeg()) {
return List.of();
}
ScheduledTransitLeg transitLeg = leg.asScheduledTransitLeg();
TripTimes tripTimes = transitLeg.getTripTimes();
TripPattern tripPattern = transitLeg.getTripPattern();
Instant serviceDateMidnight = transitLeg.getServiceDateMidnight();
return IntStream.range(0, tripPattern.numberOfStops()).mapToObj(i -> new TripTimeOnDate(tripTimes, i, tripPattern, serviceDateMidnight)).collect(Collectors.toList());
}
use of org.opentripplanner.model.plan.ScheduledTransitLeg in project OpenTripPlanner by opentripplanner.
the class RaptorPathToItineraryMapper method mapTransitLeg.
private Leg mapTransitLeg(Leg prevTransitLeg, TransitPathLeg<TripSchedule> pathLeg, boolean firstLeg) {
TripSchedule tripSchedule = pathLeg.trip();
// Find stop positions in pattern where this leg boards and alights.
// We cannot assume every stop appears only once in a pattern, so we
// have to match stop and time.
int boardStopIndexInPattern = tripSchedule.findDepartureStopPosition(pathLeg.fromTime(), pathLeg.fromStop());
int alightStopIndexInPattern = tripSchedule.findArrivalStopPosition(pathLeg.toTime(), pathLeg.toStop());
Leg leg;
if (tripSchedule.isFrequencyBasedTrip()) {
int frequencyHeadwayInSeconds = tripSchedule.frequencyHeadwayInSeconds();
leg = new FrequencyTransitLeg(tripSchedule.getOriginalTripTimes(), tripSchedule.getOriginalTripPattern(), boardStopIndexInPattern, alightStopIndexInPattern, createCalendar(pathLeg.fromTime() + frequencyHeadwayInSeconds), createCalendar(pathLeg.toTime()), tripSchedule.getServiceDate(), transitSearchTimeZero.getZone().normalized(), (prevTransitLeg == null ? null : prevTransitLeg.getTransferToNextLeg()), (ConstrainedTransfer) pathLeg.getConstrainedTransferAfterLeg(), toOtpDomainCost(pathLeg.generalizedCost()), frequencyHeadwayInSeconds);
} else {
leg = new ScheduledTransitLeg(tripSchedule.getOriginalTripTimes(), tripSchedule.getOriginalTripPattern(), boardStopIndexInPattern, alightStopIndexInPattern, createCalendar(pathLeg.fromTime()), createCalendar(pathLeg.toTime()), tripSchedule.getServiceDate(), transitSearchTimeZero.getZone().normalized(), (prevTransitLeg == null ? null : prevTransitLeg.getTransferToNextLeg()), (ConstrainedTransfer) pathLeg.getConstrainedTransferAfterLeg(), toOtpDomainCost(pathLeg.generalizedCost()));
}
AlertToLegMapper.addTransitAlertPatchesToLeg(graph, leg, firstLeg);
return leg;
}
Aggregations