Search in sources :

Example 26 with ServiceDate

use of org.onebusaway.gtfs.model.calendar.ServiceDate in project OpenTripPlanner by opentripplanner.

the class CalendarServiceDataFactoryImpl method createData.

@Override
public CalendarServiceData createData() {
    CalendarServiceData data = new CalendarServiceData();
    setTimeZonesForAgencies(data);
    List<AgencyAndId> serviceIds = _dao.getAllServiceIds();
    int index = 0;
    for (AgencyAndId serviceId : serviceIds) {
        index++;
        _log.debug("serviceId=" + serviceId + " (" + index + "/" + serviceIds.size() + ")");
        TimeZone serviceIdTimeZone = data.getTimeZoneForAgencyId(serviceId.getAgencyId());
        if (serviceIdTimeZone == null) {
            serviceIdTimeZone = TimeZone.getDefault();
        }
        Set<ServiceDate> activeDates = getServiceDatesForServiceId(serviceId, serviceIdTimeZone);
        List<ServiceDate> serviceDates = new ArrayList<ServiceDate>(activeDates);
        Collections.sort(serviceDates);
        data.putServiceDatesForServiceId(serviceId, serviceDates);
    // List<String> tripAgencyIds = _dao.getTripAgencyIdsReferencingServiceId(serviceId);
    // Set<TimeZone> timeZones = new HashSet<TimeZone>();
    // for (String tripAgencyId : tripAgencyIds) {
    // TimeZone timeZone = data.getTimeZoneForAgencyId(tripAgencyId);
    // timeZones.add(timeZone);
    // }
    // for (TimeZone timeZone : timeZones) {
    // 
    // List<Date> dates = new ArrayList<Date>(serviceDates.size());
    // for (ServiceDate serviceDate : serviceDates)
    // dates.add(serviceDate.getAsDate(timeZone));
    // 
    // LocalizedServiceId id = new LocalizedServiceId(serviceId, timeZone);
    // data.putDatesForLocalizedServiceId(id, dates);
    // }
    }
    return data;
}
Also used : CalendarServiceData(org.onebusaway.gtfs.model.calendar.CalendarServiceData) TimeZone(java.util.TimeZone) ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) ArrayList(java.util.ArrayList)

Example 27 with ServiceDate

use of org.onebusaway.gtfs.model.calendar.ServiceDate in project OpenTripPlanner by opentripplanner.

the class TimetableSnapshotTest method testResolve.

@Test
public void testResolve() {
    ServiceDate today = new ServiceDate();
    ServiceDate yesterday = today.previous();
    ServiceDate tomorrow = today.next();
    TripPattern pattern = patternIndex.get(new AgencyAndId("agency", "1.1"));
    TimetableSnapshot resolver = new TimetableSnapshot();
    Timetable scheduled = resolver.resolve(pattern, today);
    assertEquals(scheduled, resolver.resolve(pattern, null));
    TripDescriptor.Builder tripDescriptorBuilder = TripDescriptor.newBuilder();
    tripDescriptorBuilder.setTripId("1.1");
    tripDescriptorBuilder.setScheduleRelationship(ScheduleRelationship.CANCELED);
    TripUpdate.Builder tripUpdateBuilder = TripUpdate.newBuilder();
    tripUpdateBuilder.setTrip(tripDescriptorBuilder);
    TripUpdate tripUpdate = tripUpdateBuilder.build();
    // add a new timetable for today
    updateResolver(resolver, pattern, tripUpdate, "agency", today);
    Timetable forNow = resolver.resolve(pattern, today);
    assertEquals(scheduled, resolver.resolve(pattern, yesterday));
    assertNotSame(scheduled, forNow);
    assertEquals(scheduled, resolver.resolve(pattern, tomorrow));
    assertEquals(scheduled, resolver.resolve(pattern, null));
    // add a new timetable for yesterday
    updateResolver(resolver, pattern, tripUpdate, "agency", yesterday);
    Timetable forYesterday = resolver.resolve(pattern, yesterday);
    assertNotSame(scheduled, forYesterday);
    assertNotSame(scheduled, forNow);
    assertEquals(scheduled, resolver.resolve(pattern, tomorrow));
    assertEquals(scheduled, resolver.resolve(pattern, null));
}
Also used : ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) TripUpdate(com.google.transit.realtime.GtfsRealtime.TripUpdate) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) TripDescriptor(com.google.transit.realtime.GtfsRealtime.TripDescriptor) Test(org.junit.Test)

Example 28 with ServiceDate

use of org.onebusaway.gtfs.model.calendar.ServiceDate in project OpenTripPlanner by opentripplanner.

the class TimetableSnapshotTest method testCommit.

@Test(expected = ConcurrentModificationException.class)
public void testCommit() {
    ServiceDate today = new ServiceDate();
    ServiceDate yesterday = today.previous();
    TripPattern pattern = patternIndex.get(new AgencyAndId("agency", "1.1"));
    TimetableSnapshot resolver = new TimetableSnapshot();
    // only return a new snapshot if there are changes
    TimetableSnapshot snapshot = resolver.commit();
    assertNull(snapshot);
    TripDescriptor.Builder tripDescriptorBuilder = TripDescriptor.newBuilder();
    tripDescriptorBuilder.setTripId("1.1");
    tripDescriptorBuilder.setScheduleRelationship(ScheduleRelationship.CANCELED);
    TripUpdate.Builder tripUpdateBuilder = TripUpdate.newBuilder();
    tripUpdateBuilder.setTrip(tripDescriptorBuilder);
    TripUpdate tripUpdate = tripUpdateBuilder.build();
    // add a new timetable for today, commit, and everything should match
    assertTrue(updateResolver(resolver, pattern, tripUpdate, "agency", today));
    snapshot = resolver.commit();
    assertEquals(snapshot.resolve(pattern, today), resolver.resolve(pattern, today));
    assertEquals(snapshot.resolve(pattern, yesterday), resolver.resolve(pattern, yesterday));
    // add a new timetable for today, don't commit, and everything should not match
    assertTrue(updateResolver(resolver, pattern, tripUpdate, "agency", today));
    assertNotSame(snapshot.resolve(pattern, today), resolver.resolve(pattern, today));
    assertEquals(snapshot.resolve(pattern, yesterday), resolver.resolve(pattern, yesterday));
    // add a new timetable for today, on another day, and things should still not match
    assertTrue(updateResolver(resolver, pattern, tripUpdate, "agency", yesterday));
    assertNotSame(snapshot.resolve(pattern, yesterday), resolver.resolve(pattern, yesterday));
    // commit, and things should match
    snapshot = resolver.commit();
    assertEquals(snapshot.resolve(pattern, today), resolver.resolve(pattern, today));
    assertEquals(snapshot.resolve(pattern, yesterday), resolver.resolve(pattern, yesterday));
    // exception if we try to commit to a snapshot
    snapshot.commit();
}
Also used : ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) TripUpdate(com.google.transit.realtime.GtfsRealtime.TripUpdate) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) TripDescriptor(com.google.transit.realtime.GtfsRealtime.TripDescriptor) Test(org.junit.Test)

Example 29 with ServiceDate

use of org.onebusaway.gtfs.model.calendar.ServiceDate in project OpenTripPlanner by opentripplanner.

the class TimetableSnapshotTest method testPurge.

@Test
public void testPurge() {
    ServiceDate today = new ServiceDate();
    ServiceDate yesterday = today.previous();
    TripPattern pattern = patternIndex.get(new AgencyAndId("agency", "1.1"));
    TripDescriptor.Builder tripDescriptorBuilder = TripDescriptor.newBuilder();
    tripDescriptorBuilder.setTripId("1.1");
    tripDescriptorBuilder.setScheduleRelationship(ScheduleRelationship.CANCELED);
    TripUpdate.Builder tripUpdateBuilder = TripUpdate.newBuilder();
    tripUpdateBuilder.setTrip(tripDescriptorBuilder);
    TripUpdate tripUpdate = tripUpdateBuilder.build();
    TimetableSnapshot resolver = new TimetableSnapshot();
    updateResolver(resolver, pattern, tripUpdate, "agency", today);
    updateResolver(resolver, pattern, tripUpdate, "agency", yesterday);
    assertNotSame(resolver.resolve(pattern, yesterday), resolver.resolve(pattern, null));
    assertNotSame(resolver.resolve(pattern, today), resolver.resolve(pattern, null));
    assertNotNull(resolver.commit());
    assertFalse(resolver.isDirty());
    assertTrue(resolver.purgeExpiredData(yesterday));
    assertFalse(resolver.purgeExpiredData(yesterday));
    assertEquals(resolver.resolve(pattern, yesterday), resolver.resolve(pattern, null));
    assertNotSame(resolver.resolve(pattern, today), resolver.resolve(pattern, null));
    assertNull(resolver.commit());
    assertFalse(resolver.isDirty());
}
Also used : ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) TripUpdate(com.google.transit.realtime.GtfsRealtime.TripUpdate) AgencyAndId(org.onebusaway.gtfs.model.AgencyAndId) TripDescriptor(com.google.transit.realtime.GtfsRealtime.TripDescriptor) Test(org.junit.Test)

Example 30 with ServiceDate

use of org.onebusaway.gtfs.model.calendar.ServiceDate in project OpenTripPlanner by opentripplanner.

the class TimetableSnapshotTest method testCompare.

@Test
public void testCompare() {
    Timetable orig = new Timetable(null);
    Timetable a = new Timetable(orig, new ServiceDate().previous());
    Timetable b = new Timetable(orig, new ServiceDate());
    assertEquals(-1, (new TimetableSnapshot.SortedTimetableComparator()).compare(a, b));
}
Also used : ServiceDate(org.onebusaway.gtfs.model.calendar.ServiceDate) Test(org.junit.Test)

Aggregations

ServiceDate (org.onebusaway.gtfs.model.calendar.ServiceDate)134 Test (org.junit.Test)49 Date (java.util.Date)46 AgencyAndId (org.onebusaway.gtfs.model.AgencyAndId)45 ArrayList (java.util.ArrayList)23 ServiceCalendar (org.onebusaway.gtfs.model.ServiceCalendar)23 Calendar (java.util.Calendar)22 ServiceCalendarDate (org.onebusaway.gtfs.model.ServiceCalendarDate)22 HashSet (java.util.HashSet)17 ServiceIdActivation (org.onebusaway.transit_data_federation.services.transit_graph.ServiceIdActivation)14 CalendarServiceData (org.onebusaway.gtfs.model.calendar.CalendarServiceData)13 CalendarService (org.onebusaway.gtfs.services.calendar.CalendarService)13 Set (java.util.Set)11 Trip (org.onebusaway.gtfs.model.Trip)11 TimeZone (java.util.TimeZone)10 GtfsMutableRelationalDao (org.onebusaway.gtfs.services.GtfsMutableRelationalDao)10 TripUpdate (com.google.transit.realtime.GtfsRealtime.TripUpdate)9 LocalizedServiceId (org.onebusaway.gtfs.model.calendar.LocalizedServiceId)9 Agency (org.onebusaway.gtfs.model.Agency)8 TripDescriptor (com.google.transit.realtime.GtfsRealtime.TripDescriptor)7