private ServiceCalendarDate doMap(org.onebusaway.gtfs.model.ServiceCalendarDate rhs) { ServiceCalendarDate lhs = new ServiceCalendarDate(); lhs.setServiceId(AgencyAndIdMapper.mapAgencyAndId(rhs.getServiceId())); lhs.setDate(ServiceDateMapper.mapServiceDate(rhs.getDate())); lhs.setExceptionType(rhs.getExceptionType()); return lhs; }
boolean dateRangeIncludesServiceDate = daysOfTheWeekToUse.contains(dayOfWeek); if (isActive && !dateRangeIncludesServiceDate) { ServiceCalendarDate scd = new ServiceCalendarDate(); scd.setDate(serviceDate); scd.setExceptionType(ServiceCalendarDate.EXCEPTION_TYPE_ADD); scd.setServiceId(updatedServiceId); newEntities.add(scd); ServiceCalendarDate scd = new ServiceCalendarDate(); scd.setDate(serviceDate); scd.setExceptionType(ServiceCalendarDate.EXCEPTION_TYPE_REMOVE); scd.setServiceId(updatedServiceId); newEntities.add(scd); ServiceCalendarDate scd = new ServiceCalendarDate(); scd.setDate(serviceDate); scd.setExceptionType(ServiceCalendarDate.EXCEPTION_TYPE_ADD); scd.setServiceId(updatedServiceId); newEntities.add(scd);
private void addAndRemoveDatesFromCalendarDate( ServiceCalendarDate calendarDate, TimeZone serviceIdTimeZone, Set<ServiceDate> activeDates) { ServiceDate serviceDate = calendarDate.getDate(); Date targetDate = calendarDate.getDate().getAsDate(); Calendar c = Calendar.getInstance(); c.setTime(targetDate); switch (calendarDate.getExceptionType()) { case ServiceCalendarDate.EXCEPTION_TYPE_ADD: addServiceDate(activeDates, serviceDate, serviceIdTimeZone); break; case ServiceCalendarDate.EXCEPTION_TYPE_REMOVE: activeDates.remove(serviceDate); break; default: _log.warn("unknown CalendarDate exception type: " + calendarDate.getExceptionType()); break; } }
@Override public int compare(ServiceCalendarDate o1, ServiceCalendarDate o2) { AgencyAndId id1 = o1.getServiceId(); AgencyAndId id2 = o2.getServiceId(); int c = id1.compareTo(id2); if (c != 0) return c; ServiceDate d1 = o1.getDate(); ServiceDate d2 = o2.getDate(); return d1.compareTo(d2); } }
serviceCalendarDate.getServiceId().setAgencyId(reader.getDefaultAgencyId());
/** * Replaces all references to the specified old service_id with the new * service_id for all {@link ServiceCalendar}, {@link ServiceCalendarDate}, * and {@link Trip} entities in the source feed. */ @Override protected void renameKey(GtfsMergeContext context, AgencyAndId oldId, AgencyAndId newId) { GtfsRelationalDao source = context.getSource(); ServiceCalendar calendar = source.getCalendarForServiceId(oldId); if (calendar != null) { calendar.setServiceId(newId); } for (ServiceCalendarDate calendarDate : source.getCalendarDatesForServiceId(oldId)) { calendarDate.setServiceId(newId); } for (Trip trip : source.getTripsForServiceId(oldId)) { trip.setServiceId(newId); } }
/** * Writes all {@link ServiceCalendar} and {@link ServiceCalendarDate} entities * with the specified {@code service_id} to the merged output feed. */ @Override protected void saveElementsForKey(GtfsMergeContext context, AgencyAndId serviceId) { GtfsRelationalDao source = context.getSource(); GtfsMutableRelationalDao target = context.getTarget(); ServiceCalendar calendar = source.getCalendarForServiceId(serviceId); if (calendar != null) { calendar.setId(0); target.saveEntity(calendar); } for (ServiceCalendarDate calendarDate : source.getCalendarDatesForServiceId(serviceId)) { calendarDate.setId(0); target.saveEntity(calendarDate); } }
@Override public void run(TransformContext context, GtfsMutableRelationalDao dao) { Date today = removeTime(new Date()); boolean hasEntryToday; for (AgencyAndId aai : dao.getAllServiceIds()) { hasEntryToday = false; for (ServiceCalendarDate calDate : dao.getCalendarDatesForServiceId(aai)) { Date date = removeTime(calDate.getDate().getAsDate()); if (date.equals(today)) { hasEntryToday = true; if (calDate.getExceptionType() == 1) { calDate.setExceptionType(2); dao.saveOrUpdateEntity(calDate); } } } if (!hasEntryToday) { _log.error("No entry for today, adding one, id: {}", aai); ServiceCalendarDate calendarDate = new ServiceCalendarDate(); calendarDate.setServiceId(aai); calendarDate.setDate(new ServiceDate(today)); calendarDate.setExceptionType(2); dao.saveOrUpdateEntity(calendarDate); } } }
private void addAndRemoveDatesFromCalendarDate( ServiceCalendarDate calendarDate, TimeZone serviceIdTimeZone, Set<ServiceDate> activeDates) { ServiceDate serviceDate = calendarDate.getDate(); Date targetDate = calendarDate.getDate().getAsDate(); Calendar c = Calendar.getInstance(); c.setTime(targetDate); switch (calendarDate.getExceptionType()) { case ServiceCalendarDate.EXCEPTION_TYPE_ADD: addServiceDate(activeDates, serviceDate, serviceIdTimeZone); break; case ServiceCalendarDate.EXCEPTION_TYPE_REMOVE: activeDates.remove(serviceDate); break; default: _log.warn("unknown CalendarDate exception type: " + calendarDate.getExceptionType()); break; } }
@Override public int compare(ServiceCalendarDate o1, ServiceCalendarDate o2) { AgencyAndId id1 = o1.getServiceId(); AgencyAndId id2 = o2.getServiceId(); int c = id1.compareTo(id2); if (c != 0) return c; ServiceDate d1 = o1.getDate(); ServiceDate d2 = o2.getDate(); return d1.compareTo(d2); } }
private int getNextServiceId(GtfsMutableRelationalDao dao) { ArrayList<Integer> idList = new ArrayList<>(); for (ServiceCalendarDate svcDate : dao.getAllCalendarDates()) { if (isInt(svcDate.getServiceId().getId())) { idList.add(Integer.parseInt(svcDate.getServiceId().getId())); } } return Collections.max(idList) + 1; }
/** * Replaces all references to the specified old service_id with the new * service_id for all {@link ServiceCalendar}, {@link ServiceCalendarDate}, * and {@link Trip} entities in the source feed. */ @Override protected void renameKey(GtfsMergeContext context, AgencyAndId oldId, AgencyAndId newId) { GtfsRelationalDao source = context.getSource(); ServiceCalendar calendar = source.getCalendarForServiceId(oldId); if (calendar != null) { calendar.setServiceId(newId); } for (ServiceCalendarDate calendarDate : source.getCalendarDatesForServiceId(oldId)) { calendarDate.setServiceId(newId); } for (Trip trip : source.getTripsForServiceId(oldId)) { trip.setServiceId(newId); } }
/** * Writes all {@link ServiceCalendar} and {@link ServiceCalendarDate} entities * with the specified {@code service_id} to the merged output feed. */ @Override protected void saveElementsForKey(GtfsMergeContext context, AgencyAndId serviceId) { GtfsRelationalDao source = context.getSource(); GtfsMutableRelationalDao target = context.getTarget(); ServiceCalendar calendar = source.getCalendarForServiceId(serviceId); if (calendar != null) { calendar.setId(0); target.saveEntity(calendar); } for (ServiceCalendarDate calendarDate : source.getCalendarDatesForServiceId(serviceId)) { calendarDate.setId(0); target.saveEntity(calendarDate); } }
int dayOfWeek = serviceDateAsCalendar.get(Calendar.DAY_OF_WEEK); if (daysOfTheWeekToUse.contains(dayOfWeek)) { ServiceCalendarDate scd = new ServiceCalendarDate(); scd.setDate(serviceDate); scd.setExceptionType(ServiceCalendarDate.EXCEPTION_TYPE_ADD); scd.setServiceId(serviceId); dao.saveEntity(scd);
Date date = removeTime(calDate.getDate().getAsDate()); if (date.equals(testDate)) { hasCalDateException = true; if (calDate.getExceptionType() == 1) { if (calDate.getExceptionType() == 2) {
private int getNextServiceId(GtfsMutableRelationalDao dao) { ArrayList<Integer> idList = new ArrayList<>(); for (ServiceCalendarDate svcDate : dao.getAllCalendarDates()) { if (isInt(svcDate.getServiceId().getId())) { idList.add(Integer.parseInt(svcDate.getServiceId().getId())); } } return Collections.max(idList) + 1; }
@Override public void run(TransformContext context, GtfsMutableRelationalDao dao, Object entity) { AgencyAndId oldServiceId = context.resolveId(ServiceIdKey.class, _oldServiceId); AgencyAndId newServiceId = context.resolveId(ServiceIdKey.class, _newServiceId); ServiceCalendar calendar = dao.getCalendarForServiceId(oldServiceId); if (calendar != null) { calendar.setServiceId(newServiceId); } for (ServiceCalendarDate calendarDate : dao.getCalendarDatesForServiceId(oldServiceId)) { calendarDate.setServiceId(newServiceId); } for (Trip trip : dao.getTripsForServiceId(oldServiceId)) { trip.setServiceId(newServiceId); } } }
List<ServiceCalendarDate> atisCalendarDates = dao.getCalendarDatesForServiceId(atisTrip.getServiceId()); for (ServiceCalendarDate atisScd : atisCalendarDates) { ServiceDate atisDate = atisScd.getDate(); if (refServiceDates.contains(atisDate)) { ServiceCalendarDate newScd = new ServiceCalendarDate(); newScd.setServiceId(newServiceId); newScd.setDate(sd); newScd.setExceptionType(1); //add dao.saveOrUpdateEntity(newScd);
Date date = removeTime(calDate.getDate().getAsDate()); Date today = removeTime(new Date()); if (calDate.getExceptionType() == 1 && date.equals(today)) { curSerTrips++; break;
private void retainServiceCalendarDate(ServiceCalendarDate calendarDate, boolean retainUp) { if (retainUp) { // Retain up: retain things that depend on the target object retainUp(new ServiceIdKey(calendarDate.getServiceId())); } else { // Retain down: retain things that the target object depends on } }