separate predicted and planned time for connections

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@838 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach@gmail.com 2011-10-23 09:09:02 +00:00
parent 0799af446f
commit 0606b6379b
5 changed files with 49 additions and 14 deletions

View file

@ -1923,8 +1923,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final Line line = new Line(lineId, lineLabel, lineColors(lineLabel), lineAttrs); final Line line = new Line(lineId, lineLabel, lineColors(lineLabel), lineAttrs);
parts.add(new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition, parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime,
arrival, intermediateStops, path)); departureTargetTime, departurePosition, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
arrivalTargetTime, arrivalPosition, arrival, intermediateStops, path));
} }
XmlPullUtil.exit(pp, "itdPartialRoute"); XmlPullUtil.exit(pp, "itdPartialRoute");

View file

@ -994,8 +994,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (min == 0 || line != null) if (min == 0 || line != null)
{ {
parts.add(new Connection.Trip(line, destination, departureTime, departurePos, sectionDeparture, arrivalTime, arrivalPos, parts.add(new Connection.Trip(line, destination, departureTime, null, departurePos, sectionDeparture, arrivalTime, null,
sectionArrival, intermediateStops, null)); arrivalPos, sectionArrival, intermediateStops, null));
} }
else else
{ {

View file

@ -471,8 +471,8 @@ public final class BahnProvider extends AbstractHafasProvider
final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(8)); final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(8));
parts.add(new Connection.Trip(line, null, departureTime.getTime(), departurePosition, departure, arrivalTime.getTime(), parts.add(new Connection.Trip(line, null, departureTime.getTime(), null, departurePosition, departure, arrivalTime
arrivalPosition, arrival, null, null)); .getTime(), null, arrivalPosition, arrival, null, null));
if (firstDepartureTime == null) if (firstDepartureTime == null)
firstDepartureTime = departureTime.getTime(); firstDepartureTime = departureTime.getTime();

View file

@ -852,7 +852,7 @@ public final class BvgProvider extends AbstractHafasProvider
destination = null; destination = null;
} }
parts.add(new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, parts.add(new Connection.Trip(line, destination, departureTime, null, departurePosition, departure, arrivalTime, null,
arrivalPosition, arrival, intermediateStops, null)); arrivalPosition, arrival, intermediateStops, null));
} }
} }

View file

@ -97,27 +97,61 @@ public final class Connection implements Serializable
{ {
public final Line line; public final Line line;
public final Location destination; public final Location destination;
public final Date departureTime; public final Date departureTime; // TODO rename to plannedDepartureTime
public final Date predictedDepartureTime;
public final String departurePosition; public final String departurePosition;
public final Date arrivalTime; public final Date arrivalTime; // TODO rename to plannedArrivalTime
public final Date predictedArrivalTime;
public final String arrivalPosition; public final String arrivalPosition;
public final List<Stop> intermediateStops; public final List<Stop> intermediateStops;
public Trip(final Line line, final Location destination, final Date departureTime, final String departurePosition, final Location departure, public Trip(final Line line, final Location destination, final Date plannedDepartureTime, final Date predictedDepartureTime,
final Date arrivalTime, final String arrivalPosition, final Location arrival, final List<Stop> intermediateStops, final String departurePosition, final Location departure, final Date plannedArrivalTime, final Date predictedArrivalTime,
final List<Point> path) final String arrivalPosition, final Location arrival, final List<Stop> intermediateStops, final List<Point> path)
{ {
super(departure, arrival, path); super(departure, arrival, path);
this.line = line; this.line = line;
this.destination = destination; this.destination = destination;
this.departureTime = departureTime; this.departureTime = plannedDepartureTime;
this.predictedDepartureTime = predictedDepartureTime;
this.departurePosition = departurePosition; this.departurePosition = departurePosition;
this.arrivalTime = arrivalTime; this.arrivalTime = plannedArrivalTime;
this.predictedArrivalTime = predictedArrivalTime;
this.arrivalPosition = arrivalPosition; this.arrivalPosition = arrivalPosition;
this.intermediateStops = intermediateStops; this.intermediateStops = intermediateStops;
} }
public Date getDepartureTime()
{
if (predictedDepartureTime != null)
return predictedDepartureTime;
else if (departureTime != null)
return departureTime;
else
throw new IllegalStateException();
}
public boolean isDepartureTimePredicted()
{
return predictedDepartureTime != null;
}
public Date getArrivalTime()
{
if (predictedArrivalTime != null)
return predictedArrivalTime;
else if (arrivalTime != null)
return arrivalTime;
else
throw new IllegalStateException();
}
public boolean isArrivalTimePredicted()
{
return predictedArrivalTime != null;
}
@Override @Override
public String toString() public String toString()
{ {