for(TripPatternStop stopTime : patternStopTimes)
{
if(!stopList.containsKey(stopTime.stop.id))
{
Stop stop = stopTime.stop;
AgencyAndId stopId = new AgencyAndId();
stopId.setAgencyId(gtfsAgencyId);
if(stop.gtfsStopId != null && !stop.gtfsStopId.isEmpty())
stopId.setId(stop.gtfsStopId);
else
stopId.setId("STOP_" + stop.id.toString());
org.onebusaway.gtfs.model.Stop s = new org.onebusaway.gtfs.model.Stop();
s.setId(stopId);
s.setCode(stop.stopCode);
if(stop.stopName == null || stop.stopName.isEmpty())
s.setName(stop.id.toString());
else
s.setName(stop.stopName.replace("\n", "").replace("\r", ""));
if(stop.stopDesc != null && !stop.stopName.isEmpty())
s.setDesc(stop.stopDesc.replace("\n", "").replace("\r", ""));
s.setUrl(stop.stopUrl);
s.setLon(stop.locationPoint().getX());
s.setLat(stop.locationPoint().getY());
if(stop.wheelchairBoarding != null && stop.wheelchairBoarding.equals(AttributeAvailabilityType.AVAILABLE))
s.setWheelchairBoarding(1);
else if(stop.wheelchairBoarding != null && stop.wheelchairBoarding.equals(AttributeAvailabilityType.UNAVAILABLE))
s.setWheelchairBoarding(2);
else
s.setWheelchairBoarding(0);
store.saveEntity(s);
stopList.put(stop.id, s);
}
org.onebusaway.gtfs.model.StopTime st = new org.onebusaway.gtfs.model.StopTime();
if(stopTime.defaultTravelTime != null) {
// need to flag negative travel times in the patterns!
if(stopTime.defaultTravelTime < 0)
cumulativeTime -= stopTime.defaultTravelTime;
else
cumulativeTime += stopTime.defaultTravelTime;
}
st.setArrivalTime(cumulativeTime);
if(stopTime.defaultDwellTime != null) {
// need to flag negative dwell times in the patterns!
if(stopTime.defaultDwellTime < 0)
cumulativeTime -= stopTime.defaultDwellTime;
else
cumulativeTime += stopTime.defaultDwellTime;
}
st.setDepartureTime(cumulativeTime);
st.setTrip(t);
st.setStop(stopList.get(stopTime.stop.id));
st.setStopSequence(stopTime.stopSequence);
store.saveEntity(st);
}
}
else
{
List<StopTime> stopTimes = StopTime.find("trip = ? order by stopSequence", trip).fetch();
for(StopTime stopTime : stopTimes)
{
if(!stopList.containsKey(stopTime.stop.id))
{
Stop stop = stopTime.stop;
AgencyAndId stopId = new AgencyAndId();
stopId.setAgencyId(gtfsAgencyId);
if(stop.gtfsStopId != null && !stop.gtfsStopId.isEmpty())
stopId.setId(stop.gtfsStopId);
else
stopId.setId(stop.id.toString());
org.onebusaway.gtfs.model.Stop s = new org.onebusaway.gtfs.model.Stop();
s.setId(stopId);
s.setCode(stop.stopCode);
if(stop.stopName == null || stop.stopName.isEmpty())
s.setName(stop.id.toString());
else
s.setName(stop.stopName.replace("\n", "").replace("\r", ""));
if(stop.stopDesc != null && !stop.stopName.isEmpty())
s.setDesc(stop.stopDesc.replace("\n", "").replace("\r", ""));
s.setUrl(stop.stopUrl);
s.setLon(stop.locationPoint().getX());
s.setLat(stop.locationPoint().getY());
if(stop.wheelchairBoarding != null && stop.wheelchairBoarding.equals(AttributeAvailabilityType.AVAILABLE))
s.setWheelchairBoarding(1);
else if(stop.wheelchairBoarding != null && stop.wheelchairBoarding.equals(AttributeAvailabilityType.UNAVAILABLE))
s.setWheelchairBoarding(2);