diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index 8e27885c..1b0019d5 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1263,9 +1263,9 @@ public abstract class AbstractEfaProvider implements NetworkProvider XmlPullUtil.enter(pp, "itdPartialRouteList"); final List parts = new LinkedList(); - String firstDeparture = null; + Location firstDeparture = null; Date firstDepartureTime = null; - String lastArrival = null; + Location lastArrival = null; Date lastArrivalTime = null; while (XmlPullUtil.test(pp, "itdPartialRoute")) @@ -1276,7 +1276,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider if (!"departure".equals(pp.getAttributeValue(null, "usage"))) throw new IllegalStateException(); final int departureId = Integer.parseInt(pp.getAttributeValue(null, "stopID")); - final String departure = normalizeLocationName(pp.getAttributeValue(null, "name")); + final String departureName = normalizeLocationName(pp.getAttributeValue(null, "name")); + final Location departure = new Location(LocationType.STATION, departureId, null, departureName); if (firstDeparture == null) firstDeparture = departure; final String departurePosition = normalizePlatform(pp.getAttributeValue(null, "platform"), @@ -1294,7 +1295,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider if (!"arrival".equals(pp.getAttributeValue(null, "usage"))) throw new IllegalStateException(); final int arrivalId = Integer.parseInt(pp.getAttributeValue(null, "stopID")); - final String arrival = normalizeLocationName(pp.getAttributeValue(null, "name")); + final String arrivalName = normalizeLocationName(pp.getAttributeValue(null, "name")); + final Location arrival = new Location(LocationType.STATION, arrivalId, null, arrivalName); lastArrival = arrival; final String arrivalPosition = normalizePlatform(pp.getAttributeValue(null, "platform"), pp.getAttributeValue(null, "platformName")); @@ -1327,12 +1329,11 @@ public abstract class AbstractEfaProvider implements NetworkProvider final Connection.Footway lastFootway = (Connection.Footway) parts.remove(parts.size() - 1); if (path != null && lastFootway.path != null) path.addAll(0, lastFootway.path); - parts.add(new Connection.Footway(lastFootway.min + min, lastFootway.departureId, lastFootway.departure, arrivalId, - arrival, path)); + parts.add(new Connection.Footway(lastFootway.min + min, lastFootway.departure, arrival, path)); } else { - parts.add(new Connection.Footway(min, departureId, departure, arrivalId, arrival, path)); + parts.add(new Connection.Footway(min, departure, arrival, path)); } } else if ("gesicherter Anschluss".equals(productName) || "nicht umsteigen".equals(productName)) // type97 @@ -1401,8 +1402,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider if (XmlPullUtil.test(pp, "itdPathCoordinates")) path = processItdPathCoordinates(pp); - parts.add(new Connection.Trip(line, destination, departureTime.getTime(), departurePosition, departureId, departure, - arrivalTime.getTime(), arrivalPosition, arrivalId, arrival, intermediateStops, path)); + parts.add(new Connection.Trip(line, destination, departureTime.getTime(), departurePosition, departure, arrivalTime + .getTime(), arrivalPosition, arrival, intermediateStops, path)); } XmlPullUtil.exit(pp, "itdPartialRoute"); @@ -1447,8 +1448,8 @@ public abstract class AbstractEfaProvider implements NetworkProvider } XmlPullUtil.exit(pp, "itdFare"); } - connections.add(new Connection(id, uri, firstDepartureTime, lastArrivalTime, 0, firstDeparture, 0, lastArrival, parts, fares - .isEmpty() ? null : fares)); + connections.add(new Connection(id, uri, firstDepartureTime, lastArrivalTime, firstDeparture, lastArrival, parts, + fares.isEmpty() ? null : fares)); XmlPullUtil.exit(pp, "itdRoute"); } diff --git a/src/de/schildbach/pte/AbstractHafasProvider.java b/src/de/schildbach/pte/AbstractHafasProvider.java index 2a1390c2..c9600bf5 100644 --- a/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/src/de/schildbach/pte/AbstractHafasProvider.java @@ -447,21 +447,19 @@ public abstract class AbstractHafasProvider implements NetworkProvider if (min == 0 || line != null) { - parts.add(new Connection.Trip(line, destination, departureTime, departurePos, sectionDeparture.id, sectionDeparture.name, - arrivalTime, arrivalPos, sectionArrival.id, sectionArrival.name, null, null)); + parts.add(new Connection.Trip(line, destination, departureTime, departurePos, sectionDeparture, arrivalTime, arrivalPos, + sectionArrival, null, 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, lastFootway.departureId, lastFootway.departure, - sectionArrival.id, sectionArrival.name, null)); + parts.add(new Connection.Footway(lastFootway.min + min, lastFootway.departure, sectionArrival, null)); } else { - parts.add(new Connection.Footway(min, sectionDeparture.id, sectionDeparture.name, sectionArrival.id, sectionArrival.name, - null)); + parts.add(new Connection.Footway(min, sectionDeparture, sectionArrival, null)); } } @@ -474,8 +472,7 @@ public abstract class AbstractHafasProvider implements NetworkProvider XmlPullUtil.exit(pp); - connections.add(new Connection(id, null, firstDepartureTime, lastArrivalTime, departure.id, departure.name, arrival.id, arrival.name, - parts, null)); + connections.add(new Connection(id, null, firstDepartureTime, lastArrivalTime, departure, arrival, parts, null)); } XmlPullUtil.exit(pp); diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index 1e96cf30..0eee1452 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -266,7 +266,7 @@ public final class BahnProvider extends AbstractHafasProvider if (departureTime.after(arrivalTime)) arrivalTime = ParserUtils.addDays(arrivalTime, 1); final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, departureTime, arrivalTime, - 0, from.name, 0, to.name, null, null); + from, to, null, null); connections.add(connection); } else @@ -325,9 +325,9 @@ public final class BahnProvider extends AbstractHafasProvider final List parts = new ArrayList(4); Date firstDepartureTime = null; - String firstDeparture = null; + Location firstDeparture = null; Date lastArrivalTime = null; - String lastArrival = null; + Location lastArrival = null; Connection.Trip lastTrip = null; final Matcher mDetCoarse = P_CONNECTION_DETAILS_COARSE.matcher(mHead.group(1)); @@ -343,7 +343,7 @@ public final class BahnProvider extends AbstractHafasProvider final Matcher mDetFine = P_CONNECTION_DETAILS_FINE.matcher(section); if (mDetFine.matches()) { - final String departure = ParserUtils.resolveEntities(mDetFine.group(1)); + final Location departure = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(1))); if (departure != null && firstDeparture == null) firstDeparture = departure; @@ -357,7 +357,7 @@ public final class BahnProvider extends AbstractHafasProvider final Date departureDate = ParserUtils.parseDate(mDetFine.group(5)); - final String arrival = ParserUtils.resolveEntities(mDetFine.group(6)); + final Location arrival = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(6))); final Date arrivalTime = ParserUtils.parseTime(mDetFine.group(7)); @@ -367,8 +367,8 @@ public final class BahnProvider extends AbstractHafasProvider final Date departureDateTime = ParserUtils.joinDateTime(departureDate, departureTime); final Date arrivalDateTime = ParserUtils.joinDateTime(arrivalDate, arrivalTime); - lastTrip = new Connection.Trip(line, null, departureDateTime, departurePosition, 0, departure, arrivalDateTime, - arrivalPosition, 0, arrival, null, null); + lastTrip = new Connection.Trip(line, null, departureDateTime, departurePosition, departure, arrivalDateTime, + arrivalPosition, arrival, null, null); parts.add(lastTrip); if (firstDepartureTime == null) @@ -381,25 +381,25 @@ public final class BahnProvider extends AbstractHafasProvider { final String min = mDetFine.group(10); - final String arrival = ParserUtils.resolveEntities(mDetFine.group(11)); + final Location arrival = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(11))); 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 + Integer.parseInt(min), 0, lastFootway.departure, 0, arrival, null)); + parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departure, arrival, null)); } else { - parts.add(new Connection.Footway(Integer.parseInt(min), 0, departure, 0, arrival, null)); + parts.add(new Connection.Footway(Integer.parseInt(min), departure, arrival, null)); } lastArrival = arrival; } else { - final String arrival = ParserUtils.resolveEntities(mDetFine.group(12)); + final Location arrival = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(12))); - parts.add(new Connection.Footway(0, 0, departure, 0, arrival, null)); + parts.add(new Connection.Footway(0, departure, arrival, null)); } } else @@ -414,7 +414,7 @@ public final class BahnProvider extends AbstractHafasProvider throw new IllegalStateException("could not parse all parts of:\n" + mHead.group(1) + "\n" + parts); return new GetConnectionDetailsResult(new Date(), new Connection(AbstractHafasProvider.extractConnectionId(uri), uri, firstDepartureTime, - lastArrivalTime, 0, firstDeparture, 0, lastArrival, parts, null)); + lastArrivalTime, firstDeparture, lastArrival, parts, null)); } else { diff --git a/src/de/schildbach/pte/BvgProvider.java b/src/de/schildbach/pte/BvgProvider.java index 6385131c..45859f4d 100644 --- a/src/de/schildbach/pte/BvgProvider.java +++ b/src/de/schildbach/pte/BvgProvider.java @@ -421,7 +421,7 @@ public final class BvgProvider extends AbstractHafasProvider if (departureTime.after(arrivalTime)) arrivalTime = ParserUtils.addDays(arrivalTime, 1); final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, departureTime, arrivalTime, - 0, from.name, 0, to.name, null, null); + from, to, null, null); connections.add(connection); } else @@ -471,11 +471,9 @@ public final class BvgProvider extends AbstractHafasProvider final List parts = new ArrayList(4); Date firstDepartureTime = null; - String firstDeparture = null; - int firstDepartureId = 0; + Location firstDeparture = null; Date lastArrivalTime = null; - String lastArrival = null; - int lastArrivalId = 0; + Location lastArrival = null; final Matcher mDetCoarse = P_CONNECTION_DETAILS_COARSE.matcher(page); while (mDetCoarse.find()) @@ -483,23 +481,20 @@ public final class BvgProvider extends AbstractHafasProvider final Matcher mDetFine = P_CONNECTION_DETAILS_FINE.matcher(mDetCoarse.group(1)); if (mDetFine.matches()) { - int departureId = 0; - String departure = ParserUtils.resolveEntities(mDetFine.group(2)); - if (departure == null) + final String departureName = ParserUtils.resolveEntities(mDetFine.group(2)); + final Location departure; + if (departureName != null) { - departure = lastArrival; - departureId = lastArrivalId; + final int departureId = Integer.parseInt(mDetFine.group(1)); + departure = new Location(departureId != 0 ? LocationType.STATION : LocationType.ANY, departureId, null, departureName); } else { - departureId = Integer.parseInt(mDetFine.group(1)); + departure = lastArrival; } if (departure != null && firstDeparture == null) - { firstDeparture = departure; - firstDepartureId = departureId; - } final String min = mDetFine.group(11); if (min == null) @@ -522,43 +517,42 @@ public final class BvgProvider extends AbstractHafasProvider final int arrivalId = Integer.parseInt(mDetFine.group(9)); - final String arrival = ParserUtils.resolveEntities(mDetFine.group(10)); + final Location arrival = new Location(LocationType.STATION, arrivalId, null, ParserUtils.resolveEntities(mDetFine.group(10))); - parts.add(new Connection.Trip(line, destination, departureTime, departurePosition, departureId, departure, arrivalTime, - arrivalPosition, arrivalId, arrival, null, null)); + parts.add(new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition, + arrival, null, null)); if (firstDepartureTime == null) firstDepartureTime = departureTime; lastArrival = arrival; - lastArrivalId = arrivalId; lastArrivalTime = arrivalTime; } else { final int arrivalId = mDetFine.group(12) != null ? Integer.parseInt(mDetFine.group(12)) : 0; - final String arrival = ParserUtils.resolveEntities(ParserUtils.selectNotNull(mDetFine.group(13), mDetFine.group(16), - mDetFine.group(17))); - final int arrivalLon = mDetFine.group(14) != null ? Integer.parseInt(mDetFine.group(14)) : 0; final int arrivalLat = mDetFine.group(15) != null ? Integer.parseInt(mDetFine.group(15)) : 0; + final String arrivalName = ParserUtils.resolveEntities(ParserUtils.selectNotNull(mDetFine.group(13), mDetFine.group(16), + mDetFine.group(17))); + + final Location arrival = new Location(arrivalId != 0 ? LocationType.STATION : LocationType.ANY, arrivalId, arrivalLat, + arrivalLon, null, arrivalName); + 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 + Integer.parseInt(min), lastFootway.departureId, lastFootway.departure, - arrivalId, arrival, arrivalLat, arrivalLon, null)); + parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departure, arrival, null)); } else { - parts.add(new Connection.Footway(Integer.parseInt(min), departureId, departure, arrivalId, arrival, arrivalLat, - arrivalLon, null)); + parts.add(new Connection.Footway(Integer.parseInt(min), departure, arrival, null)); } lastArrival = arrival; - lastArrivalId = arrivalId; } } else @@ -569,7 +563,7 @@ public final class BvgProvider extends AbstractHafasProvider if (firstDepartureTime != null && lastArrivalTime != null) return new GetConnectionDetailsResult(currentDate, new Connection(AbstractHafasProvider.extractConnectionId(uri), uri, - firstDepartureTime, lastArrivalTime, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts, null)); + firstDepartureTime, lastArrivalTime, firstDeparture, lastArrival, parts, null)); else return new GetConnectionDetailsResult(currentDate, null); } diff --git a/src/de/schildbach/pte/OebbProvider.java b/src/de/schildbach/pte/OebbProvider.java index 519b1083..dbb92c47 100644 --- a/src/de/schildbach/pte/OebbProvider.java +++ b/src/de/schildbach/pte/OebbProvider.java @@ -410,7 +410,7 @@ public class OebbProvider extends AbstractHafasProvider : overviewDepartureDate, ParserUtils.parseTime(mConFine.group(4))); final String link = allDetailsUri; // TODO use print link? - final Connection connection = new Connection(id, link, overviewDepartureTime, overviewArrivalTime, 0, from.name, 0, to.name, + final Connection connection = new Connection(id, link, overviewDepartureTime, overviewArrivalTime, from, to, new ArrayList(1), null); connections.add(connection); @@ -424,7 +424,8 @@ public class OebbProvider extends AbstractHafasProvider { final int departureId = mDetFine.group(1) != null ? Integer.parseInt(mDetFine.group(1)) : 0; - final String departure = ParserUtils.resolveEntities(mDetFine.group(2)); + final Location departure = new Location(departureId != 0 ? LocationType.STATION : LocationType.ANY, departureId, null, + ParserUtils.resolveEntities(mDetFine.group(2))); Date detailsDepartureDate = mDetFine.group(3) != null ? ParserUtils.parseDate(mDetFine.group(3)) : lastDate; if (detailsDepartureDate != null) @@ -437,7 +438,8 @@ public class OebbProvider extends AbstractHafasProvider final int arrivalId = mDetFine.group(8) != null ? Integer.parseInt(mDetFine.group(8)) : 0; - final String arrival = ParserUtils.resolveEntities(mDetFine.group(9)); + final Location arrival = new Location(arrivalId != 0 ? LocationType.STATION : LocationType.ANY, arrivalId, null, + ParserUtils.resolveEntities(mDetFine.group(9))); Date detailsArrivalDate = mDetFine.group(10) != null ? ParserUtils.parseDate(mDetFine.group(10)) : lastDate; if (detailsArrivalDate != null) @@ -464,14 +466,14 @@ public class OebbProvider extends AbstractHafasProvider ParserUtils.resolveEntities(mDetFine.group(13))) : null; final Connection.Trip trip = new Connection.Trip(line, destination, detailsDepartureDateTime, departurePosition, - departureId, departure, detailsArrivalDateTime, arrivalPosition, arrivalId, arrival, null, null); + departure, detailsArrivalDateTime, arrivalPosition, arrival, null, null); connection.parts.add(trip); } else { final int min = (int) (detailsArrivalDateTime.getTime() - detailsDepartureDateTime.getTime()) / 1000 / 60; - final Connection.Footway footway = new Connection.Footway(min, departureId, departure, arrivalId, arrival, null); + final Connection.Footway footway = new Connection.Footway(min, departure, arrival, null); connection.parts.add(footway); } } diff --git a/src/de/schildbach/pte/RmvProvider.java b/src/de/schildbach/pte/RmvProvider.java index fe407dbb..521905b5 100644 --- a/src/de/schildbach/pte/RmvProvider.java +++ b/src/de/schildbach/pte/RmvProvider.java @@ -285,8 +285,7 @@ public class RmvProvider extends AbstractHafasProvider Date arrivalTime = ParserUtils.joinDateTime(currentDate, ParserUtils.parseTime(mConFine.group(3))); if (departureTime.after(arrivalTime)) arrivalTime = ParserUtils.addDays(arrivalTime, 1); - final Connection connection = new Connection(extractConnectionId(link), link, departureTime, arrivalTime, 0, from.name, 0, - to.name, null, null); + final Connection connection = new Connection(extractConnectionId(link), link, departureTime, arrivalTime, from, to, null, null); connections.add(connection); } else @@ -334,7 +333,7 @@ public class RmvProvider extends AbstractHafasProvider final Matcher mHead = P_CONNECTION_DETAILS_HEAD.matcher(page); if (mHead.matches()) { - final String firstDeparture = ParserUtils.resolveEntities(mHead.group(1)); + final Location firstDeparture = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mHead.group(1))); final Date currentDate = ParserUtils.parseDate(mHead.group(2)); final List parts = new ArrayList(4); @@ -342,7 +341,7 @@ public class RmvProvider extends AbstractHafasProvider Date firstDepartureTime = null; Date lastArrivalTime = null; - String lastArrival = null; + Location lastArrival = null; Connection.Trip lastTrip = null; final Matcher mDetCoarse = P_CONNECTION_DETAILS_COARSE.matcher(page); @@ -351,9 +350,9 @@ public class RmvProvider extends AbstractHafasProvider final Matcher mDetFine = P_CONNECTION_DETAILS_FINE.matcher(mDetCoarse.group(1)); if (mDetFine.matches()) { - final String departure = lastArrival != null ? lastArrival : firstDeparture; + final Location departure = lastArrival != null ? lastArrival : firstDeparture; - final String arrival = ParserUtils.resolveEntities(mDetFine.group(8)); + final Location arrival = new Location(LocationType.ANY, 0, null, ParserUtils.resolveEntities(mDetFine.group(8))); lastArrival = arrival; final String min = mDetFine.group(7); @@ -371,8 +370,8 @@ public class RmvProvider extends AbstractHafasProvider final String arrivalPosition = ParserUtils.resolveEntities(mDetFine.group(6)); - lastTrip = new Connection.Trip(line, destination, departureTime, departurePosition, 0, departure, arrivalTime, - arrivalPosition, 0, arrival, null, null); + lastTrip = new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition, + arrival, null, null); parts.add(lastTrip); if (firstDepartureTime == null) @@ -385,11 +384,11 @@ public class RmvProvider extends AbstractHafasProvider 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 + Integer.parseInt(min), 0, lastFootway.departure, 0, arrival, null)); + parts.add(new Connection.Footway(lastFootway.min + Integer.parseInt(min), lastFootway.departure, arrival, null)); } else { - parts.add(new Connection.Footway(Integer.parseInt(min), 0, departure, 0, arrival, null)); + parts.add(new Connection.Footway(Integer.parseInt(min), departure, arrival, null)); } } } @@ -399,8 +398,8 @@ public class RmvProvider extends AbstractHafasProvider } } - return new GetConnectionDetailsResult(currentDate, new Connection(extractConnectionId(uri), uri, firstDepartureTime, lastArrivalTime, 0, - firstDeparture, 0, lastArrival, parts, null)); + return new GetConnectionDetailsResult(currentDate, new Connection(extractConnectionId(uri), uri, firstDepartureTime, lastArrivalTime, + firstDeparture, lastArrival, parts, null)); } else { diff --git a/src/de/schildbach/pte/dto/Connection.java b/src/de/schildbach/pte/dto/Connection.java index 90634e2e..16e38e92 100644 --- a/src/de/schildbach/pte/dto/Connection.java +++ b/src/de/schildbach/pte/dto/Connection.java @@ -31,23 +31,19 @@ public final class Connection implements Serializable public final String link; public final Date departureTime; public final Date arrivalTime; - public final int fromId; - public final String from; - public final int toId; - public final String to; + public final Location from; + public final Location to; public final List parts; public final List fares; - public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final int fromId, final String from, - final int toId, final String to, final List parts, final List fares) + public Connection(final String id, final String link, final Date departureTime, final Date arrivalTime, final Location from, final Location to, + final List parts, final List fares) { this.id = id; this.link = link; this.departureTime = departureTime; this.arrivalTime = arrivalTime; - this.fromId = fromId; this.from = from; - this.toId = toId; this.to = to; this.parts = parts; this.fares = fares; @@ -79,10 +75,14 @@ public final class Connection implements Serializable public static class Part implements Serializable { + public final Location departure; + public final Location arrival; public final List path; - public Part(final List path) + public Part(final Location departure, final Location arrival, final List path) { + this.departure = departure; + this.arrival = arrival; this.path = path; } } @@ -93,30 +93,22 @@ public final class Connection implements Serializable public final Location destination; public final Date departureTime; public final String departurePosition; - public final int departureId; - public final String departure; public final Date arrivalTime; public final String arrivalPosition; - public final int arrivalId; - public final String arrival; public final List intermediateStops; - public Trip(final String line, final Location destination, final Date departureTime, final String departurePosition, final int departureId, - final String departure, final Date arrivalTime, final String arrivalPosition, final int arrivalId, final String arrival, + public Trip(final String line, final Location destination, final Date departureTime, final String departurePosition, + final Location departure, final Date arrivalTime, final String arrivalPosition, final Location arrival, final List intermediateStops, final List path) { - super(path); + super(departure, arrival, path); this.line = line; this.destination = destination; this.departureTime = departureTime; this.departurePosition = departurePosition; - this.departureId = departureId; - this.departure = departure; this.arrivalTime = arrivalTime; this.arrivalPosition = arrivalPosition; - this.arrivalId = arrivalId; - this.arrival = arrival; this.intermediateStops = intermediateStops; } @@ -128,10 +120,10 @@ public final class Connection implements Serializable builder.append(","); builder.append("destination=").append(destination).append("/").append(destination.id); builder.append(","); - builder.append("departure=").append(departureTime).append("/").append(departurePosition).append("/").append(departureId).append("/") + builder.append("departure=").append(departureTime).append("/").append(departurePosition).append("/").append(departure).append("/") .append(departure); builder.append(","); - builder.append("arrival=").append(arrivalTime).append("/").append(arrivalPosition).append("/").append(arrivalId).append("/") + builder.append("arrival=").append(arrivalTime).append("/").append(arrivalPosition).append("/").append(arrival).append("/") .append(arrival); builder.append("]"); return builder.toString(); @@ -141,37 +133,12 @@ public final class Connection implements Serializable public final static class Footway extends Part { public final int min; - public final int departureId; - public final String departure; - public final int arrivalId; - public final String arrival; - public final int arrivalLat, arrivalLon; - public Footway(final int min, final int departureId, final String departure, final int arrivalId, final String arrival, final int arrivalLat, - final int arrivalLon, final List path) + public Footway(final int min, final Location departure, final Location arrival, final List path) { - super(path); + super(departure, arrival, path); this.min = min; - this.departureId = departureId; - this.departure = departure; - this.arrivalId = arrivalId; - this.arrival = arrival; - this.arrivalLat = arrivalLat; - this.arrivalLon = arrivalLon; - } - - public Footway(final int min, final int departureId, final String departure, final int arrivalId, final String arrival, final List path) - { - super(path); - - this.min = min; - this.departureId = departureId; - this.departure = departure; - this.arrivalId = arrivalId; - this.arrival = arrival; - this.arrivalLat = 0; - this.arrivalLon = 0; } @Override @@ -180,9 +147,9 @@ public final class Connection implements Serializable final StringBuilder builder = new StringBuilder(getClass().getName() + "["); builder.append("min=").append(min); builder.append(","); - builder.append("departure=").append(departureId).append("/").append(departure); + builder.append("departure=").append(departure); builder.append(","); - builder.append("arrival=").append(arrivalId).append("/").append(arrival).append("/").append(arrivalLat).append(",").append(arrivalLon); + builder.append("arrival=").append(arrival); builder.append("]"); return builder.toString(); }