use of uk.org.siri.siri_2.LinesDeliveryStructure in project onebusaway-application-modules by camsys.
the class LinesRequestV2Action method generateSiriResponse.
private Siri generateSiriResponse(List<AnnotatedLineStructure> lines, Boolean hasUpcomingScheduledService, Exception error, long responseTimestamp) {
LinesDeliveryStructure linesDelivery = new LinesDeliveryStructure();
linesDelivery.setResponseTimestamp(DateUtil.toXmlGregorianCalendar(responseTimestamp));
if (error != null) {
ServiceDeliveryErrorConditionStructure errorConditionStructure = new ServiceDeliveryErrorConditionStructure();
ErrorDescriptionStructure errorDescriptionStructure = new ErrorDescriptionStructure();
errorDescriptionStructure.setValue(error.getMessage());
OtherErrorStructure otherErrorStructure = new OtherErrorStructure();
otherErrorStructure.setErrorText(error.getMessage());
errorConditionStructure.setDescription(errorDescriptionStructure);
errorConditionStructure.setOtherError(otherErrorStructure);
linesDelivery.setErrorCondition(errorConditionStructure);
} else {
Calendar gregorianCalendar = new GregorianCalendar();
gregorianCalendar.setTimeInMillis(responseTimestamp);
gregorianCalendar.add(Calendar.MINUTE, 1);
linesDelivery.setValidUntil(DateUtil.toXmlGregorianCalendar(gregorianCalendar.getTimeInMillis()));
linesDelivery.getAnnotatedLineRef().addAll(lines);
if (hasUpcomingScheduledService != null) {
// siri extensions
ExtensionsStructure upcomingServiceExtensions = new ExtensionsStructure();
upcomingServiceExtensions.setAny(hasUpcomingScheduledService);
SiriUpcomingServiceExtension upcomingService = new SiriUpcomingServiceExtension();
upcomingService.setUpcomingScheduledService(hasUpcomingScheduledService);
upcomingServiceExtensions.setAny(upcomingService);
linesDelivery.setExtensions(upcomingServiceExtensions);
}
linesDelivery.setResponseTimestamp(DateUtil.toXmlGregorianCalendar(responseTimestamp));
}
Siri siri = new Siri();
siri.setLinesDelivery(linesDelivery);
return siri;
}
Aggregations