private int getMinStopTime(List<StopTime> stopTimes) { int minTime = Integer.MAX_VALUE; for (StopTime stopTime : stopTimes) { if (stopTime.isArrivalTimeSet()) { minTime = Math.min(minTime, stopTime.getArrivalTime()); } if (stopTime.isDepartureTimeSet()) { minTime = Math.min(minTime, stopTime.getDepartureTime()); } } return minTime; }
private int calculateMaxStopTime() { Set<Integer> times = new HashSet<Integer>(); for (StopTime st : _dao.getAllStopTimes()) { if (st.isArrivalTimeSet()) { times.add(st.getArrivalTime()); } if (st.isDepartureTimeSet()) { times.add(st.getDepartureTime()); } } return Collections.max(times); } }
private int[] getScheduleIntervalForTrip(GtfsRelationalDao dao, Trip trip) { List<StopTime> stopTimes = dao.getStopTimesForTrip(trip); if (stopTimes.isEmpty()) { return null; } StopTime first = stopTimes.get(0); StopTime last = stopTimes.get(stopTimes.size() - 1); if (!first.isDepartureTimeSet() || !last.isArrivalTimeSet()) { throw new IllegalStateException( "expected departure time for first stop and arrival time for last stop to be set for trip with id " + trip.getId()); } int minTime = first.getDepartureTime(); int maxTime = last.getArrivalTime(); return new int[] {minTime, maxTime}; } }
private int[] getScheduleIntervalForTrip(GtfsRelationalDao dao, Trip trip) { List<StopTime> stopTimes = dao.getStopTimesForTrip(trip); if (stopTimes.isEmpty()) { return null; } StopTime first = stopTimes.get(0); StopTime last = stopTimes.get(stopTimes.size() - 1); if (!first.isDepartureTimeSet() || !last.isArrivalTimeSet()) { throw new IllegalStateException( "expected departure time for first stop and arrival time for last stop to be set for trip with id " + trip.getId()); } int minTime = first.getDepartureTime(); int maxTime = last.getArrivalTime(); return new int[] {minTime, maxTime}; } }
private void shiftStopTimes(List<StopTime> stopTimes, int time) { for (StopTime stopTime : stopTimes) { if (stopTime.isArrivalTimeSet()) { stopTime.setArrivalTime(stopTime.getArrivalTime() + time); } if (stopTime.isDepartureTimeSet()) { stopTime.setDepartureTime(stopTime.getDepartureTime() + time); } } }
if (!st0.isDepartureTimeSet() && st0.isArrivalTimeSet()) { st0.setDepartureTime(st0.getArrivalTime()); if (!st1.isDepartureTimeSet() && st1.isArrivalTimeSet()) { st1.setDepartureTime(st1.getArrivalTime()); if (!(st0.isDepartureTimeSet() && st0.isArrivalTimeSet())) { for (j = i + 1; j < lastStop + 1; ++j) { st = stopTimes.get(j); if (st.isDepartureTimeSet() || st.isArrivalTimeSet()) { break; st.setArrivalTime(departureTime); if (!st.isDepartureTimeSet()) { st.setDepartureTime(departureTime);
boolean hasDeparture = stopTime.isDepartureTimeSet(); boolean hasArrival = stopTime.isArrivalTimeSet();
/** * Checks E046 "GTFS-rt stop_time_update without time doesn't have arrival/departure_time in GTFS", and adds any errors to the provided error list. * * @param entity entity that the trip_update is from * @param tripUpdate the trip_update to examine * @param stopTimeUpdate the stop_time_update to examine * @param gtfsStopTime the entry from GTFS stop_times.txt that corresponds to the provided GTFS stopTimeUpdate * @param errors the list to add the errors to */ private void checkE046(GtfsRealtime.FeedEntity entity, GtfsRealtime.TripUpdate tripUpdate, GtfsRealtime.TripUpdate.StopTimeUpdate stopTimeUpdate, StopTime gtfsStopTime, List<OccurrenceModel> errors) { StringBuilder prefixBuilder = new StringBuilder(); prefixBuilder.append("GTFS-rt " + GtfsUtils.getTripId(entity, tripUpdate) + " "); prefixBuilder.append(GtfsUtils.getStopTimeUpdateId(stopTimeUpdate) + " "); if (stopTimeUpdate.hasArrival()) { if (!stopTimeUpdate.getArrival().hasTime() && !gtfsStopTime.isArrivalTimeSet()) { String prefix = prefixBuilder.toString() + "arrival.time"; RuleUtils.addOccurrence(ValidationRules.E046, prefix, errors, _log); } } if (stopTimeUpdate.hasDeparture()) { if (!stopTimeUpdate.getDeparture().hasTime() && !gtfsStopTime.isDepartureTimeSet()) { String prefix = prefixBuilder.toString() + "departure.time"; RuleUtils.addOccurrence(ValidationRules.E046, prefix, errors, _log); } } } }
if (lastUnmodifiedStopTime.isDepartureTimeSet() && stopTime.isDepartureTimeSet()) { if (stopTime.getDepartureTime() == lastUnmodifiedStopTime.getDepartureTime()) { stopTime.clearDepartureTime();
private void removeDuplicateStopTimes(List<StopTime> stopTimes) { Collections.sort(stopTimes, new StopTimeComparator()); boolean stopTimeWasModified = false; StopTime lastUnmodifiedStopTime = null; for (StopTime stopTime : stopTimes) { stopTimeWasModified = false; if (lastUnmodifiedStopTime == null) { lastUnmodifiedStopTime = stopTime; continue; } if (lastUnmodifiedStopTime.isArrivalTimeSet() && stopTime.isArrivalTimeSet()) { if (stopTime.getArrivalTime() == lastUnmodifiedStopTime.getArrivalTime()) { stopTime.clearArrivalTime(); stopTimeWasModified = true; } } if (lastUnmodifiedStopTime.isDepartureTimeSet() && stopTime.isDepartureTimeSet()) { if (stopTime.getDepartureTime() == lastUnmodifiedStopTime.getDepartureTime()) { stopTime.clearDepartureTime(); stopTimeWasModified = true; } } // always compare to the last stop time we didn't change if (!stopTimeWasModified) { lastUnmodifiedStopTime = stopTime; } } }
boolean hasDeparture = stopTime.isDepartureTimeSet(); boolean hasArrival = stopTime.isArrivalTimeSet();
boolean hasDeparture = stopTime.isDepartureTimeSet(); boolean hasArrival = stopTime.isArrivalTimeSet();
if(st.isArrivalTimeSet()) modified.setArrivalTime(st.getArrivalTime() + diff); if(st.isDepartureTimeSet()) modified.setDepartureTime(st.getDepartureTime() + diff); newStopTimes.add(modified);
private StopTime cloneStopTime(StopTime original) { StopTime anew = new StopTime(); anew.setTrip(original.getTrip()); anew.setStopSequence(original.getStopSequence()); anew.setStopHeadsign(original.getStopHeadsign()); anew.setStop(original.getStop()); anew.setRouteShortName(original.getRouteShortName()); anew.setPickupType(original.getPickupType()); anew.setId(original.getId()); anew.setDropOffType(original.getDropOffType()); if(original.isShapeDistTraveledSet()) anew.setShapeDistTraveled(original.getShapeDistTraveled()); if(original.isArrivalTimeSet()) anew.setArrivalTime(original.getArrivalTime()); if(original.isDepartureTimeSet()) anew.setDepartureTime(original.getDepartureTime()); return anew; } }