mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-13 08:10:46 +00:00
migrate Trip arrival and departure to Stop type
This commit is contained in:
parent
cd78e7b809
commit
621e3b8add
5 changed files with 122 additions and 124 deletions
|
@ -2057,8 +2057,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
|
||||
XmlPullUtil.enter(pp, "itdPartialRouteList");
|
||||
final List<Connection.Part> parts = new LinkedList<Connection.Part>();
|
||||
Location firstDeparture = null;
|
||||
Location lastArrival = null;
|
||||
Location firstDepartureLocation = null;
|
||||
Location lastArrivalLocation = null;
|
||||
|
||||
while (XmlPullUtil.test(pp, "itdPartialRoute"))
|
||||
{
|
||||
|
@ -2068,9 +2068,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.test(pp, "itdPoint");
|
||||
if (!"departure".equals(pp.getAttributeValue(null, "usage")))
|
||||
throw new IllegalStateException();
|
||||
final Location departure = processItdPointAttributes(pp);
|
||||
if (firstDeparture == null)
|
||||
firstDeparture = departure;
|
||||
final Location departureLocation = processItdPointAttributes(pp);
|
||||
if (firstDepartureLocation == null)
|
||||
firstDepartureLocation = departureLocation;
|
||||
final String departurePosition;
|
||||
if (!suppressPositions)
|
||||
departurePosition = normalizePlatform(pp.getAttributeValue(null, "platform"), pp.getAttributeValue(null, "platformName"));
|
||||
|
@ -2097,8 +2097,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.test(pp, "itdPoint");
|
||||
if (!"arrival".equals(pp.getAttributeValue(null, "usage")))
|
||||
throw new IllegalStateException();
|
||||
final Location arrival = processItdPointAttributes(pp);
|
||||
lastArrival = arrival;
|
||||
final Location arrivalLocation = processItdPointAttributes(pp);
|
||||
lastArrivalLocation = arrivalLocation;
|
||||
final String arrivalPosition;
|
||||
if (!suppressPositions)
|
||||
arrivalPosition = normalizePlatform(pp.getAttributeValue(null, "platform"), pp.getAttributeValue(null, "platformName"));
|
||||
|
@ -2148,11 +2148,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
if (path != null && lastFootway.path != null)
|
||||
path.addAll(0, lastFootway.path);
|
||||
parts.add(new Connection.Footway(lastFootway.min + min, distance, lastFootway.transfer || transfer,
|
||||
lastFootway.departure, arrival, path));
|
||||
lastFootway.departure, arrivalLocation, path));
|
||||
}
|
||||
else
|
||||
{
|
||||
parts.add(new Connection.Footway(min, distance, transfer, departure, arrival, path));
|
||||
parts.add(new Connection.Footway(min, distance, transfer, departureLocation, arrivalLocation, path));
|
||||
}
|
||||
}
|
||||
else if ("gesicherter Anschluss".equals(productName) || "nicht umsteigen".equals(productName)) // type97
|
||||
|
@ -2268,11 +2268,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
final int size = intermediateStops.size();
|
||||
if (size >= 2)
|
||||
{
|
||||
if (intermediateStops.get(size - 1).location.id != arrival.id)
|
||||
if (intermediateStops.get(size - 1).location.id != arrivalLocation.id)
|
||||
throw new IllegalStateException();
|
||||
intermediateStops.remove(size - 1);
|
||||
|
||||
if (intermediateStops.get(0).location.id != departure.id)
|
||||
if (intermediateStops.get(0).location.id != departureLocation.id)
|
||||
throw new IllegalStateException();
|
||||
intermediateStops.remove(0);
|
||||
}
|
||||
|
@ -2321,9 +2321,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS);
|
||||
final Line line = new Line(lineId, lineLabel, lineStyle(lineLabel), lineAttrs);
|
||||
|
||||
parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime,
|
||||
departureTargetTime, departurePosition, null, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
|
||||
arrivalTargetTime, arrivalPosition, null, arrival, intermediateStops, path, message));
|
||||
final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime : departureTime,
|
||||
departureTargetTime, departurePosition, null);
|
||||
final Stop arrival = new Stop(arrivalLocation, false, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
|
||||
arrivalTargetTime, arrivalPosition, null);
|
||||
|
||||
parts.add(new Connection.Trip(line, destination, departure, arrival, intermediateStops, path, message));
|
||||
}
|
||||
|
||||
XmlPullUtil.exit(pp, "itdPartialRoute");
|
||||
|
@ -2385,7 +2388,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.next(pp);
|
||||
}
|
||||
}
|
||||
connections.add(new Connection(id, firstDeparture, lastArrival, parts, fares.isEmpty() ? null : fares, null, numChanges));
|
||||
connections.add(new Connection(id, firstDepartureLocation, lastArrivalLocation, parts, fares.isEmpty() ? null : fares, null,
|
||||
numChanges));
|
||||
XmlPullUtil.exit(pp, "itdRoute");
|
||||
}
|
||||
|
||||
|
|
|
@ -1057,7 +1057,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.enter(pp, "BasicStop");
|
||||
while (pp.getName().equals("StAttrList"))
|
||||
XmlPullUtil.next(pp);
|
||||
final Location departure = parseLocation(pp);
|
||||
final Location departureLocation = parseLocation(pp);
|
||||
XmlPullUtil.enter(pp, "Dep");
|
||||
XmlPullUtil.exit(pp, "Dep");
|
||||
final int[] capacity;
|
||||
|
@ -1094,7 +1094,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.enter(pp, "BasicStop");
|
||||
while (pp.getName().equals("StAttrList"))
|
||||
XmlPullUtil.next(pp);
|
||||
final Location arrival = parseLocation(pp);
|
||||
final Location arrivalLocation = parseLocation(pp);
|
||||
XmlPullUtil.exit(pp, "BasicStop");
|
||||
XmlPullUtil.exit(pp, "Arrival");
|
||||
|
||||
|
@ -1118,7 +1118,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.enter(pp, "BasicStop");
|
||||
while (pp.getName().equals("StAttrList"))
|
||||
XmlPullUtil.next(pp);
|
||||
final Location sectionDeparture = parseLocation(pp);
|
||||
final Location sectionDepartureLocation = parseLocation(pp);
|
||||
XmlPullUtil.enter(pp, "Dep");
|
||||
XmlPullUtil.require(pp, "Time");
|
||||
time.setTimeInMillis(currentDate.getTimeInMillis());
|
||||
|
@ -1192,7 +1192,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
while (XmlPullUtil.test(pp, "StAttrList"))
|
||||
XmlPullUtil.next(pp);
|
||||
final Location location = parseLocation(pp);
|
||||
if (location.id != sectionDeparture.id)
|
||||
if (location.id != sectionDepartureLocation.id)
|
||||
{
|
||||
Date stopArrivalTime = null;
|
||||
Date stopDepartureTime = null;
|
||||
|
@ -1278,7 +1278,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
XmlPullUtil.enter(pp, "BasicStop");
|
||||
while (pp.getName().equals("StAttrList"))
|
||||
XmlPullUtil.next(pp);
|
||||
final Location sectionArrival = parseLocation(pp);
|
||||
final Location sectionArrivalLocation = parseLocation(pp);
|
||||
XmlPullUtil.enter(pp, "Arr");
|
||||
XmlPullUtil.require(pp, "Time");
|
||||
time.setTimeInMillis(currentDate.getTimeInMillis());
|
||||
|
@ -1293,26 +1293,28 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
// remove last intermediate
|
||||
final int size = intermediateStops != null ? intermediateStops.size() : 0;
|
||||
if (size >= 1)
|
||||
if (intermediateStops.get(size - 1).location.id == sectionArrival.id)
|
||||
if (intermediateStops.get(size - 1).location.id == sectionArrivalLocation.id)
|
||||
intermediateStops.remove(size - 1);
|
||||
|
||||
XmlPullUtil.exit(pp, "ConSection");
|
||||
|
||||
if (min == 0 || line != null)
|
||||
{
|
||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePos, null, sectionDeparture, arrivalTime,
|
||||
null, arrivalPos, null, sectionArrival, intermediateStops, path, null));
|
||||
final Stop departure = new Stop(sectionDepartureLocation, true, departureTime, null, departurePos, null);
|
||||
final Stop arrival = new Stop(sectionArrivalLocation, false, arrivalTime, null, arrivalPos, null);
|
||||
|
||||
parts.add(new Connection.Trip(line, destination, departure, arrival, intermediateStops, path, null));
|
||||
}
|
||||
else
|
||||
{
|
||||
if (parts.size() > 0 && parts.get(parts.size() - 1) instanceof Connection.Footway)
|
||||
{
|
||||
final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1);
|
||||
parts.add(new Connection.Footway(lastFootway.min + min, 0, false, lastFootway.departure, sectionArrival, null));
|
||||
parts.add(new Connection.Footway(lastFootway.min + min, 0, false, lastFootway.departure, sectionArrivalLocation, null));
|
||||
}
|
||||
else
|
||||
{
|
||||
parts.add(new Connection.Footway(min, 0, false, sectionDeparture, sectionArrival, null));
|
||||
parts.add(new Connection.Footway(min, 0, false, sectionDepartureLocation, sectionArrivalLocation, null));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1321,7 +1323,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
|
||||
XmlPullUtil.exit(pp, "Connection");
|
||||
|
||||
connections.add(new Connection(id, departure, arrival, parts, null, capacity, numTransfers));
|
||||
connections.add(new Connection(id, departureLocation, arrivalLocation, parts, null, capacity, numTransfers));
|
||||
}
|
||||
|
||||
XmlPullUtil.exit(pp);
|
||||
|
@ -1741,10 +1743,10 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
is.skipBytes(0x4a + partsOffset + iPart * 20);
|
||||
|
||||
final long plannedDepartureTime = time(is, resDate, connectionDayOffset);
|
||||
final Location departure = stations.read(is);
|
||||
final Location departureLocation = stations.read(is);
|
||||
|
||||
final long plannedArrivalTime = time(is, resDate, connectionDayOffset);
|
||||
final Location arrival = stations.read(is);
|
||||
final Location arrivalLocation = stations.read(is);
|
||||
|
||||
final int type = is.readShortReverse();
|
||||
|
||||
|
@ -1863,11 +1865,11 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
{
|
||||
final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1);
|
||||
part = new Connection.Footway(lastFootway.min + min, 0, lastFootway.transfer || transfer, lastFootway.departure,
|
||||
arrival, null);
|
||||
arrivalLocation, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
part = new Connection.Footway(min, 0, transfer, departure, arrival, null);
|
||||
part = new Connection.Footway(min, 0, transfer, departureLocation, arrivalLocation, null);
|
||||
}
|
||||
}
|
||||
else if (type == 2)
|
||||
|
@ -1881,11 +1883,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final Line line = newLine(lineProduct, normalizeLineName(lineName), lineAttrs.toArray(new Line.Attr[0]));
|
||||
final Location direction = directionStr != null ? new Location(LocationType.ANY, 0, null, directionStr) : null;
|
||||
|
||||
part = new Connection.Trip(line, direction, plannedDepartureTime != 0 ? new Date(plannedDepartureTime) : null,
|
||||
predictedDepartureTime != 0 ? new Date(predictedDepartureTime) : null, plannedDeparturePosition,
|
||||
predictedDeparturePosition, departure, plannedArrivalTime != 0 ? new Date(plannedArrivalTime) : null,
|
||||
final Stop departure = new Stop(departureLocation, true, plannedDepartureTime != 0 ? new Date(plannedDepartureTime)
|
||||
: null, predictedDepartureTime != 0 ? new Date(predictedDepartureTime) : null, plannedDeparturePosition,
|
||||
predictedDeparturePosition);
|
||||
final Stop arrival = new Stop(arrivalLocation, false, plannedArrivalTime != 0 ? new Date(plannedArrivalTime) : null,
|
||||
predictedArrivalTime != 0 ? new Date(predictedArrivalTime) : null, plannedArrivalPosition,
|
||||
predictedArrivalPosition, arrival, intermediateStops, null, null);
|
||||
predictedArrivalPosition);
|
||||
|
||||
part = new Connection.Trip(line, direction, departure, arrival, intermediateStops, null, null);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
@ -37,6 +37,7 @@ import de.schildbach.pte.dto.QueryConnectionsResult;
|
|||
import de.schildbach.pte.dto.QueryConnectionsResult.Status;
|
||||
import de.schildbach.pte.dto.QueryDeparturesResult;
|
||||
import de.schildbach.pte.dto.ResultHeader;
|
||||
import de.schildbach.pte.dto.Stop;
|
||||
import de.schildbach.pte.dto.Style;
|
||||
|
||||
public class SadProvider extends AbstractNetworkProvider {
|
||||
|
@ -433,9 +434,13 @@ public class SadProvider extends AbstractNetworkProvider {
|
|||
// predictedDepartureTime, departurePosition,
|
||||
// predictedArrivalTime, arrivalPosition,
|
||||
// intermediateStops, path
|
||||
parts.add(new Trip(new Line(lineId, lineId, DEFAULT_STYLE), null, responseDate.get(0), null, null, null,
|
||||
soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), responseDate.get(1), null, null, null,
|
||||
soapToLocation((SoapObject) tratto.getProperty("nodo_arrivo")), null, null, null));
|
||||
|
||||
final Stop departure = new Stop(soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), true,
|
||||
responseDate.get(0), null, null, null);
|
||||
final Stop arrival = new Stop(soapToLocation((SoapObject) tratto.getProperty("nodo_arrivo")), false,
|
||||
responseDate.get(1), null, null, null);
|
||||
|
||||
parts.add(new Trip(new Line(lineId, lineId, DEFAULT_STYLE), null, departure, arrival, null, null, null));
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
|
|
@ -154,8 +154,8 @@ public final class Connection implements Serializable
|
|||
else if (part instanceof Trip)
|
||||
{
|
||||
final Trip trip = (Trip) part;
|
||||
builder.append(trip.departureTime.getTime()).append('-');
|
||||
builder.append(trip.arrivalTime.getTime()).append('-');
|
||||
builder.append(trip.departureStop.plannedDepartureTime.getTime()).append('-');
|
||||
builder.append(trip.arrivalStop.plannedArrivalTime.getTime()).append('-');
|
||||
builder.append(trip.line.label);
|
||||
}
|
||||
|
||||
|
@ -224,112 +224,82 @@ public final class Connection implements Serializable
|
|||
|
||||
public final Line line;
|
||||
public final Location destination;
|
||||
public final Date departureTime; // TODO rename to plannedDepartureTime
|
||||
public final Date predictedDepartureTime;
|
||||
public final String departurePosition; // TODO rename to plannedDeparturePosition
|
||||
public final String predictedDeparturePosition;
|
||||
public final Date arrivalTime; // TODO rename to plannedArrivalTime
|
||||
public final Date predictedArrivalTime;
|
||||
public final String arrivalPosition; // TODO rename to plannedArrivalPosition
|
||||
public final String predictedArrivalPosition;
|
||||
public final Stop departureStop;
|
||||
public final Stop arrivalStop;
|
||||
public final List<Stop> intermediateStops;
|
||||
public final String message;
|
||||
|
||||
public Trip(final Line line, final Location destination, final Date plannedDepartureTime, final Date predictedDepartureTime,
|
||||
final String departurePosition, final String predictedDeparturePosition, final Location departure, final Date plannedArrivalTime,
|
||||
final Date predictedArrivalTime, final String arrivalPosition, final String predictedArrivalPosition, final Location arrival,
|
||||
public Trip(final Line line, final Location destination, final Stop departureStop, final Stop arrivalStop,
|
||||
final List<Stop> intermediateStops, final List<Point> path, final String message)
|
||||
{
|
||||
super(departure, arrival, path);
|
||||
super(departureStop != null ? departureStop.location : null, arrivalStop != null ? arrivalStop.location : null, path);
|
||||
|
||||
this.line = line;
|
||||
this.destination = destination;
|
||||
this.departureTime = plannedDepartureTime;
|
||||
this.predictedDepartureTime = predictedDepartureTime;
|
||||
this.departurePosition = departurePosition;
|
||||
this.predictedDeparturePosition = predictedDeparturePosition;
|
||||
this.arrivalTime = plannedArrivalTime;
|
||||
this.predictedArrivalTime = predictedArrivalTime;
|
||||
this.arrivalPosition = arrivalPosition;
|
||||
this.predictedArrivalPosition = predictedArrivalPosition;
|
||||
this.departureStop = departureStop;
|
||||
this.arrivalStop = arrivalStop;
|
||||
this.intermediateStops = intermediateStops;
|
||||
this.message = message;
|
||||
}
|
||||
|
||||
public Date getDepartureTime()
|
||||
{
|
||||
if (predictedDepartureTime != null)
|
||||
return predictedDepartureTime;
|
||||
else if (departureTime != null)
|
||||
return departureTime;
|
||||
else
|
||||
final Date departureTime = departureStop.getDepartureTime();
|
||||
|
||||
if (departureTime == null)
|
||||
throw new IllegalStateException();
|
||||
|
||||
return departureTime;
|
||||
}
|
||||
|
||||
public boolean isDepartureTimePredicted()
|
||||
{
|
||||
return predictedDepartureTime != null;
|
||||
return departureStop.isDepartureTimePredicted();
|
||||
}
|
||||
|
||||
public Long getDepartureDelay()
|
||||
{
|
||||
if (departureTime != null && predictedDepartureTime != null)
|
||||
return predictedDepartureTime.getTime() - departureTime.getTime();
|
||||
else
|
||||
return null;
|
||||
return departureStop.getDepartureDelay();
|
||||
}
|
||||
|
||||
public String getDeparturePosition()
|
||||
{
|
||||
if (predictedDeparturePosition != null)
|
||||
return predictedDeparturePosition;
|
||||
else if (departurePosition != null)
|
||||
return departurePosition;
|
||||
else
|
||||
return null;
|
||||
return departureStop.getDeparturePosition();
|
||||
}
|
||||
|
||||
public boolean isDeparturePositionPredicted()
|
||||
{
|
||||
return predictedDeparturePosition != null;
|
||||
return departureStop.isDeparturePositionPredicted();
|
||||
}
|
||||
|
||||
public Date getArrivalTime()
|
||||
{
|
||||
if (predictedArrivalTime != null)
|
||||
return predictedArrivalTime;
|
||||
else if (arrivalTime != null)
|
||||
return arrivalTime;
|
||||
else
|
||||
final Date arrivalTime = arrivalStop.getArrivalTime();
|
||||
|
||||
if (arrivalTime == null)
|
||||
throw new IllegalStateException();
|
||||
|
||||
return arrivalTime;
|
||||
}
|
||||
|
||||
public boolean isArrivalTimePredicted()
|
||||
{
|
||||
return predictedArrivalTime != null;
|
||||
return arrivalStop.isArrivalTimePredicted();
|
||||
}
|
||||
|
||||
public Long getArrivalDelay()
|
||||
{
|
||||
if (arrivalTime != null && predictedArrivalTime != null)
|
||||
return predictedArrivalTime.getTime() - arrivalTime.getTime();
|
||||
else
|
||||
return null;
|
||||
return arrivalStop.getArrivalDelay();
|
||||
}
|
||||
|
||||
public String getArrivalPosition()
|
||||
{
|
||||
if (predictedArrivalPosition != null)
|
||||
return predictedArrivalPosition;
|
||||
else if (arrivalPosition != null)
|
||||
return arrivalPosition;
|
||||
else
|
||||
return null;
|
||||
return arrivalStop.getArrivalPosition();
|
||||
}
|
||||
|
||||
public boolean isArrivalPositionPredicted()
|
||||
{
|
||||
return predictedArrivalPosition != null;
|
||||
return arrivalStop.isArrivalPositionPredicted();
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -343,9 +313,9 @@ public final class Connection implements Serializable
|
|||
builder.append("destination=").append(destination.toDebugString());
|
||||
}
|
||||
builder.append(",");
|
||||
builder.append("departure=").append(departureTime).append("/").append(departurePosition).append("/").append(departure.toDebugString());
|
||||
builder.append("departure=").append(departureStop);
|
||||
builder.append(",");
|
||||
builder.append("arrival=").append(arrivalTime).append("/").append(arrivalPosition).append("/").append(arrival.toDebugString());
|
||||
builder.append("arrival=").append(arrivalStop);
|
||||
builder.append("]");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
|
@ -30,9 +30,9 @@ public final class Stop implements Serializable
|
|||
public final Date predictedArrivalTime;
|
||||
public final String plannedArrivalPosition;
|
||||
public final String predictedArrivalPosition;
|
||||
public final Date time; // TODO rename to plannedDepartureTime
|
||||
public final Date plannedDepartureTime;
|
||||
public final Date predictedDepartureTime;
|
||||
public final String position; // TODO rename to plannedPosition
|
||||
public final String plannedDeparturePosition;
|
||||
public final String predictedDeparturePosition;
|
||||
|
||||
public Stop(final Location location, final Date plannedArrivalTime, final Date predictedArrivalTime, final String plannedArrivalPosition,
|
||||
|
@ -44,12 +44,26 @@ public final class Stop implements Serializable
|
|||
this.predictedArrivalTime = predictedArrivalTime;
|
||||
this.plannedArrivalPosition = plannedArrivalPosition;
|
||||
this.predictedArrivalPosition = predictedArrivalPosition;
|
||||
this.time = plannedDepartureTime;
|
||||
this.plannedDepartureTime = plannedDepartureTime;
|
||||
this.predictedDepartureTime = predictedDepartureTime;
|
||||
this.position = plannedDeparturePosition;
|
||||
this.plannedDeparturePosition = plannedDeparturePosition;
|
||||
this.predictedDeparturePosition = predictedDeparturePosition;
|
||||
}
|
||||
|
||||
public Stop(final Location location, final boolean departure, final Date plannedTime, final Date predictedTime, final String plannedPosition,
|
||||
final String predictedPosition)
|
||||
{
|
||||
this.location = location;
|
||||
this.plannedArrivalTime = !departure ? plannedTime : null;
|
||||
this.predictedArrivalTime = !departure ? predictedTime : null;
|
||||
this.plannedArrivalPosition = !departure ? plannedPosition : null;
|
||||
this.predictedArrivalPosition = !departure ? predictedPosition : null;
|
||||
this.plannedDepartureTime = departure ? plannedTime : null;
|
||||
this.predictedDepartureTime = departure ? predictedTime : null;
|
||||
this.plannedDeparturePosition = departure ? plannedPosition : null;
|
||||
this.predictedDeparturePosition = departure ? predictedPosition : null;
|
||||
}
|
||||
|
||||
public Stop(final Location location, final Date plannedArrivalTime, final String plannedArrivalPosition, final Date plannedDepartureTime,
|
||||
final String plannedDeparturePosition)
|
||||
{
|
||||
|
@ -58,9 +72,9 @@ public final class Stop implements Serializable
|
|||
this.predictedArrivalTime = null;
|
||||
this.plannedArrivalPosition = plannedArrivalPosition;
|
||||
this.predictedArrivalPosition = null;
|
||||
this.time = plannedDepartureTime;
|
||||
this.plannedDepartureTime = plannedDepartureTime;
|
||||
this.predictedDepartureTime = null;
|
||||
this.position = plannedDeparturePosition;
|
||||
this.plannedDeparturePosition = plannedDeparturePosition;
|
||||
this.predictedDeparturePosition = null;
|
||||
}
|
||||
|
||||
|
@ -106,8 +120,8 @@ public final class Stop implements Serializable
|
|||
{
|
||||
if (predictedDepartureTime != null)
|
||||
return predictedDepartureTime;
|
||||
else if (time != null)
|
||||
return time;
|
||||
else if (plannedDepartureTime != null)
|
||||
return plannedDepartureTime;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
@ -119,8 +133,8 @@ public final class Stop implements Serializable
|
|||
|
||||
public Long getDepartureDelay()
|
||||
{
|
||||
if (time != null && predictedDepartureTime != null)
|
||||
return predictedDepartureTime.getTime() - time.getTime();
|
||||
if (plannedDepartureTime != null && predictedDepartureTime != null)
|
||||
return predictedDepartureTime.getTime() - plannedDepartureTime.getTime();
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
@ -129,8 +143,8 @@ public final class Stop implements Serializable
|
|||
{
|
||||
if (predictedDeparturePosition != null)
|
||||
return predictedDeparturePosition;
|
||||
else if (position != null)
|
||||
return position;
|
||||
else if (plannedDeparturePosition != null)
|
||||
return plannedDeparturePosition;
|
||||
else
|
||||
return null;
|
||||
}
|
||||
|
@ -143,24 +157,24 @@ public final class Stop implements Serializable
|
|||
@Override
|
||||
public String toString()
|
||||
{
|
||||
StringBuilder builder = new StringBuilder("Stop(");
|
||||
StringBuilder builder = new StringBuilder("Stop('");
|
||||
builder.append(location);
|
||||
builder.append(",");
|
||||
builder.append(plannedArrivalTime != null ? plannedArrivalTime : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedArrivalTime != null ? predictedArrivalTime : "null");
|
||||
builder.append(",");
|
||||
builder.append(plannedArrivalPosition != null ? plannedArrivalPosition : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedArrivalPosition != null ? predictedArrivalPosition : "null");
|
||||
builder.append(",");
|
||||
builder.append(time != null ? time : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedDepartureTime != null ? predictedDepartureTime : "null");
|
||||
builder.append(",");
|
||||
builder.append(position != null ? position : "null");
|
||||
builder.append(",");
|
||||
builder.append(predictedDeparturePosition != null ? predictedDeparturePosition : "null");
|
||||
builder.append("', arr: ");
|
||||
builder.append(plannedArrivalTime != null ? plannedArrivalTime : "-");
|
||||
builder.append("/");
|
||||
builder.append(predictedArrivalTime != null ? predictedArrivalTime : "-");
|
||||
builder.append(", ");
|
||||
builder.append(plannedArrivalPosition != null ? plannedArrivalPosition : "-");
|
||||
builder.append("/");
|
||||
builder.append(predictedArrivalPosition != null ? predictedArrivalPosition : "-");
|
||||
builder.append(", dep: ");
|
||||
builder.append(plannedDepartureTime != null ? plannedDepartureTime : "-");
|
||||
builder.append("/");
|
||||
builder.append(predictedDepartureTime != null ? predictedDepartureTime : "-");
|
||||
builder.append(", ");
|
||||
builder.append(plannedDeparturePosition != null ? plannedDeparturePosition : "-");
|
||||
builder.append("/");
|
||||
builder.append(predictedDeparturePosition != null ? predictedDeparturePosition : "-");
|
||||
builder.append(")");
|
||||
return builder.toString();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue