capacity for departures

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@674 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-06-06 19:23:45 +00:00
parent 0852203ea5
commit 18b740bda7
10 changed files with 32 additions and 16 deletions

View file

@ -1184,7 +1184,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider
final Departure departure = new Departure(plannedDepartureTime.getTime(),
predictedDepartureTime.isSet(Calendar.HOUR_OF_DAY) ? predictedDepartureTime.getTime() : null, line, lineColors(line),
null, position, destinationId, destination, null);
null, position, destinationId, destination, null, null);
assignedStationDepartures.departures.add(departure);
XmlPullUtil.exit(pp, "itdDeparture");

View file

@ -428,7 +428,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
+ "prod\\s*=\"([^\"]*)\"\\s*" // line
+ "(?:class\\s*=\"([^\"]*)\"\\s*)?" // class
+ "(?:dir\\s*=\"([^\"]*)\"\\s*)?" // destination
+ "(?:capacity\\s*=\"[^\"]*\"\\s*)?" // (???)
+ "(?:capacity\\s*=\"([^\"]*)\"\\s*)?" // capacity 1st class|2nd class
+ "(?:depStation\\s*=\"(.*?)\"\\s*)?" //
+ "(?:delayReason\\s*=\"([^\"]*)\"\\s*)?" // message
+ "(?:is_reachable\\s*=\"[^\"]*\"\\s*)?" // (???)
@ -471,7 +471,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
final Matcher mFine = P_XML_QUERY_DEPARTURES_FINE.matcher(mCoarse.group(1));
if (mFine.matches())
{
if (mFine.group(11) == null)
if (mFine.group(12) == null)
{
final Calendar plannedTime = new GregorianCalendar(timeZone());
plannedTime.clear();
@ -517,10 +517,23 @@ public abstract class AbstractHafasProvider implements NetworkProvider
final String line = product != 0 ? product + prod : normalizeLine(prod);
final String message;
if (mFine.group(12) != null)
final String capacityStr = mFine.group(11);
final int[] capacity;
if (capacityStr != null && !"0|0".equals(capacityStr))
{
final String msg = ParserUtils.resolveEntities(mFine.group(12)).trim();
final String[] capacityParts = capacityStr.split("\\|");
capacity = new int[] { Integer.parseInt(capacityParts[0]), Integer.parseInt(capacityParts[1]) };
}
else
{
capacity = null;
}
final String messageStr = mFine.group(13);
final String message;
if (messageStr != null)
{
final String msg = ParserUtils.resolveEntities(messageStr).trim();
message = msg.length() > 0 ? msg : null;
}
else
@ -529,7 +542,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider
}
departures.add(new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, 0, destination, message));
line != null ? lineColors(line) : null, null, position, 0, destination, capacity, message));
}
}
else

View file

@ -322,7 +322,7 @@ public final class BvgProvider extends AbstractHafasProvider
final String destination = ParserUtils.resolveEntities(mDepFine.group(4));
final Departure dep = new Departure(plannedTime, predictedTime, line, line != null ? lineColors(line) : null, null, position,
destinationId, destination, messages.get(line));
destinationId, destination, null, messages.get(line));
if (!departures.contains(dep))
departures.add(dep);
}
@ -392,7 +392,7 @@ public final class BvgProvider extends AbstractHafasProvider
final String destination = ParserUtils.resolveEntities(mDepFine.group(5));
final Departure dep = new Departure(plannedTime, null, line, line != null ? lineColors(line) : null, null, position,
destinationId, destination, null);
destinationId, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);
}

View file

@ -235,7 +235,7 @@ public class InvgProvider extends AbstractHafasProvider
final String position = mDepFine.group(7) != null ? "Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)) : null;
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, destinationId, destination, null);
line != null ? lineColors(line) : null, null, position, destinationId, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);

View file

@ -212,7 +212,7 @@ public class NasaProvider extends AbstractHafasProvider
final String position = mDepFine.group(7) != null ? "Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)) : null;
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, destinationId, destination, null);
line != null ? lineColors(line) : null, null, position, destinationId, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);

View file

@ -220,7 +220,7 @@ public class RmvProvider extends AbstractHafasProvider
final String position = ParserUtils.resolveEntities(ParserUtils.selectNotNull(mDepFine.group(5), mDepFine.group(6)));
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, 0, destination, null);
line != null ? lineColors(line) : null, null, position, 0, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);

View file

@ -220,7 +220,7 @@ public class SeptaProvider extends AbstractHafasProvider
final String position = mDepFine.group(7) != null ? "Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)) : null;
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, destinationId, destination, null);
line != null ? lineColors(line) : null, null, position, destinationId, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);

View file

@ -211,7 +211,7 @@ public class ShProvider extends AbstractHafasProvider
final String position = mDepFine.group(7) != null ? "Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)) : null;
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, destinationId, destination, null);
line != null ? lineColors(line) : null, null, position, destinationId, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);

View file

@ -223,7 +223,7 @@ public class VgsProvider extends AbstractHafasProvider
final String position = mDepFine.group(7) != null ? "Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)) : null;
final Departure dep = new Departure(plannedTime.getTime(), predictedTime != null ? predictedTime.getTime() : null, line,
line != null ? lineColors(line) : null, null, position, destinationId, destination, null);
line != null ? lineColors(line) : null, null, position, destinationId, destination, null, null);
if (!departures.contains(dep))
departures.add(dep);

View file

@ -32,10 +32,11 @@ public final class Departure
final public String position;
final public int destinationId;
final public String destination;
final public int[] capacity;
final public String message;
public Departure(final Date plannedTime, final Date predictedTime, final String line, final int[] lineColors, final String lineLink,
final String position, final int destinationId, final String destination, final String message)
final String position, final int destinationId, final String destination, final int[] capacity, final String message)
{
this.plannedTime = plannedTime;
this.predictedTime = predictedTime;
@ -45,6 +46,7 @@ public final class Departure
this.position = position;
this.destinationId = destinationId;
this.destination = destination;
this.capacity = capacity;
this.message = message;
}
@ -59,6 +61,7 @@ public final class Departure
this.position = position;
this.destinationId = destinationId;
this.destination = destination;
this.capacity = null;
this.message = null;
}