@Override protected void replaceDuplicateEntry(GtfsMergeContext context, Trip oldTrip, Trip newTrip) { GtfsRelationalDao source = context.getSource(); for (StopTime stopTime : source.getStopTimesForTrip(oldTrip)) { stopTime.setTrip(newTrip); } for (Frequency frequency : source.getFrequenciesForTrip(oldTrip)) { frequency.setTrip(newTrip); } }
@Override protected void replaceDuplicateEntry(GtfsMergeContext context, Trip oldTrip, Trip newTrip) { GtfsRelationalDao source = context.getSource(); for (StopTime stopTime : source.getStopTimesForTrip(oldTrip)) { stopTime.setTrip(newTrip); } for (Frequency frequency : source.getFrequenciesForTrip(oldTrip)) { frequency.setTrip(newTrip); } }
@Override public void run(TransformContext context, GtfsMutableRelationalDao dao) { GtfsMutableRelationalDao reference = (GtfsMutableRelationalDao) context.getReferenceReader().getEntityStore(); RemoveEntityLibrary removeEntityLibrary = new RemoveEntityLibrary(); //trips updated, array of mta_ids that we've updated HashMap<String, Trip> tripsUpdated = new HashMap<>(); //trips to remove, list of trips that have duplicate mta_ids ArrayList<Trip> tripsToRemove = new ArrayList<>(); _log.info("Total dao {}", dao.getAllTrips().size()); _log.info("Stop times: {}" , dao.getAllStopTimes().size()); for (Trip trip : dao.getAllTrips()) { if (trip.getMtaTripId() != null) { if (tripsUpdated.containsKey(trip.getMtaTripId())) { tripsToRemove.add(trip); for (StopTime stopTime : dao.getStopTimesForTrip(trip)){ stopTime.setTrip(tripsUpdated.get(trip.getMtaTripId())); } } else { tripsUpdated.put(trip.getMtaTripId(), trip); trip.setId(new AgencyAndId(trip.getId().getAgencyId(), trip.getMtaTripId())); } } } for (Trip tripToRemove : tripsToRemove) { //removeEntityLibrary.removeTrip(dao, tripToRemove); dao.removeEntity(tripToRemove); } _log.info("Total dao {}", dao.getAllTrips().size()); _log.info("Stop times: {}" , dao.getAllStopTimes().size()); }
@Override protected void save(GtfsMergeContext context, IdentityBean<?> entity) { GtfsRelationalDao source = context.getSource(); GtfsMutableRelationalDao target = context.getTarget(); Trip trip = (Trip) entity; // save them out; when the trip is renamed stop time refs will be lost List<StopTime> stopTimes = source.getStopTimesForTrip(trip); super.save(context, entity); for (StopTime stopTime : stopTimes) { stopTime.setId(0); stopTime.setTrip(trip); target.saveEntity(stopTime); } } }
@Override public void run(TransformContext context, GtfsMutableRelationalDao dao) { GtfsReaderContext gtfsReaderContext = context.getReader().getGtfsReaderContext(); Trip trip = getTrip(gtfsReaderContext, dao); List<Stop> stops = getStops(gtfsReaderContext, dao); int[] times = getTimesForStops(stops); for (int i = 0; i < stops.size(); ++i) { StopTime stopTime = new StopTime(); stopTime.setStop(stops.get(i)); stopTime.setStopSequence(i); stopTime.setArrivalTime(times[i]); stopTime.setDepartureTime(times[i]); stopTime.setTrip(trip); dao.saveEntity(stopTime); } }
@Override protected void save(GtfsMergeContext context, IdentityBean<?> entity) { GtfsRelationalDao source = context.getSource(); GtfsMutableRelationalDao target = context.getTarget(); Trip trip = (Trip) entity; // save them out; when the trip is renamed stop time refs will be lost List<StopTime> stopTimes = source.getStopTimesForTrip(trip); super.save(context, entity); for (StopTime stopTime : stopTimes) { stopTime.setId(0); stopTime.setTrip(trip); target.saveEntity(stopTime); } } }
StopTime stopTime = new StopTime(stopTimes.get(i)); stopTime.setId(0); stopTime.setTrip(newTrip); newStopTimes.add(stopTime);
StopTime stopTime = new StopTime(stopTimes.get(i)); stopTime.setId(0); stopTime.setTrip(newTrip); newStopTimes.add(stopTime);
st.setTrip(sdonAtisTrip); st.setStop(stopTime.getStop()); st.setArrivalTime(stopTime.getArrivalTime());
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; } }