From 837cd56acdb67aeb777f462f6f836ce97a6b5b15 Mon Sep 17 00:00:00 2001 From: Michael Tsang Date: Sat, 31 Aug 2024 12:31:34 +0100 Subject: [PATCH] Skipped stops should always have PickDrop = CANCELLED regardless of the original PickDrop specified in the MFDZ extension --- .../updater/trip/AddedStopTime.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/opentripplanner/updater/trip/AddedStopTime.java b/src/main/java/org/opentripplanner/updater/trip/AddedStopTime.java index 654c420da62..73b47e93af5 100644 --- a/src/main/java/org/opentripplanner/updater/trip/AddedStopTime.java +++ b/src/main/java/org/opentripplanner/updater/trip/AddedStopTime.java @@ -35,19 +35,22 @@ PickDrop dropOff() { } static AddedStopTime ofStopTime(GtfsRealtime.TripUpdate.StopTimeUpdate props) { - if (props.getStopTimeProperties().hasExtension(MfdzRealtimeExtensions.stopTimeProperties)) { + final var scheduleRelationship = props.getScheduleRelationship(); + var pickupType = toPickDrop(scheduleRelationship); + var dropOffType = pickupType; + if ( + scheduleRelationship != GtfsRealtime.TripUpdate.StopTimeUpdate.ScheduleRelationship.SKIPPED && + props.getStopTimeProperties().hasExtension(MfdzRealtimeExtensions.stopTimeProperties) + ) { var ext = props .getStopTimeProperties() .getExtension(MfdzRealtimeExtensions.stopTimeProperties); var pickup = ext.getPickupType(); var dropOff = ext.getDropoffType(); - var dropOffType = PickDropMapper.map(dropOff.getNumber()); - var pickupType = PickDropMapper.map(pickup.getNumber()); - return new AddedStopTime(pickupType, dropOffType); - } else { - var pickDrop = toPickDrop(props.getScheduleRelationship()); - return new AddedStopTime(pickDrop, pickDrop); + dropOffType = PickDropMapper.map(dropOff.getNumber()); + pickupType = PickDropMapper.map(pickup.getNumber()); } + return new AddedStopTime(pickupType, dropOffType); } private static PickDrop toPickDrop(