mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-19 16:59:51 +00:00
parse number of changes
This commit is contained in:
parent
6b92277180
commit
6c45afb4d3
6 changed files with 21 additions and 9 deletions
|
@ -1864,6 +1864,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
while (XmlPullUtil.test(pp, "itdRoute"))
|
while (XmlPullUtil.test(pp, "itdRoute"))
|
||||||
{
|
{
|
||||||
final String id = pp.getAttributeValue(null, "routeIndex") + "-" + pp.getAttributeValue(null, "routeTripIndex");
|
final String id = pp.getAttributeValue(null, "routeIndex") + "-" + pp.getAttributeValue(null, "routeTripIndex");
|
||||||
|
final int numChanges = XmlPullUtil.intAttr(pp, "changes");
|
||||||
XmlPullUtil.enter(pp, "itdRoute");
|
XmlPullUtil.enter(pp, "itdRoute");
|
||||||
|
|
||||||
while (XmlPullUtil.test(pp, "itdDateTime"))
|
while (XmlPullUtil.test(pp, "itdDateTime"))
|
||||||
|
@ -2126,7 +2127,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
XmlPullUtil.exit(pp, "itdFare");
|
XmlPullUtil.exit(pp, "itdFare");
|
||||||
}
|
}
|
||||||
connections.add(new Connection(id, uri, firstDeparture, lastArrival, parts, fares.isEmpty() ? null : fares, null));
|
connections.add(new Connection(id, uri, firstDeparture, lastArrival, parts, fares.isEmpty() ? null : fares, null, numChanges));
|
||||||
XmlPullUtil.exit(pp, "itdRoute");
|
XmlPullUtil.exit(pp, "itdRoute");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -947,6 +947,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
XmlPullUtil.exit(pp, "BasicStop");
|
XmlPullUtil.exit(pp, "BasicStop");
|
||||||
XmlPullUtil.exit(pp, "Arrival");
|
XmlPullUtil.exit(pp, "Arrival");
|
||||||
|
|
||||||
|
XmlPullUtil.require(pp, "Transfers");
|
||||||
|
final int numTransfers = Integer.parseInt(XmlPullUtil.text(pp));
|
||||||
|
|
||||||
XmlPullUtil.exit(pp, "Overview");
|
XmlPullUtil.exit(pp, "Overview");
|
||||||
|
|
||||||
final List<Connection.Part> parts = new ArrayList<Connection.Part>(4);
|
final List<Connection.Part> parts = new ArrayList<Connection.Part>(4);
|
||||||
|
@ -1151,7 +1154,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
XmlPullUtil.exit(pp, "Connection");
|
XmlPullUtil.exit(pp, "Connection");
|
||||||
|
|
||||||
connections.add(new Connection(id, null, departure, arrival, parts, null, capacity));
|
connections.add(new Connection(id, null, departure, arrival, parts, null, capacity, numTransfers));
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlPullUtil.exit(pp);
|
XmlPullUtil.exit(pp);
|
||||||
|
|
|
@ -338,7 +338,8 @@ public final class BahnProvider extends AbstractHafasProvider
|
||||||
private static final Pattern P_CONNECTIONS_COARSE = Pattern.compile("<tr><td class=\"overview timelink\">(.+?)</td></tr>", Pattern.DOTALL);
|
private static final Pattern P_CONNECTIONS_COARSE = Pattern.compile("<tr><td class=\"overview timelink\">(.+?)</td></tr>", Pattern.DOTALL);
|
||||||
private static final Pattern P_CONNECTIONS_FINE = Pattern.compile(".*?" //
|
private static final Pattern P_CONNECTIONS_FINE = Pattern.compile(".*?" //
|
||||||
+ "<a href=\"(http://mobile.bahn.de/bin/mobil/query2?.exe/dox[^\"]*?)\">" // link
|
+ "<a href=\"(http://mobile.bahn.de/bin/mobil/query2?.exe/dox[^\"]*?)\">" // link
|
||||||
+ "(\\d{1,2}:\\d{2})<br />(\\d{1,2}:\\d{2})</a></td>.+?" // departureTime, arrivalTime
|
+ "(\\d{1,2}:\\d{2})<br />(\\d{1,2}:\\d{2})</a></td>.*?" // departureTime, arrivalTime
|
||||||
|
+ "<td class=\"overview\">\\s*(\\d+)\\s*<.*?" // numChanges
|
||||||
+ "<td class=\"overview iphonepfeil\">(.*?)<br />.*?" // line
|
+ "<td class=\"overview iphonepfeil\">(.*?)<br />.*?" // line
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
|
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
|
||||||
|
@ -383,7 +384,9 @@ public final class BahnProvider extends AbstractHafasProvider
|
||||||
if (mConFine.matches())
|
if (mConFine.matches())
|
||||||
{
|
{
|
||||||
final String link = ParserUtils.resolveEntities(mConFine.group(1));
|
final String link = ParserUtils.resolveEntities(mConFine.group(1));
|
||||||
final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, from, to, null, null, null);
|
final int numChanges = Integer.parseInt(mConFine.group(4));
|
||||||
|
final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, from, to, null, null, null,
|
||||||
|
numChanges);
|
||||||
connections.add(connection);
|
connections.add(connection);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -521,8 +524,8 @@ public final class BahnProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new GetConnectionDetailsResult(new GregorianCalendar(timeZone()).getTime(), new Connection(
|
return new GetConnectionDetailsResult(new GregorianCalendar(timeZone()).getTime(), new Connection(connection.id, uri, firstDeparture,
|
||||||
AbstractHafasProvider.extractConnectionId(uri), uri, firstDeparture, lastArrival, parts, null, null));
|
lastArrival, parts, null, null, connection.numChanges));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -787,6 +787,7 @@ public final class BvgProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
final Matcher mDetails = P_CONNECTION_DETAILS.matcher(connectionSection);
|
final Matcher mDetails = P_CONNECTION_DETAILS.matcher(connectionSection);
|
||||||
|
|
||||||
|
int numTrips = 0;
|
||||||
final List<Connection.Part> parts = new ArrayList<Connection.Part>(tracks.size());
|
final List<Connection.Part> parts = new ArrayList<Connection.Part>(tracks.size());
|
||||||
for (int iTrack = 0; iTrack < tracks.size(); iTrack++)
|
for (int iTrack = 0; iTrack < tracks.size(); iTrack++)
|
||||||
{
|
{
|
||||||
|
@ -873,10 +874,11 @@ public final class BvgProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePosition, departure, arrivalTime, null,
|
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePosition, departure, arrivalTime, null,
|
||||||
arrivalPosition, arrival, intermediateStops, null));
|
arrivalPosition, arrival, intermediateStops, null));
|
||||||
|
numTrips++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
connections.add(new Connection(id, firstUri, from, to, parts, null, null));
|
connections.add(new Connection(id, firstUri, from, to, parts, null, null, numTrips - 1));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -463,7 +463,7 @@ public class SadProvider extends AbstractNetworkProvider {
|
||||||
if (fromToLocs.size() == 2) {
|
if (fromToLocs.size() == 2) {
|
||||||
// NOTE: link, capacity set to null
|
// NOTE: link, capacity set to null
|
||||||
connections.add(new Connection(fromToLocs.get(0).toString() + fromToLocs.get(1).toString(), null, fromToLocs.get(0),
|
connections.add(new Connection(fromToLocs.get(0).toString() + fromToLocs.get(1).toString(), null, fromToLocs.get(0),
|
||||||
fromToLocs.get(1), parts, fares, null));
|
fromToLocs.get(1), parts, fares, null, null));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,9 +36,10 @@ public final class Connection implements Serializable
|
||||||
public final List<Part> parts;
|
public final List<Part> parts;
|
||||||
public final List<Fare> fares;
|
public final List<Fare> fares;
|
||||||
public final int[] capacity;
|
public final int[] capacity;
|
||||||
|
public final Integer numChanges;
|
||||||
|
|
||||||
public Connection(final String id, final String link, final Location from, final Location to, final List<Part> parts, final List<Fare> fares,
|
public Connection(final String id, final String link, final Location from, final Location to, final List<Part> parts, final List<Fare> fares,
|
||||||
final int[] capacity)
|
final int[] capacity, final Integer numChanges)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.link = link;
|
this.link = link;
|
||||||
|
@ -47,6 +48,7 @@ public final class Connection implements Serializable
|
||||||
this.parts = parts;
|
this.parts = parts;
|
||||||
this.fares = fares;
|
this.fares = fares;
|
||||||
this.capacity = capacity;
|
this.capacity = capacity;
|
||||||
|
this.numChanges = numChanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getFirstDepartureTime()
|
public Date getFirstDepartureTime()
|
||||||
|
@ -139,6 +141,7 @@ public final class Connection implements Serializable
|
||||||
str.append('-');
|
str.append('-');
|
||||||
final Date lastTripArrivalTime = getLastTripArrivalTime();
|
final Date lastTripArrivalTime = getLastTripArrivalTime();
|
||||||
str.append(lastTripArrivalTime != null ? FORMAT.format(lastTripArrivalTime) : "null");
|
str.append(lastTripArrivalTime != null ? FORMAT.format(lastTripArrivalTime) : "null");
|
||||||
|
str.append(' ').append(numChanges).append("ch");
|
||||||
|
|
||||||
return str.toString();
|
return str.toString();
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue