private Frequency doMap(org.onebusaway.gtfs.model.Frequency rhs) { Frequency lhs = new Frequency(); lhs.setTrip(tripMapper.map(rhs.getTrip())); lhs.setStartTime(rhs.getStartTime()); lhs.setEndTime(rhs.getEndTime()); lhs.setHeadwaySecs(rhs.getHeadwaySecs()); lhs.setExactTimes(rhs.getExactTimes()); lhs.setLabelOnly(rhs.getLabelOnly()); return lhs; } }
int startTime = f.getStartTime(); while (startTime < f.getEndTime()) { headwaySecs = f.getHeadwaySecs(); _log.debug("start time = " + startTime); _log.debug("formatted start time = " + gtfsStartTimeString); break; startTime += f.getHeadwaySecs(); int startTime = f.getStartTime(); while (startTime < f.getEndTime()) { headwaySecs = f.getHeadwaySecs(); _log.debug("start time = " + startTime); _log.debug("formatted start time = " + gtfsStartTimeString); break; startTime += f.getHeadwaySecs();
if (f.getExactTimes() == 0) { mExactTimesZeroTripIds.add(f.getTrip().getId().getId()); } else if (f.getExactTimes() == 1) { List<Frequency> frequencyList = mExactTimesOneTrips.get(f.getTrip().getId().getId()); if (frequencyList == null) { frequencyList = new ArrayList<>(); mExactTimesOneTrips.put(f.getTrip().getId().getId(), frequencyList);
private void retainFrequency(Frequency frequency, boolean retainUp) { if (retainUp) { } else { retainDown(frequency.getTrip()); } }
private FrequencyRouteLabelKey getFrequencyLabelKeyForTrip( Frequency frequency, TripEntry trip) { AgencyAndId routeId = trip.getRoute().getId(); AgencyAndId serviceId = trip.getServiceId().getId(); switch (frequency.getLabelOnly()) { // Route case 1: { return new FrequencyRouteLabelKey(routeId, serviceId); } // Direction case 2: { AgencyAndId routeId1 = trip.getRoute().getId(); AgencyAndId serviceId1 = trip.getServiceId().getId(); return new FrequencyDirectionLabelKey(routeId1, serviceId1, trip.getDirectionId()); } // Stops case 3: { List<AgencyAndId> stopIds = MappingLibrary.map(trip.getStopTimes(), "stop.id"); return new FrequencyStopsLabelKey(routeId, serviceId, stopIds); } } return null; }
@Override protected boolean entitiesAreIdentical(Frequency frequencyA, Frequency frequencyB) { if (!frequencyA.getTrip().equals(frequencyB.getTrip())) { return false; } if (frequencyA.getStartTime() != frequencyB.getStartTime()) { return false; } if (frequencyA.getEndTime() != frequencyB.getEndTime()) { return false; } /** * If everything else matches but headway secs, should we consider them the * same? Maybe for fuzzy matching? */ if (frequencyA.getHeadwaySecs() != frequencyB.getHeadwaySecs()) { return false; } return true; } }
@Override protected boolean entitiesAreIdentical(Frequency frequencyA, Frequency frequencyB) { if (!frequencyA.getTrip().equals(frequencyB.getTrip())) { return false; } if (frequencyA.getStartTime() != frequencyB.getStartTime()) { return false; } if (frequencyA.getEndTime() != frequencyB.getEndTime()) { return false; } /** * If everything else matches but headway secs, should we consider them the * same? Maybe for fuzzy matching? */ if (frequencyA.getHeadwaySecs() != frequencyB.getHeadwaySecs()) { return false; } return true; } }
private void processRawFrequency(TransitGraphImpl graph, Frequency frequency, Map<AgencyAndId, List<FrequencyEntry>> frequenciesByTripId, Map<AgencyAndId, Integer> exactTimesValueByTrip) { AgencyAndId tripId = frequency.getTrip().getId(); /** * The value of frequencies.txt exact_times is expected to be the same * across all entries for the same trip id. */ Integer exactTimesValue = exactTimesValueByTrip.get(tripId); if (exactTimesValue == null) { exactTimesValue = frequency.getExactTimes(); exactTimesValueByTrip.put(tripId, exactTimesValue); } else if (exactTimesValue != frequency.getExactTimes()) { throw new IllegalStateException( "The value of frequencies.txt exact_times differed for frequency entries with tripId=" + tripId); } FrequencyEntryImpl entry = new FrequencyEntryImpl(frequency.getStartTime(), frequency.getEndTime(), frequency.getHeadwaySecs(), frequency.getExactTimes()); List<FrequencyEntry> frequencies = frequenciesByTripId.get(tripId); if (frequencies == null) { frequencies = new ArrayList<FrequencyEntry>(); frequenciesByTripId.put(tripId, frequencies); } frequencies.add(entry); }
private void processRawFrequency(TransitGraphImpl graph, Frequency frequency, Map<AgencyAndId, List<FrequencyEntry>> frequenciesByTripId, Map<FrequencyRouteLabelKey, List<FrequencyEntry>> frequencyLabelsByKey) { AgencyAndId tripId = frequency.getTrip().getId(); TripEntry trip = graph.getTripEntryForId(tripId); FrequencyEntryImpl entry = new FrequencyEntryImpl(frequency.getStartTime(), frequency.getEndTime(), frequency.getHeadwaySecs()); FrequencyRouteLabelKey key = getFrequencyLabelKeyForTrip(frequency, trip); if (key != null) { frequencyLabelsByKey.get(key).add(entry); } else { List<FrequencyEntry> frequencies = frequenciesByTripId.get(tripId); if (frequencies == null) { frequencies = new ArrayList<FrequencyEntry>(); frequenciesByTripId.put(tripId, frequencies); } frequencies.add(entry); } }
private Map<AgencyAndId, List<FrequencyEntry>> getFrequenciesByTrip( TransitGraphImpl graph) { Map<AgencyAndId, List<FrequencyEntry>> frequenciesByTripId = new HashMap<AgencyAndId, List<FrequencyEntry>>(); Collection<Frequency> allFrequencies = _gtfsDao.getAllFrequencies(); int frequencyIndex = 0; for (Frequency frequency : allFrequencies) { if (frequencyIndex % 100 == 0) _log.info("frequencies: " + (frequencyIndex++) + "/" + allFrequencies.size()); frequencyIndex++; AgencyAndId tripId = frequency.getTrip().getId(); FrequencyEntryImpl entry = new FrequencyEntryImpl( frequency.getStartTime(), frequency.getEndTime(), frequency.getHeadwaySecs()); List<FrequencyEntry> frequencies = frequenciesByTripId.get(tripId); if (frequencies == null) { frequencies = new ArrayList<FrequencyEntry>(); frequenciesByTripId.put(tripId, frequencies); } frequencies.add(entry); } FrequencyComparator comparator = new FrequencyComparator(); for (List<FrequencyEntry> list : frequenciesByTripId.values()) Collections.sort(list, comparator); return frequenciesByTripId; }
HashMap<Trip, List<Frequency>> tripFrequencies = new HashMap<Trip, List<Frequency>>(); for(Frequency freq : _dao.getAllFrequencies()) { List<Frequency> freqs= tripFrequencies.get(freq.getTrip()); if(freqs == null) { freqs = new ArrayList<Frequency>(); tripFrequencies.put(freq.getTrip(), freqs); } else { for(Frequency freq : frequencies) { for(int i = freq.getStartTime(); i < freq.getEndTime(); i += freq.getHeadwaySecs()) { int diff = i - originalStopTimes.get(0).getArrivalTime(); List<StopTime> newStopTimes = new ArrayList<StopTime>();