mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-13 00:08:49 +00:00
EFA: If there is no <itdServingLine>, we assume the station ID is invalid.
This commit is contained in:
parent
63be2aeb10
commit
40763ef6f6
1 changed files with 42 additions and 35 deletions
|
@ -1497,52 +1497,59 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider {
|
|||
|
||||
XmlPullUtil.optSkip(pp, "itdMessage");
|
||||
|
||||
final Calendar plannedDepartureTime = new GregorianCalendar(timeZone);
|
||||
final Calendar predictedDepartureTime = new GregorianCalendar(timeZone);
|
||||
if (XmlPullUtil.test(pp, "itdServingLines")) {
|
||||
if (!pp.isEmptyElementTag()) {
|
||||
XmlPullUtil.enter(pp, "itdServingLines");
|
||||
while (XmlPullUtil.test(pp, "itdServingLine")) {
|
||||
final String assignedStopId = XmlPullUtil.optAttr(pp, "assignedStopID", null);
|
||||
final String destinationName = normalizeLocationName(
|
||||
XmlPullUtil.optAttr(pp, "direction", null));
|
||||
final String destinationIdStr = XmlPullUtil.optAttr(pp, "destID", null);
|
||||
final String destinationId = !"-1".equals(destinationIdStr) ? destinationIdStr : null;
|
||||
final Location destination;
|
||||
if (destinationId != null)
|
||||
destination = new Location(LocationType.STATION, destinationId, null,
|
||||
destinationName);
|
||||
else if (destinationId == null && destinationName != null)
|
||||
destination = new Location(LocationType.ANY, null, null, destinationName);
|
||||
else
|
||||
destination = null;
|
||||
|
||||
XmlPullUtil.require(pp, "itdServingLines");
|
||||
if (!pp.isEmptyElementTag()) {
|
||||
XmlPullUtil.enter(pp, "itdServingLines");
|
||||
while (XmlPullUtil.test(pp, "itdServingLine")) {
|
||||
final String assignedStopId = XmlPullUtil.optAttr(pp, "assignedStopID", null);
|
||||
final String destinationName = normalizeLocationName(
|
||||
XmlPullUtil.optAttr(pp, "direction", null));
|
||||
final String destinationIdStr = XmlPullUtil.optAttr(pp, "destID", null);
|
||||
final String destinationId = !"-1".equals(destinationIdStr) ? destinationIdStr : null;
|
||||
final Location destination;
|
||||
if (destinationId != null)
|
||||
destination = new Location(LocationType.STATION, destinationId, null, destinationName);
|
||||
else if (destinationId == null && destinationName != null)
|
||||
destination = new Location(LocationType.ANY, null, null, destinationName);
|
||||
else
|
||||
destination = null;
|
||||
final LineDestination line = new LineDestination(processItdServingLine(pp),
|
||||
destination);
|
||||
|
||||
final LineDestination line = new LineDestination(processItdServingLine(pp), destination);
|
||||
StationDepartures assignedStationDepartures;
|
||||
if (assignedStopId == null)
|
||||
assignedStationDepartures = r.stationDepartures.get(0);
|
||||
else
|
||||
assignedStationDepartures = findStationDepartures(r.stationDepartures,
|
||||
assignedStopId);
|
||||
|
||||
StationDepartures assignedStationDepartures;
|
||||
if (assignedStopId == null)
|
||||
assignedStationDepartures = r.stationDepartures.get(0);
|
||||
else
|
||||
assignedStationDepartures = findStationDepartures(r.stationDepartures, assignedStopId);
|
||||
if (assignedStationDepartures == null)
|
||||
assignedStationDepartures = new StationDepartures(
|
||||
new Location(LocationType.STATION, assignedStopId),
|
||||
new LinkedList<Departure>(), new LinkedList<LineDestination>());
|
||||
|
||||
if (assignedStationDepartures == null)
|
||||
assignedStationDepartures = new StationDepartures(
|
||||
new Location(LocationType.STATION, assignedStopId), new LinkedList<Departure>(),
|
||||
new LinkedList<LineDestination>());
|
||||
|
||||
final List<LineDestination> assignedStationDeparturesLines = checkNotNull(
|
||||
assignedStationDepartures.lines);
|
||||
if (!assignedStationDeparturesLines.contains(line))
|
||||
assignedStationDeparturesLines.add(line);
|
||||
final List<LineDestination> assignedStationDeparturesLines = checkNotNull(
|
||||
assignedStationDepartures.lines);
|
||||
if (!assignedStationDeparturesLines.contains(line))
|
||||
assignedStationDeparturesLines.add(line);
|
||||
}
|
||||
XmlPullUtil.skipExit(pp, "itdServingLines");
|
||||
} else {
|
||||
XmlPullUtil.next(pp);
|
||||
}
|
||||
XmlPullUtil.skipExit(pp, "itdServingLines");
|
||||
} else {
|
||||
XmlPullUtil.next(pp);
|
||||
result.set(new QueryDeparturesResult(header, QueryDeparturesResult.Status.INVALID_STATION));
|
||||
return;
|
||||
}
|
||||
|
||||
XmlPullUtil.require(pp, "itdDepartureList");
|
||||
if (!pp.isEmptyElementTag()) {
|
||||
XmlPullUtil.enter(pp, "itdDepartureList");
|
||||
final Calendar plannedDepartureTime = new GregorianCalendar(timeZone);
|
||||
final Calendar predictedDepartureTime = new GregorianCalendar(timeZone);
|
||||
|
||||
while (XmlPullUtil.test(pp, "itdDeparture")) {
|
||||
final String assignedStopId = XmlPullUtil.attr(pp, "stopID");
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue