mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-10 21:08:47 +00:00
do not pre-populate connections with half-baked parts
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@62 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
9abab75816
commit
ea85db9851
6 changed files with 30 additions and 33 deletions
|
@ -250,8 +250,7 @@ public final class BahnProvider implements NetworkProvider
|
|||
Date departureTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(2)));
|
||||
if (!connections.isEmpty())
|
||||
{
|
||||
final long diff = ParserUtils.timeDiff(departureTime,
|
||||
((Connection.Trip) connections.get(connections.size() - 1).parts.get(0)).departureTime);
|
||||
final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime);
|
||||
if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
departureTime = ParserUtils.addDays(departureTime, -1);
|
||||
else if (diff < -PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
|
@ -265,9 +264,8 @@ public final class BahnProvider implements NetworkProvider
|
|||
line = normalizeLine(line);
|
||||
else
|
||||
line = null;
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to,
|
||||
new ArrayList<Connection.Part>(1));
|
||||
connection.parts.add(new Connection.Trip(departureTime, arrivalTime, line, line != null ? LINES.get(line.charAt(0)) : null));
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, line,
|
||||
line != null ? LINES.get(line.charAt(0)) : null, 0, from, 0, to, null);
|
||||
connections.add(connection);
|
||||
}
|
||||
else
|
||||
|
@ -394,8 +392,8 @@ public final class BahnProvider implements NetworkProvider
|
|||
if (firstDepartureTime == null || lastArrivalTime == null)
|
||||
throw new IllegalStateException("could not parse all parts of:\n" + page + "\n" + parts);
|
||||
|
||||
return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, 0,
|
||||
firstDeparture, 0, lastArrival, parts));
|
||||
return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime,
|
||||
null, null, 0, firstDeparture, 0, lastArrival, parts));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -30,21 +30,25 @@ public final class Connection implements Serializable
|
|||
final public String link;
|
||||
final public Date departureTime;
|
||||
final public Date arrivalTime;
|
||||
final public String line;
|
||||
final public int[] lineColors;
|
||||
final public int fromId;
|
||||
final public String from;
|
||||
final public int toId;
|
||||
final public String to;
|
||||
final public List<Part> parts;
|
||||
|
||||
public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final int fromId, final String from,
|
||||
final int toId, final String to, final List<Part> parts)
|
||||
public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final String line,
|
||||
final int[] lineColors, final int fromId, final String from, final int toId, final String to, final List<Part> parts)
|
||||
{
|
||||
this.id = id;
|
||||
this.link = link;
|
||||
this.departureTime = departureTime;
|
||||
this.arrivalTime = arrivalTime;
|
||||
this.line = line;
|
||||
this.lineColors = lineColors;
|
||||
this.fromId = fromId;
|
||||
this.from = from;
|
||||
this.arrivalTime = arrivalTime;
|
||||
this.toId = toId;
|
||||
this.to = to;
|
||||
this.parts = parts;
|
||||
|
|
|
@ -289,8 +289,7 @@ public class MvvProvider implements NetworkProvider
|
|||
Date departureTime = ParserUtils.joinDateTime(date, ParserUtils.parseTime(mConFine.group(4)));
|
||||
if (!connections.isEmpty())
|
||||
{
|
||||
final long diff = ParserUtils.timeDiff(departureTime, ((Connection.Trip) connections.get(connections.size() - 1).parts
|
||||
.get(0)).departureTime);
|
||||
final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime);
|
||||
if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
departureTime = ParserUtils.addDays(departureTime, -1);
|
||||
else if (diff < -PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
|
@ -299,9 +298,8 @@ public class MvvProvider implements NetworkProvider
|
|||
Date arrivalTime = ParserUtils.joinDateTime(date, ParserUtils.parseTime(mConFine.group(5)));
|
||||
if (departureTime.after(arrivalTime))
|
||||
arrivalTime = ParserUtils.addDays(arrivalTime, 1);
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to,
|
||||
new ArrayList<Connection.Part>(1));
|
||||
connection.parts.add(new Connection.Trip(departureTime, arrivalTime, null, null));
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, null, null, 0,
|
||||
from, 0, to, null);
|
||||
connections.add(connection);
|
||||
}
|
||||
else
|
||||
|
@ -311,9 +309,8 @@ public class MvvProvider implements NetworkProvider
|
|||
final Date departureTime = calendar.getTime();
|
||||
calendar.add(Calendar.MINUTE, min);
|
||||
final Date arrivalTime = calendar.getTime();
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to,
|
||||
new ArrayList<Connection.Part>(1));
|
||||
connection.parts.add(new Connection.Footway(min, from, to));
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, null, null, 0,
|
||||
from, 0, to, null);
|
||||
connections.add(connection);
|
||||
}
|
||||
}
|
||||
|
@ -448,8 +445,8 @@ public class MvvProvider implements NetworkProvider
|
|||
lastArrivalTime = calendar.getTime();
|
||||
}
|
||||
|
||||
return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime, 0,
|
||||
firstDeparture, 0, lastArrival, parts));
|
||||
return new GetConnectionDetailsResult(new Date(), new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime,
|
||||
null, null, 0, firstDeparture, 0, lastArrival, parts));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -249,8 +249,7 @@ public class RmvProvider implements NetworkProvider
|
|||
Date departureTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(2)));
|
||||
if (!connections.isEmpty())
|
||||
{
|
||||
final long diff = ParserUtils.timeDiff(departureTime,
|
||||
((Connection.Trip) connections.get(connections.size() - 1).parts.get(0)).departureTime);
|
||||
final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime);
|
||||
if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
departureTime = ParserUtils.addDays(departureTime, -1);
|
||||
else if (diff < -PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
|
@ -264,9 +263,8 @@ public class RmvProvider implements NetworkProvider
|
|||
line = normalizeLine(line);
|
||||
else
|
||||
line = null;
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to,
|
||||
new ArrayList<Connection.Part>(1));
|
||||
connection.parts.add(new Connection.Trip(departureTime, arrivalTime, line, line != null ? LINES.get(line.charAt(0)) : null));
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, line,
|
||||
line != null ? LINES.get(line.charAt(0)) : null, 0, from, 0, to, null);
|
||||
connections.add(connection);
|
||||
}
|
||||
else
|
||||
|
@ -382,7 +380,7 @@ public class RmvProvider implements NetworkProvider
|
|||
}
|
||||
|
||||
return new GetConnectionDetailsResult(currentDate, new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime, lastArrivalTime,
|
||||
0, firstDeparture, 0, lastArrival, parts));
|
||||
null, null, 0, firstDeparture, 0, lastArrival, parts));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -234,7 +234,7 @@ public class SbbProvider implements NetworkProvider
|
|||
.parseTime(mConFine.group(5)));
|
||||
final String link = uri + "#" + id; // TODO use print link?
|
||||
|
||||
final Connection connection = new Connection(id, link, departureTime, arrivalTime, 0, from, 0, to,
|
||||
final Connection connection = new Connection(id, link, departureTime, arrivalTime, null, null, 0, from, 0, to,
|
||||
new ArrayList<Connection.Part>(1));
|
||||
connections.add(connection);
|
||||
}
|
||||
|
@ -437,6 +437,8 @@ public class SbbProvider implements NetworkProvider
|
|||
else
|
||||
strippedLine = line;
|
||||
|
||||
if (type.equals("ec")) // EuroCity
|
||||
return "I" + strippedLine;
|
||||
if (type.equals("ice")) // InterCityExpress
|
||||
return "I" + strippedLine;
|
||||
if (type.equals("ic")) // InterCity
|
||||
|
|
|
@ -260,8 +260,7 @@ public final class VbbProvider implements NetworkProvider
|
|||
Date departureTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(2)));
|
||||
if (!connections.isEmpty())
|
||||
{
|
||||
final long diff = ParserUtils.timeDiff(departureTime,
|
||||
((Connection.Trip) connections.get(connections.size() - 1).parts.get(0)).departureTime);
|
||||
final long diff = ParserUtils.timeDiff(departureTime, connections.get(connections.size() - 1).departureTime);
|
||||
if (diff > PARSER_DAY_ROLLOVER_THRESHOLD_MS)
|
||||
departureTime = ParserUtils.addDays(departureTime, -1);
|
||||
else if (diff < -PARSER_DAY_ROLLDOWN_THRESHOLD_MS)
|
||||
|
@ -271,9 +270,8 @@ public final class VbbProvider implements NetworkProvider
|
|||
if (departureTime.after(arrivalTime))
|
||||
arrivalTime = ParserUtils.addDays(arrivalTime, 1);
|
||||
final String line = normalizeLine(ParserUtils.resolveEntities(mConFine.group(4)));
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, 0, from, 0, to,
|
||||
new ArrayList<Connection.Part>(1));
|
||||
connection.parts.add(new Connection.Trip(departureTime, arrivalTime, line, line != null ? LINES.get(line) : null));
|
||||
final Connection connection = new Connection(ParserUtils.extractId(link), link, departureTime, arrivalTime, line,
|
||||
line != null ? LINES.get(line.charAt(0)) : null, 0, from, 0, to, null);
|
||||
connections.add(connection);
|
||||
}
|
||||
else
|
||||
|
@ -412,7 +410,7 @@ public final class VbbProvider implements NetworkProvider
|
|||
|
||||
if (firstDepartureTime != null && lastArrivalTime != null)
|
||||
return new GetConnectionDetailsResult(currentDate, new Connection(ParserUtils.extractId(uri), uri, firstDepartureTime,
|
||||
lastArrivalTime, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts));
|
||||
lastArrivalTime, null, null, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts));
|
||||
else
|
||||
return new GetConnectionDetailsResult(currentDate, null);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue