capacity for connections

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@676 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-06-07 07:12:50 +00:00
parent aa70c2b4fb
commit f00c4dd4f0
6 changed files with 41 additions and 8 deletions

View file

@ -1805,7 +1805,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider
XmlPullUtil.exit(pp, "itdFare"); XmlPullUtil.exit(pp, "itdFare");
} }
connections.add(new Connection(id, uri, firstDepartureTime, lastArrivalTime, firstDeparture, lastArrival, parts, connections.add(new Connection(id, uri, firstDepartureTime, lastArrivalTime, firstDeparture, lastArrival, parts,
fares.isEmpty() ? null : fares)); fares.isEmpty() ? null : fares, null));
XmlPullUtil.exit(pp, "itdRoute"); XmlPullUtil.exit(pp, "itdRoute");
} }

View file

@ -623,7 +623,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
throws IOException throws IOException
{ {
// System.out.println(request); // System.out.println(request);
// ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), null, false)); // ParserUtils.printXml(ParserUtils.scrape(apiUri, true, wrap(request), null, null));
InputStream is = null; InputStream is = null;
@ -697,6 +697,35 @@ public abstract class AbstractHafasProvider implements NetworkProvider
while (pp.getName().equals("StAttrList")) while (pp.getName().equals("StAttrList"))
XmlPullUtil.next(pp); XmlPullUtil.next(pp);
final Location departure = parseLocation(pp); final Location departure = parseLocation(pp);
XmlPullUtil.enter(pp, "Dep");
XmlPullUtil.exit(pp, "Dep");
final int[] capacity;
if (XmlPullUtil.test(pp, "StopPrognosis"))
{
XmlPullUtil.enter(pp, "StopPrognosis");
if (XmlPullUtil.test(pp, "Arr"))
XmlPullUtil.next(pp);
if (XmlPullUtil.test(pp, "Dep"))
XmlPullUtil.next(pp);
XmlPullUtil.enter(pp, "Status");
XmlPullUtil.exit(pp, "Status");
if (XmlPullUtil.test(pp, "Capacity1st"))
{
final int capacity1st = Integer.parseInt(XmlPullUtil.text(pp));
XmlPullUtil.require(pp, "Capacity2nd");
final int capacity2nd = Integer.parseInt(XmlPullUtil.text(pp));
capacity = new int[] { capacity1st, capacity2nd };
}
else
{
capacity = null;
}
XmlPullUtil.exit(pp, "StopPrognosis");
}
else
{
capacity = null;
}
XmlPullUtil.exit(pp, "BasicStop"); XmlPullUtil.exit(pp, "BasicStop");
XmlPullUtil.exit(pp, "Departure"); XmlPullUtil.exit(pp, "Departure");
@ -893,7 +922,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
XmlPullUtil.exit(pp, "Connection"); XmlPullUtil.exit(pp, "Connection");
connections.add(new Connection(id, null, firstDepartureTime, lastArrivalTime, departure, arrival, parts, null)); connections.add(new Connection(id, null, firstDepartureTime, lastArrivalTime, departure, arrival, parts, null, capacity));
} }
XmlPullUtil.exit(pp); XmlPullUtil.exit(pp);

View file

@ -336,7 +336,7 @@ public final class BahnProvider extends AbstractHafasProvider
if (departureTime.after(arrivalTime)) if (departureTime.after(arrivalTime))
arrivalTime.add(Calendar.DAY_OF_YEAR, 1); arrivalTime.add(Calendar.DAY_OF_YEAR, 1);
final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, departureTime.getTime(), final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, departureTime.getTime(),
arrivalTime.getTime(), from, to, null, null); arrivalTime.getTime(), from, to, null, null, null);
connections.add(connection); connections.add(connection);
} }
else else
@ -486,7 +486,7 @@ public final class BahnProvider extends AbstractHafasProvider
return new GetConnectionDetailsResult(new GregorianCalendar(timeZone()).getTime(), new Connection( return new GetConnectionDetailsResult(new GregorianCalendar(timeZone()).getTime(), new Connection(
AbstractHafasProvider.extractConnectionId(uri), uri, firstDepartureTime, lastArrivalTime, firstDeparture, lastArrival, parts, AbstractHafasProvider.extractConnectionId(uri), uri, firstDepartureTime, lastArrivalTime, firstDeparture, lastArrival, parts,
null)); null, null));
} }
else else
{ {

View file

@ -850,7 +850,7 @@ public final class BvgProvider extends AbstractHafasProvider
} }
} }
connections.add(new Connection(id, firstUri, firstDepartureTime, lastArrivalTime, from, to, parts, null)); connections.add(new Connection(id, firstUri, firstDepartureTime, lastArrivalTime, from, to, parts, null, null));
} }
else else
{ {

View file

@ -402,7 +402,7 @@ public class OebbProvider extends AbstractHafasProvider
final String link = allDetailsUri; // TODO use print link? final String link = allDetailsUri; // TODO use print link?
final Connection connection = new Connection(id, link, overviewDepartureTime.getTime(), overviewArrivalTime.getTime(), from, to, final Connection connection = new Connection(id, link, overviewDepartureTime.getTime(), overviewArrivalTime.getTime(), from, to,
new ArrayList<Connection.Part>(1), null); new ArrayList<Connection.Part>(1), null, null);
connections.add(connection); connections.add(connection);
final Matcher mDetCoarse = P_CONNECTION_DETAILS_COARSE.matcher(details); final Matcher mDetCoarse = P_CONNECTION_DETAILS_COARSE.matcher(details);

View file

@ -27,6 +27,8 @@ import java.util.List;
*/ */
public final class Connection implements Serializable public final class Connection implements Serializable
{ {
private static final long serialVersionUID = 2508466068307110312L;
public final String id; public final String id;
public final String link; public final String link;
public final Date departureTime; public final Date departureTime;
@ -35,9 +37,10 @@ public final class Connection implements Serializable
public final Location to; public final Location to;
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 Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final Location from, final Location to, public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final Location from, final Location to,
final List<Part> parts, final List<Fare> fares) final List<Part> parts, final List<Fare> fares, final int[] capacity)
{ {
this.id = id; this.id = id;
this.link = link; this.link = link;
@ -47,6 +50,7 @@ public final class Connection implements Serializable
this.to = to; this.to = to;
this.parts = parts; this.parts = parts;
this.fares = fares; this.fares = fares;
this.capacity = capacity;
} }
@Override @Override