rename Connection to Trip

This commit is contained in:
Andreas Schildbach 2013-06-13 15:11:56 +02:00
parent fde90f7b87
commit 2852aedbd5
139 changed files with 1195 additions and 1236 deletions

View file

@ -49,7 +49,6 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import de.schildbach.pte.dto.Connection;
import de.schildbach.pte.dto.Departure;
import de.schildbach.pte.dto.Fare;
import de.schildbach.pte.dto.Fare.Type;
@ -60,12 +59,13 @@ import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.ResultHeader;
import de.schildbach.pte.dto.StationDepartures;
import de.schildbach.pte.dto.Stop;
import de.schildbach.pte.dto.Trip;
import de.schildbach.pte.exception.InvalidDataException;
import de.schildbach.pte.exception.NotFoundException;
import de.schildbach.pte.exception.ParserException;
@ -100,12 +100,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private String httpRefererTrip = null;
private boolean httpPost = false;
private boolean suppressPositions = false;
private boolean useRouteIndexAsConnectionId = true;
private boolean useRouteIndexAsTripId = true;
private boolean useLineRestriction = true;
private final XmlPullParserFactory parserFactory;
private static class Context implements QueryConnectionsContext
private static class Context implements QueryTripsContext
{
private final String context;
@ -194,9 +194,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
this.suppressPositions = suppressPositions;
}
protected void setUseRouteIndexAsConnectionId(final boolean useRouteIndexAsConnectionId)
protected void setUseRouteIndexAsTripId(final boolean useRouteIndexAsTripId)
{
this.useRouteIndexAsConnectionId = useRouteIndexAsConnectionId;
this.useRouteIndexAsTripId = useRouteIndexAsTripId;
}
protected void setUseLineRestriction(final boolean useLineRestriction)
@ -1528,7 +1528,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
}
protected String xsltTripRequestParameters(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options)
{
final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd", Locale.US);
@ -1552,7 +1552,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
uri.append("&itdTime=").append(ParserUtils.urlEncode(TIME_FORMAT.format(date)));
uri.append("&itdTripDateTimeDepArr=").append(dep ? "dep" : "arr");
uri.append("&calcNumberOfTrips=").append(numConnections);
uri.append("&calcNumberOfTrips=").append(numTrips);
uri.append("&ptOptionsActive=1"); // enable public transport options
uri.append("&itOptionsActive=1"); // enable individual transport options
@ -1634,12 +1634,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
uri.append("&calcNumberOfTrips=4");
}
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
final String parameters = xsltTripRequestParameters(from, via, to, date, dep, numConnections, products, walkSpeed, accessibility, options);
final String parameters = xsltTripRequestParameters(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
final StringBuilder uri = new StringBuilder(tripEndpoint);
if (!httpPost)
@ -1652,7 +1652,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
try
{
is = ParserUtils.scrapeInputStream(uri.toString(), httpPost ? parameters.substring(1) : null, null, httpRefererTrip, "NSC_", 3);
return queryConnections(uri.toString(), is);
return queryTrips(uri.toString(), is);
}
catch (final XmlPullParserException x)
{
@ -1671,8 +1671,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private static final Pattern P_SESSION_EXPIRED = Pattern.compile("Your session has expired");
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
final Context context = (Context) contextObj;
final String commandUri = context.context;
@ -1685,7 +1684,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
is = new BufferedInputStream(ParserUtils.scrapeInputStream(uri.toString(), null, null, httpRefererTrip, "NSC_", 3));
is.mark(512);
return queryConnections(uri.toString(), is);
return queryTrips(uri.toString(), is);
}
catch (final XmlPullParserException x)
{
@ -1718,7 +1717,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
}
}
private QueryConnectionsResult queryConnections(final String uri, final InputStream is) throws XmlPullParserException, IOException
private QueryTripsResult queryTrips(final String uri, final InputStream is) throws XmlPullParserException, IOException
{
// System.out.println(uri);
@ -1737,8 +1736,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
if (XmlPullUtil.test(pp, "itdMessage"))
{
final int code = XmlPullUtil.intAttr(pp, "code");
if (code == -4000) // no connection
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
if (code == -4000) // no trips
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
XmlPullUtil.next(pp);
}
if (XmlPullUtil.test(pp, "itdPrintConfiguration"))
@ -1806,12 +1805,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
else if ("notidentified".equals(nameState))
{
if ("origin".equals(usage))
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_FROM);
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_FROM);
else if ("via".equals(usage))
// return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_VIA);
// return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_VIA);
throw new UnsupportedOperationException();
else if ("destination".equals(usage))
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_TO);
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_TO);
else
throw new IllegalStateException("unknown usage: " + usage);
}
@ -1820,7 +1819,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
}
if (ambiguousFrom != null || ambiguousTo != null || ambiguousVia != null)
return new QueryConnectionsResult(header, ambiguousFrom, ambiguousVia, ambiguousTo);
return new QueryTripsResult(header, ambiguousFrom, ambiguousVia, ambiguousTo);
XmlPullUtil.enter(pp, "itdTripDateTime");
XmlPullUtil.enter(pp, "itdDateTime");
@ -1833,7 +1832,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String message = XmlPullUtil.nextText(pp, null, "itdMessage");
if ("invalid date".equals(message))
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.INVALID_DATE);
return new QueryTripsResult(header, QueryTripsResult.Status.INVALID_DATE);
else
throw new IllegalStateException("unknown message: " + message);
}
@ -1846,7 +1845,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "itdDateTime");
final Calendar time = new GregorianCalendar(timeZone());
final List<Connection> connections = new ArrayList<Connection>();
final List<Trip> trips = new ArrayList<Trip>();
if (XmlPullUtil.jumpToStartTag(pp, null, "itdRouteList"))
{
@ -1854,7 +1853,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
while (XmlPullUtil.test(pp, "itdRoute"))
{
final String id = useRouteIndexAsConnectionId ? pp.getAttributeValue(null, "routeIndex") + "-"
final String id = useRouteIndexAsTripId ? pp.getAttributeValue(null, "routeIndex") + "-"
+ pp.getAttributeValue(null, "routeTripIndex") : null;
final int numChanges = XmlPullUtil.intAttr(pp, "changes");
XmlPullUtil.enter(pp, "itdRoute");
@ -1865,7 +1864,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.next(pp);
XmlPullUtil.enter(pp, "itdPartialRouteList");
final List<Connection.Leg> legs = new LinkedList<Connection.Leg>();
final List<Trip.Leg> legs = new LinkedList<Trip.Leg>();
Location firstDepartureLocation = null;
Location lastArrivalLocation = null;
@ -1954,17 +1953,17 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
if (XmlPullUtil.test(pp, "itdPathCoordinates"))
path = processItdPathCoordinates(pp);
if (legs.size() > 0 && legs.get(legs.size() - 1) instanceof Connection.Individual)
if (legs.size() > 0 && legs.get(legs.size() - 1) instanceof Trip.Individual)
{
final Connection.Individual lastIndividualLeg = (Connection.Individual) legs.remove(legs.size() - 1);
final Trip.Individual lastIndividualLeg = (Trip.Individual) legs.remove(legs.size() - 1);
if (path != null && lastIndividualLeg.path != null)
path.addAll(0, lastIndividualLeg.path);
legs.add(new Connection.Individual(lastIndividualLeg.min + min, distance, lastIndividualLeg.transfer || transfer,
legs.add(new Trip.Individual(lastIndividualLeg.min + min, distance, lastIndividualLeg.transfer || transfer,
lastIndividualLeg.departure, arrivalLocation, path));
}
else
{
legs.add(new Connection.Individual(min, distance, transfer, departureLocation, arrivalLocation, path));
legs.add(new Trip.Individual(min, distance, transfer, departureLocation, arrivalLocation, path));
}
}
else if ("gesicherter Anschluss".equals(productName) || "nicht umsteigen".equals(productName)) // type97
@ -2184,7 +2183,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final Stop arrival = new Stop(arrivalLocation, false, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
arrivalTime != null ? arrivalTime : null, arrivalPosition, null);
legs.add(new Connection.Public(line, destination, departure, arrival, intermediateStops, path, message));
legs.add(new Trip.Public(line, destination, departure, arrival, intermediateStops, path, message));
}
else
{
@ -2253,20 +2252,19 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "itdRoute");
final Connection connection = new Connection(id, firstDepartureLocation, lastArrivalLocation, legs, fares.isEmpty() ? null : fares,
null, numChanges);
final Trip trip = new Trip(id, firstDepartureLocation, lastArrivalLocation, legs, fares.isEmpty() ? null : fares, null, numChanges);
if (!cancelled)
connections.add(connection);
trips.add(trip);
}
XmlPullUtil.exit(pp, "itdRouteList");
return new QueryConnectionsResult(header, uri, from, via, to, new Context(commandLink((String) context, requestId)), connections);
return new QueryTripsResult(header, uri, from, via, to, new Context(commandLink((String) context, requestId)), trips);
}
else
{
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
}
}

View file

@ -50,7 +50,6 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import org.xmlpull.v1.XmlPullParserFactory;
import de.schildbach.pte.dto.Connection;
import de.schildbach.pte.dto.Departure;
import de.schildbach.pte.dto.Line;
import de.schildbach.pte.dto.Location;
@ -58,12 +57,13 @@ import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.ResultHeader;
import de.schildbach.pte.dto.StationDepartures;
import de.schildbach.pte.dto.Stop;
import de.schildbach.pte.dto.Trip;
import de.schildbach.pte.exception.SessionExpiredException;
import de.schildbach.pte.util.LittleEndianDataInputStream;
import de.schildbach.pte.util.ParserUtils;
@ -87,7 +87,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
private final Charset xmlMlcResEncoding;
private boolean dominantPlanStopTime = false;
private static class Context implements QueryConnectionsContext
private static class Context implements QueryTripsContext
{
public final String laterContext;
public final String earlierContext;
@ -111,14 +111,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
}
}
public static class QueryConnectionsBinaryContext implements QueryConnectionsContext
public static class QueryTripsBinaryContext implements QueryTripsContext
{
public final String ident;
public final int seqNr;
public final String ld;
public final int usedBufferSize;
public QueryConnectionsBinaryContext(final String ident, final int seqNr, final String ld, final int usedBufferSize)
public QueryTripsBinaryContext(final String ident, final int seqNr, final String ld, final int usedBufferSize)
{
this.ident = ident;
this.seqNr = seqNr;
@ -801,21 +801,20 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
}
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsXml(from, via, to, date, dep, numConnections, products, walkSpeed, accessibility, options);
return queryTripsXml(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext context, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext context, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsXml(context, later, numConnections);
return queryMoreTripsXml(context, later, numTrips);
}
protected final void appendConnectionsQueryUri(final StringBuilder uri, final Location from, final Location via, final Location to,
final Date date, final boolean dep, final Collection<Product> products, final Accessibility accessibility, final Set<Option> options)
protected final void appendTripsQueryUri(final StringBuilder uri, final Location from, final Location via, final Location to, final Date date,
final boolean dep, final Collection<Product> products, final Accessibility accessibility, final Set<Option> options)
{
uri.append("?start=Suchen");
@ -884,9 +883,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
uri.append("&REQ0JourneyProduct_opt3=1");
}
protected final QueryConnectionsResult queryConnectionsXml(Location from, Location via, Location to, final Date date, final boolean dep,
final int numConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
protected final QueryTripsResult queryTripsXml(Location from, Location via, Location to, final Date date, final boolean dep, final int numTrips,
final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility, final Set<Option> options)
throws IOException
{
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
@ -894,9 +893,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final List<Location> autocompletes = autocompleteStations(from.name);
if (autocompletes.isEmpty())
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS); // TODO
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); // TODO
if (autocompletes.size() > 1)
return new QueryConnectionsResult(header, autocompletes, null, null);
return new QueryTripsResult(header, autocompletes, null, null);
from = autocompletes.get(0);
}
@ -904,9 +903,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final List<Location> autocompletes = autocompleteStations(via.name);
if (autocompletes.isEmpty())
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS); // TODO
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); // TODO
if (autocompletes.size() > 1)
return new QueryConnectionsResult(header, null, autocompletes, null);
return new QueryTripsResult(header, null, autocompletes, null);
via = autocompletes.get(0);
}
@ -914,9 +913,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final List<Location> autocompletes = autocompleteStations(to.name);
if (autocompletes.isEmpty())
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS); // TODO
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); // TODO
if (autocompletes.size() > 1)
return new QueryConnectionsResult(header, null, null, autocompletes);
return new QueryTripsResult(header, null, null, autocompletes);
to = autocompletes.get(0);
}
@ -959,33 +958,33 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
.append("\" time=\"")
.append(String.format(Locale.ENGLISH, "%02d:%02d", c.get(Calendar.HOUR_OF_DAY), c.get(Calendar.MINUTE)) + "\"/>");
request.append("<RFlags");
// number of connections backwards
// number of trips backwards
request.append(" b=\"").append(0).append("\"");
// number of connection forwards
request.append(" f=\"").append(numConnections).append("\"");
// number of trips forwards
request.append(" f=\"").append(numTrips).append("\"");
// percentual extension of change time
request.append(" chExtension=\"").append(walkSpeed == WalkSpeed.SLOW ? 50 : 0).append("\"");
// TODO nrChanges: max number of changes
request.append(" sMode=\"N\"/>");
request.append("</ConReq>");
return queryConnectionsXml(null, true, request.toString(), from, via, to);
return queryTripsXml(null, true, request.toString(), from, via, to);
}
protected final QueryConnectionsResult queryMoreConnectionsXml(final QueryConnectionsContext contextObj, final boolean later,
final int numConnections) throws IOException
protected final QueryTripsResult queryMoreTripsXml(final QueryTripsContext contextObj, final boolean later, final int numTrips)
throws IOException
{
final Context context = (Context) contextObj;
final StringBuilder request = new StringBuilder("<ConScrReq scrDir=\"").append(later ? 'F' : 'B').append("\" nrCons=\"")
.append(numConnections).append("\">");
final StringBuilder request = new StringBuilder("<ConScrReq scrDir=\"").append(later ? 'F' : 'B').append("\" nrCons=\"").append(numTrips)
.append("\">");
request.append("<ConResCtxt>").append(later ? context.laterContext : context.earlierContext).append("</ConResCtxt>");
request.append("</ConScrReq>");
return queryConnectionsXml(context, later, request.toString(), null, null, null);
return queryTripsXml(context, later, request.toString(), null, null, null);
}
private QueryConnectionsResult queryConnectionsXml(final Context previousContext, final boolean later, final String request, final Location from,
private QueryTripsResult queryTripsXml(final Context previousContext, final boolean later, final String request, final Location from,
final Location via, final Location to) throws IOException
{
// System.out.println(request);
@ -1010,9 +1009,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final String code = XmlPullUtil.attr(pp, "code");
if (code.equals("I3")) // Input: date outside of the timetable period
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.INVALID_DATE);
return new QueryTripsResult(header, QueryTripsResult.Status.INVALID_DATE);
if (code.equals("F1")) // Spool: Error reading the spoolfile
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.SERVICE_DOWN);
return new QueryTripsResult(header, QueryTripsResult.Status.SERVICE_DOWN);
throw new IllegalStateException("error " + code + " " + XmlPullUtil.attr(pp, "text"));
}
@ -1022,21 +1021,21 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final String code = XmlPullUtil.attr(pp, "code");
if (code.equals("K9260")) // Departure station does not exist
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_FROM);
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_FROM);
if (code.equals("K9300")) // Arrival station does not exist
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNKNOWN_TO);
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_TO);
if (code.equals("K9380") || code.equals("K895")) // Departure/Arrival are too near
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.TOO_CLOSE);
return new QueryTripsResult(header, QueryTripsResult.Status.TOO_CLOSE);
if (code.equals("K9220")) // Nearby to the given address stations could not be found
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNRESOLVABLE_ADDRESS);
return new QueryTripsResult(header, QueryTripsResult.Status.UNRESOLVABLE_ADDRESS);
if (code.equals("K9240")) // Internal error
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.SERVICE_DOWN);
return new QueryTripsResult(header, QueryTripsResult.Status.SERVICE_DOWN);
if (code.equals("K890")) // No connections found
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
if (code.equals("K891")) // No route found (try entering an intermediate station)
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
if (code.equals("K899")) // An error occurred
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.SERVICE_DOWN);
return new QueryTripsResult(header, QueryTripsResult.Status.SERVICE_DOWN);
// if (code.equals("K1:890")) // Unsuccessful or incomplete search (direction: forward)
throw new IllegalStateException("error " + code + " " + XmlPullUtil.attr(pp, "text"));
}
@ -1056,7 +1055,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
XmlPullUtil.enter(pp, "ConnectionList");
final List<Connection> connections = new ArrayList<Connection>();
final List<Trip> trips = new ArrayList<Trip>();
while (XmlPullUtil.test(pp, "Connection"))
{
@ -1116,7 +1115,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "Overview");
final List<Connection.Leg> legs = new ArrayList<Connection.Leg>(4);
final List<Trip.Leg> legs = new ArrayList<Trip.Leg>(4);
XmlPullUtil.enter(pp, "ConSectionList");
@ -1316,19 +1315,19 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final Stop departure = new Stop(sectionDepartureLocation, true, departureTime, null, departurePos, null);
final Stop arrival = new Stop(sectionArrivalLocation, false, arrivalTime, null, arrivalPos, null);
legs.add(new Connection.Public(line, destination, departure, arrival, intermediateStops, path, null));
legs.add(new Trip.Public(line, destination, departure, arrival, intermediateStops, path, null));
}
else
{
if (legs.size() > 0 && legs.get(legs.size() - 1) instanceof Connection.Individual)
if (legs.size() > 0 && legs.get(legs.size() - 1) instanceof Trip.Individual)
{
final Connection.Individual lastIndividualLeg = (Connection.Individual) legs.remove(legs.size() - 1);
legs.add(new Connection.Individual(lastIndividualLeg.min + min, 0, false, lastIndividualLeg.departure,
sectionArrivalLocation, null));
final Trip.Individual lastIndividualLeg = (Trip.Individual) legs.remove(legs.size() - 1);
legs.add(new Trip.Individual(lastIndividualLeg.min + min, 0, false, lastIndividualLeg.departure, sectionArrivalLocation,
null));
}
else
{
legs.add(new Connection.Individual(min, 0, false, sectionDepartureLocation, sectionArrivalLocation, null));
legs.add(new Trip.Individual(min, 0, false, sectionDepartureLocation, sectionArrivalLocation, null));
}
}
}
@ -1337,12 +1336,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
XmlPullUtil.exit(pp, "Connection");
connections.add(new Connection(id, departureLocation, arrivalLocation, legs, null, capacity, numTransfers));
trips.add(new Trip(id, departureLocation, arrivalLocation, legs, null, capacity, numTransfers));
}
XmlPullUtil.exit(pp);
return new QueryConnectionsResult(header, null, from, via, to, context, connections);
return new QueryTripsResult(header, null, from, via, to, context, trips);
}
catch (final XmlPullParserException x)
{
@ -1491,14 +1490,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
return true;
}
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
}
private final static int QUERY_CONNECTIONS_BINARY_BUFFER_SIZE = 128 * 1024;
private final static int QUERY_TRIPS_BINARY_BUFFER_SIZE = 128 * 1024;
protected final QueryConnectionsResult queryConnectionsBinary(Location from, Location via, Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
protected final QueryTripsResult queryTripsBinary(Location from, Location via, Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
@ -1507,9 +1506,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final List<Location> autocompletes = autocompleteStations(from.name);
if (autocompletes.isEmpty())
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS); // TODO
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); // TODO
if (autocompletes.size() > 1)
return new QueryConnectionsResult(header, autocompletes, null, null);
return new QueryTripsResult(header, autocompletes, null, null);
from = autocompletes.get(0);
}
@ -1517,9 +1516,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final List<Location> autocompletes = autocompleteStations(via.name);
if (autocompletes.isEmpty())
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS); // TODO
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); // TODO
if (autocompletes.size() > 1)
return new QueryConnectionsResult(header, null, autocompletes, null);
return new QueryTripsResult(header, null, autocompletes, null);
via = autocompletes.get(0);
}
@ -1527,23 +1526,22 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{
final List<Location> autocompletes = autocompleteStations(to.name);
if (autocompletes.isEmpty())
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS); // TODO
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS); // TODO
if (autocompletes.size() > 1)
return new QueryConnectionsResult(header, null, null, autocompletes);
return new QueryTripsResult(header, null, null, autocompletes);
to = autocompletes.get(0);
}
final StringBuilder uri = new StringBuilder(apiUri);
appendConnectionsQueryUri(uri, from, via, to, date, dep, products, accessibility, options);
appendCustomConnectionsQueryBinaryUri(uri);
appendTripsQueryUri(uri, from, via, to, date, dep, products, accessibility, options);
appendCustomTripsQueryBinaryUri(uri);
return queryConnectionsBinary(uri.toString(), from, via, to, QUERY_CONNECTIONS_BINARY_BUFFER_SIZE);
return queryTripsBinary(uri.toString(), from, via, to, QUERY_TRIPS_BINARY_BUFFER_SIZE);
}
protected QueryConnectionsResult queryMoreConnectionsBinary(final QueryConnectionsContext contextObj, final boolean later,
final int numConnections) throws IOException
protected QueryTripsResult queryMoreTripsBinary(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
final QueryConnectionsBinaryContext context = (QueryConnectionsBinaryContext) contextObj;
final QueryTripsBinaryContext context = (QueryTripsBinaryContext) contextObj;
final StringBuilder uri = new StringBuilder(apiUri);
uri.append("?seqnr=").append(context.seqNr);
@ -1551,9 +1549,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (context.ld != null)
uri.append("&ld=").append(context.ld);
uri.append("&REQ0HafasScrollDir=").append(later ? 1 : 2);
appendCustomConnectionsQueryBinaryUri(uri);
appendCustomTripsQueryBinaryUri(uri);
return queryConnectionsBinary(uri.toString(), null, null, null, QUERY_CONNECTIONS_BINARY_BUFFER_SIZE + context.usedBufferSize);
return queryTripsBinary(uri.toString(), null, null, null, QUERY_TRIPS_BINARY_BUFFER_SIZE + context.usedBufferSize);
}
private class CustomBufferedInputStream extends BufferedInputStream
@ -1569,7 +1567,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
}
}
private QueryConnectionsResult queryConnectionsBinary(final String uri, final Location from, final Location via, final Location to,
private QueryTripsResult queryTripsBinary(final String uri, final Location from, final Location via, final Location to,
final int expectedBufferSize) throws IOException
{
/*
@ -1632,8 +1630,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final String requestId = strings.read(is);
final int connectionDetailsPtr = is.readIntReverse();
if (connectionDetailsPtr == 0)
final int tripDetailsPtr = is.readIntReverse();
if (tripDetailsPtr == 0)
throw new IllegalStateException("no connection details");
is.skipBytes(16);
@ -1642,31 +1640,31 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final String ld = strings.read(is);
final int attrsOffset = is.readIntReverse();
final int connectionAttrsPtr;
final int tripAttrsPtr;
if (extensionHeaderLength >= 0x30)
{
if (extensionHeaderLength < 0x32)
throw new IllegalArgumentException("too short: " + extensionHeaderLength);
is.reset();
is.skipBytes(extensionHeaderPtr + 0x2c);
connectionAttrsPtr = is.readIntReverse();
tripAttrsPtr = is.readIntReverse();
}
else
{
connectionAttrsPtr = 0;
tripAttrsPtr = 0;
}
// determine stops offset
is.reset();
is.skipBytes(connectionDetailsPtr);
final int connectionDetailsVersion = is.readShortReverse();
if (connectionDetailsVersion != 1)
throw new IllegalStateException("unknown connection details version: " + connectionDetailsVersion);
is.skipBytes(tripDetailsPtr);
final int tripDetailsVersion = is.readShortReverse();
if (tripDetailsVersion != 1)
throw new IllegalStateException("unknown trip details version: " + tripDetailsVersion);
is.skipBytes(0x02);
final int connectionDetailsIndexOffset = is.readShortReverse();
final int connectionDetailsLegOffset = is.readShortReverse();
final int connectionDetailsLegSize = is.readShortReverse();
final int tripDetailsIndexOffset = is.readShortReverse();
final int tripDetailsLegOffset = is.readShortReverse();
final int tripDetailsLegSize = is.readShortReverse();
final int stopsSize = is.readShortReverse();
final int stopsOffset = is.readShortReverse();
@ -1674,7 +1672,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final StationTable stations = new StationTable(is, stationTablePtr, commentTablePtr - stationTablePtr, strings);
// read comments
final CommentTable comments = new CommentTable(is, commentTablePtr, connectionDetailsPtr - commentTablePtr, strings);
final CommentTable comments = new CommentTable(is, commentTablePtr, tripDetailsPtr - commentTablePtr, strings);
// really read header
is.reset();
@ -1683,7 +1681,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final Location resDeparture = location(is, strings);
final Location resArrival = location(is, strings);
final int numConnections = is.readShortReverse();
final int numTrips = is.readShortReverse();
is.readInt();
is.readInt();
@ -1691,13 +1689,13 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final long resDate = date(is);
/* final long resDate30 = */date(is);
final List<Connection> connections = new ArrayList<Connection>(numConnections);
final List<Trip> trips = new ArrayList<Trip>(numTrips);
// read connections
for (int iConnection = 0; iConnection < numConnections; iConnection++)
// read trips
for (int iTrip = 0; iTrip < numTrips; iTrip++)
{
is.reset();
is.skipBytes(0x4a + iConnection * 12);
is.skipBytes(0x4a + iTrip * 12);
final int serviceDaysTableOffset = is.readShortReverse();
@ -1717,42 +1715,42 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
final int serviceBitBase = is.readShortReverse();
final int serviceBitLength = is.readShortReverse();
int connectionDayOffset = serviceBitBase * 8;
int tripDayOffset = serviceBitBase * 8;
for (int i = 0; i < serviceBitLength; i++)
{
int serviceBits = is.read();
if (serviceBits == 0)
{
connectionDayOffset += 8;
tripDayOffset += 8;
continue;
}
while ((serviceBits & 0x80) == 0)
{
serviceBits = serviceBits << 1;
connectionDayOffset++;
tripDayOffset++;
}
break;
}
is.reset();
is.skipBytes(connectionDetailsPtr + connectionDetailsIndexOffset + iConnection * 2);
final int connectionDetailsOffset = is.readShortReverse();
is.skipBytes(tripDetailsPtr + tripDetailsIndexOffset + iTrip * 2);
final int tripDetailsOffset = is.readShortReverse();
is.reset();
is.skipBytes(connectionDetailsPtr + connectionDetailsOffset);
is.skipBytes(tripDetailsPtr + tripDetailsOffset);
final int realtimeStatus = is.readShortReverse();
/* final short delay = */is.readShortReverse();
String connectionId = null;
if (connectionAttrsPtr != 0)
if (tripAttrsPtr != 0)
{
is.reset();
is.skipBytes(connectionAttrsPtr + iConnection * 2);
final int connectionAttrsIndex = is.readShortReverse();
is.skipBytes(tripAttrsPtr + iTrip * 2);
final int tripAttrsIndex = is.readShortReverse();
is.reset();
is.skipBytes(attrsOffset + connectionAttrsIndex * 4);
is.skipBytes(attrsOffset + tripAttrsIndex * 4);
while (true)
{
final String key = strings.read(is);
@ -1765,17 +1763,17 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
}
}
final List<Connection.Leg> legs = new ArrayList<Connection.Leg>(numLegs);
final List<Trip.Leg> legs = new ArrayList<Trip.Leg>(numLegs);
for (int iLegs = 0; iLegs < numLegs; iLegs++)
{
is.reset();
is.skipBytes(0x4a + legsOffset + iLegs * 20);
final long plannedDepartureTime = time(is, resDate, connectionDayOffset);
final long plannedDepartureTime = time(is, resDate, tripDayOffset);
final Location departureLocation = stations.read(is);
final long plannedArrivalTime = time(is, resDate, connectionDayOffset);
final long plannedArrivalTime = time(is, resDate, tripDayOffset);
final Location arrivalLocation = stations.read(is);
final int type = is.readShortReverse();
@ -1834,13 +1832,13 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
lineCategory = categoryFromName(lineName);
is.reset();
is.skipBytes(connectionDetailsPtr + connectionDetailsOffset + connectionDetailsLegOffset + iLegs * connectionDetailsLegSize);
is.skipBytes(tripDetailsPtr + tripDetailsOffset + tripDetailsLegOffset + iLegs * tripDetailsLegSize);
if (connectionDetailsLegSize != 16)
throw new IllegalStateException("unhandled connection details leg size: " + connectionDetailsLegSize);
if (tripDetailsLegSize != 16)
throw new IllegalStateException("unhandled trip details leg size: " + tripDetailsLegSize);
final long predictedDepartureTime = time(is, resDate, connectionDayOffset);
final long predictedArrivalTime = time(is, resDate, connectionDayOffset);
final long predictedDepartureTime = time(is, resDate, tripDayOffset);
final long predictedArrivalTime = time(is, resDate, tripDayOffset);
final String predictedDeparturePosition = normalizePosition(strings.read(is));
final String predictedArrivalPosition = normalizePosition(strings.read(is));
@ -1855,7 +1853,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (numStops > 0)
{
is.reset();
is.skipBytes(connectionDetailsPtr + stopsOffset + firstStopIndex * stopsSize);
is.skipBytes(tripDetailsPtr + stopsOffset + firstStopIndex * stopsSize);
if (stopsSize != 26)
throw new IllegalStateException("unhandled stops size: " + stopsSize);
@ -1864,18 +1862,18 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
for (int iStop = 0; iStop < numStops; iStop++)
{
final long plannedStopDepartureTime = time(is, resDate, connectionDayOffset);
final long plannedStopDepartureTime = time(is, resDate, tripDayOffset);
final Date plannedStopDepartureDate = plannedStopDepartureTime != 0 ? new Date(plannedStopDepartureTime) : null;
final long plannedStopArrivalTime = time(is, resDate, connectionDayOffset);
final long plannedStopArrivalTime = time(is, resDate, tripDayOffset);
final Date plannedStopArrivalDate = plannedStopArrivalTime != 0 ? new Date(plannedStopArrivalTime) : null;
final String plannedStopDeparturePosition = normalizePosition(strings.read(is));
final String plannedStopArrivalPosition = normalizePosition(strings.read(is));
is.readInt();
final long predictedStopDepartureTime = time(is, resDate, connectionDayOffset);
final long predictedStopDepartureTime = time(is, resDate, tripDayOffset);
final Date predictedStopDepartureDate = predictedStopDepartureTime != 0 ? new Date(predictedStopDepartureTime) : null;
final long predictedStopArrivalTime = time(is, resDate, connectionDayOffset);
final long predictedStopArrivalTime = time(is, resDate, tripDayOffset);
final Date predictedStopArrivalDate = predictedStopArrivalTime != 0 ? new Date(predictedStopArrivalTime) : null;
final String predictedStopDeparturePosition = normalizePosition(strings.read(is));
final String predictedStopArrivalPosition = normalizePosition(strings.read(is));
@ -1896,21 +1894,21 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
}
}
final Connection.Leg leg;
final Trip.Leg leg;
if (type == 1 /* Fussweg */|| type == 3 /* Uebergang */|| type == 4 /* Uebergang */)
{
final int min = (int) ((plannedArrivalTime - plannedDepartureTime) / 1000 / 60);
final boolean transfer = type != 1;
if (legs.size() > 0 && legs.get(legs.size() - 1) instanceof Connection.Individual)
if (legs.size() > 0 && legs.get(legs.size() - 1) instanceof Trip.Individual)
{
final Connection.Individual lastIndividualLeg = (Connection.Individual) legs.remove(legs.size() - 1);
leg = new Connection.Individual(lastIndividualLeg.min + min, 0, lastIndividualLeg.transfer || transfer,
final Trip.Individual lastIndividualLeg = (Trip.Individual) legs.remove(legs.size() - 1);
leg = new Trip.Individual(lastIndividualLeg.min + min, 0, lastIndividualLeg.transfer || transfer,
lastIndividualLeg.departure, arrivalLocation, null);
}
else
{
leg = new Connection.Individual(min, 0, transfer, departureLocation, arrivalLocation, null);
leg = new Trip.Individual(min, 0, transfer, departureLocation, arrivalLocation, null);
}
}
else if (type == 2)
@ -1933,7 +1931,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
predictedArrivalTime != 0 ? new Date(predictedArrivalTime) : null, plannedArrivalPosition,
predictedArrivalPosition);
leg = new Connection.Public(line, direction, departure, arrival, intermediateStops, null, null);
leg = new Trip.Public(line, direction, departure, arrival, intermediateStops, null, null);
}
else
{
@ -1942,51 +1940,51 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
legs.add(leg);
}
final Connection connection = new Connection(connectionId, resDeparture, resArrival, legs, null, null, (int) numChanges);
final Trip trip = new Trip(connectionId, resDeparture, resArrival, legs, null, null, (int) numChanges);
if (realtimeStatus != 2) // Verbindung fällt aus
connections.add(connection);
trips.add(trip);
}
final QueryConnectionsResult result = new QueryConnectionsResult(header, uri, from, via, to, new QueryConnectionsBinaryContext(
requestId, seqNr, ld, bis.getCount()), connections);
final QueryTripsResult result = new QueryTripsResult(header, uri, from, via, to, new QueryTripsBinaryContext(requestId, seqNr, ld,
bis.getCount()), trips);
return result;
}
else if (errorCode == 1)
throw new SessionExpiredException();
else if (errorCode == 8)
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.AMBIGUOUS);
return new QueryTripsResult(header, QueryTripsResult.Status.AMBIGUOUS);
else if (errorCode == 887)
// H887: Your inquiry was too complex. Please try entering less intermediate stations.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
else if (errorCode == 890)
// H890: No connections have been found that correspond to your request. It is possible that the
// requested service does not operate from or to the places you stated on the requested date of travel.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
else if (errorCode == 891)
// H891: Unfortunately there was no route found. Missing timetable data could be the reason.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
else if (errorCode == 892)
// H892: Your inquiry was too complex. Please try entering less intermediate stations.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
else if (errorCode == 899)
// H899: there was an unsuccessful or incomplete search due to a timetable change.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
else if (errorCode == 9220)
// H9220: Nearby to the given address stations could not be found.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.UNRESOLVABLE_ADDRESS);
return new QueryTripsResult(header, QueryTripsResult.Status.UNRESOLVABLE_ADDRESS);
else if (errorCode == 9240)
// H9240: Unfortunately there was no route found. Perhaps your start or destination is not served at all
// or with the selected means of transport on the required date/time.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.NO_CONNECTIONS);
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
else if (errorCode == 9360)
// H9360: Unfortunately your connection request can currently not be processed.
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.INVALID_DATE);
return new QueryTripsResult(header, QueryTripsResult.Status.INVALID_DATE);
else if (errorCode == 9380)
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.TOO_CLOSE); // H9380
return new QueryTripsResult(header, QueryTripsResult.Status.TOO_CLOSE); // H9380
else if (errorCode == 895)
return new QueryConnectionsResult(header, QueryConnectionsResult.Status.TOO_CLOSE);
return new QueryTripsResult(header, QueryTripsResult.Status.TOO_CLOSE);
else
throw new IllegalStateException("error " + errorCode + " on " + uri);
}

View file

@ -44,7 +44,7 @@ public class AtcProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -34,7 +34,7 @@ public class AvvProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -45,7 +45,7 @@ public class AvvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -31,9 +31,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.util.ParserUtils;
/**
@ -58,7 +58,7 @@ public final class BahnProvider extends AbstractHafasProvider
{
for (final Capability capability : capabilities)
if (capability == Capability.NEARBY_STATIONS || capability == Capability.DEPARTURES || capability == Capability.AUTOCOMPLETE_ONE_LINE
|| capability == Capability.CONNECTIONS)
|| capability == Capability.TRIPS)
return true;
return false;
@ -220,24 +220,23 @@ public final class BahnProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
private static final Pattern P_NORMALIZE_LINE_NAME_TRAM = Pattern.compile("str\\s+(.*)", Pattern.CASE_INSENSITIVE);

View file

@ -38,7 +38,7 @@ public class BayernProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class BsagProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -47,7 +47,7 @@ public class BsvagProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class BvbProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -39,9 +39,9 @@ import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.ResultHeader;
import de.schildbach.pte.dto.StationDepartures;
import de.schildbach.pte.dto.Style;
@ -520,7 +520,7 @@ public final class BvgProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
if (additionalQueryParameter != null)
@ -528,18 +528,17 @@ public final class BvgProvider extends AbstractHafasProvider
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
private static final Pattern P_NORMALIZE_LINE_NAME_TRAM = Pattern.compile("(?:tra|tram)\\s+(.*)", Pattern.CASE_INSENSITIVE);

View file

@ -38,7 +38,7 @@ public class DingProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -53,7 +53,7 @@ public class DsbProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -36,7 +36,7 @@ public class DubProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -53,7 +53,7 @@ public class DubProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -54,7 +54,7 @@ public class EireannProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -45,7 +45,7 @@ public class GvhProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -29,7 +29,7 @@ public class IvbProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -40,7 +40,7 @@ public class IvbProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -53,7 +53,7 @@ public class KvvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -43,7 +43,7 @@ public class LinzProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -47,7 +47,7 @@ public class LuProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class MariborProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -37,7 +37,7 @@ public class MetProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -54,7 +54,7 @@ public class MetProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class MvgProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -51,7 +51,7 @@ public class MvvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class NaldoProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -27,9 +27,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
/**
* @author Andreas Schildbach
@ -52,7 +52,7 @@ public class NasaProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;
@ -171,24 +171,23 @@ public class NasaProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
@Override

View file

@ -27,9 +27,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Point;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.Style;
/**
@ -47,8 +47,8 @@ public interface NetworkProvider
NEARBY_STATIONS,
/* can query for departures */
DEPARTURES,
/* can query connections */
CONNECTIONS
/* can query trips */
TRIPS
}
public enum WalkSpeed
@ -116,7 +116,7 @@ public interface NetworkProvider
Collection<Product> defaultProducts();
/**
* Query connections, asking for any ambiguousnesses
* Query trips, asking for any ambiguousnesses
*
* @param from
* location to route from, mandatory
@ -128,8 +128,8 @@ public interface NetworkProvider
* desired date for departing, mandatory
* @param dep
* date is departure date? {@code true} for departure, {@code false} for arrival
* @param numConnections
* number of connections to query
* @param numTrips
* number of trips to query
* @param products
* products to take into account
* @param walkSpeed
@ -138,25 +138,25 @@ public interface NetworkProvider
* how accessible do you need the route to be?
* @param options
* additional options
* @return result object that can contain alternatives to clear up ambiguousnesses, or contains possible connections
* @return result object that can contain alternatives to clear up ambiguousnesses, or contains possible trips
* @throws IOException
*/
QueryConnectionsResult queryConnections(Location from, Location via, Location to, Date date, boolean dep, int numConnections,
Collection<Product> products, WalkSpeed walkSpeed, Accessibility accessibility, Set<Option> options) throws IOException;
QueryTripsResult queryTrips(Location from, Location via, Location to, Date date, boolean dep, int numTrips, Collection<Product> products,
WalkSpeed walkSpeed, Accessibility accessibility, Set<Option> options) throws IOException;
/**
* Query more connections (e.g. earlier or later)
* Query more trips (e.g. earlier or later)
*
* @param context
* context to query more connections from
* context to query more trips from
* @param next
* {@code true} for get next connections, {@code false} for get previous connections
* @param numConnections
* number of connections to query
* @return result object that contains possible connections
* {@code true} for get next trips, {@code false} for get previous trips
* @param numTrips
* number of trips to query
* @return result object that contains possible trips
* @throws IOException
*/
QueryConnectionsResult queryMoreConnections(QueryConnectionsContext context, boolean later, int numConnections) throws IOException;
QueryTripsResult queryMoreTrips(QueryTripsContext context, boolean later, int numTrips) throws IOException;
/**
* Get style of line

View file

@ -50,7 +50,7 @@ public class NriProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -28,9 +28,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.util.ParserUtils;
/**
@ -54,7 +54,7 @@ public class NsProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.TRIPS)
return true;
return false;
@ -150,24 +150,23 @@ public class NsProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
@Override

View file

@ -30,7 +30,7 @@ public class NvbwProvider extends AbstractEfaProvider
super(API_BASE);
setIncludeRegionId(false);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -41,7 +41,7 @@ public class NvbwProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -47,7 +47,7 @@ public class NvvProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.TRIPS)
return true;
return false;

View file

@ -28,9 +28,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.util.ParserUtils;
/**
@ -58,7 +58,7 @@ public class OebbProvider extends AbstractHafasProvider
{
for (final Capability capability : capabilities)
if (capability == Capability.NEARBY_STATIONS || capability == Capability.DEPARTURES || capability == Capability.AUTOCOMPLETE_ONE_LINE
|| capability == Capability.CONNECTIONS)
|| capability == Capability.TRIPS)
return true;
return false;
@ -208,24 +208,23 @@ public class OebbProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
@Override

View file

@ -52,7 +52,7 @@ public class PlProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -28,9 +28,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.util.ParserUtils;
/**
@ -54,7 +54,7 @@ public class RmvProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;
@ -209,24 +209,23 @@ public class RmvProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
@Override

View file

@ -50,7 +50,7 @@ public class RtProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -23,7 +23,6 @@ import org.ksoap2.serialization.SoapSerializationEnvelope;
import org.ksoap2.transport.HttpTransportSE;
import org.xmlpull.v1.XmlPullParserException;
import de.schildbach.pte.dto.Connection;
import de.schildbach.pte.dto.Fare;
import de.schildbach.pte.dto.Fare.Type;
import de.schildbach.pte.dto.Line;
@ -31,13 +30,14 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryConnectionsResult.Status;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.QueryTripsResult.Status;
import de.schildbach.pte.dto.ResultHeader;
import de.schildbach.pte.dto.Stop;
import de.schildbach.pte.dto.Style;
import de.schildbach.pte.dto.Trip;
public class SadProvider extends AbstractNetworkProvider {
@ -60,7 +60,7 @@ public class SadProvider extends AbstractNetworkProvider {
GERMAN, ITALIAN
}
public static class Context implements QueryConnectionsContext
public static class Context implements QueryTripsContext
{
public final String context;
@ -86,7 +86,7 @@ public class SadProvider extends AbstractNetworkProvider {
public boolean hasCapabilities(final Capability... capabilities) {
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.TRIPS)
return true;
return false;
@ -121,7 +121,7 @@ public class SadProvider extends AbstractNetworkProvider {
return list;
}
public QueryConnectionsResult queryConnections(Location from, Location via, Location to, Date date, boolean dep, final int numConnections,
public QueryTripsResult queryTrips(Location from, Location via, Location to, Date date, boolean dep, final int numTrips,
Collection<Product> products, WalkSpeed walkSpeed, Accessibility accessibility, Set<Option> options) throws IOException {
// Select correct SOAP method depending on the dep flag
@ -141,9 +141,9 @@ public class SadProvider extends AbstractNetworkProvider {
// Check if the date is valid by querying the SOAP service
Status validityStatus = checkDateValidity(date);
if (validityStatus == Status.SERVICE_DOWN) {
return new QueryConnectionsResult(RESULT_HEADER, Status.SERVICE_DOWN);
return new QueryTripsResult(RESULT_HEADER, Status.SERVICE_DOWN);
} else if (validityStatus == Status.INVALID_DATE) {
return new QueryConnectionsResult(RESULT_HEADER, Status.INVALID_DATE);
return new QueryTripsResult(RESULT_HEADER, Status.INVALID_DATE);
}
// From and/or to locations have no ID -> use autocomplete metho
@ -155,7 +155,7 @@ public class SadProvider extends AbstractNetworkProvider {
if (!from.hasId()) {
froms = autocompleteStations(from.name);
if (froms.isEmpty()) {
return new QueryConnectionsResult(RESULT_HEADER, Status.UNKNOWN_FROM);
return new QueryTripsResult(RESULT_HEADER, Status.UNKNOWN_FROM);
}
// Exactly one match
else if (froms.size() == 1) {
@ -166,7 +166,7 @@ public class SadProvider extends AbstractNetworkProvider {
if (!to.hasId()) {
tos = autocompleteStations(to.name);
if (tos.isEmpty()) {
return new QueryConnectionsResult(RESULT_HEADER, Status.UNKNOWN_TO);
return new QueryTripsResult(RESULT_HEADER, Status.UNKNOWN_TO);
}
// Exactly one match
else if (tos.size() == 1) {
@ -176,16 +176,16 @@ public class SadProvider extends AbstractNetworkProvider {
// Check for ambiguities in which case an ambiguous result is returned
if ((froms != null && froms.size() > 1) || (tos != null && tos.size() > 1)) {
return new QueryConnectionsResult(RESULT_HEADER, froms, null, tos);
return new QueryTripsResult(RESULT_HEADER, froms, null, tos);
}
}
// Check if from and to locations are equal
if (from.id == to.id) {
return new QueryConnectionsResult(RESULT_HEADER, Status.TOO_CLOSE);
return new QueryTripsResult(RESULT_HEADER, Status.TOO_CLOSE);
}
// Execute SOAP request to get list of possible connections
// Execute SOAP request to get list of possible trips
SoapObject response = executeSoap(soapMethod, new Object[] { "partenza", from.id + "", "arrivo", to.id + "", "giorno", writtenDate,
"orario_min", timeMin, "orario_max", timeMax });
@ -193,7 +193,7 @@ public class SadProvider extends AbstractNetworkProvider {
return calculateResponse(from, to, response, dep, date);
}
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections) throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
// Split and parse context
final Context context = (Context) contextObj;
@ -218,9 +218,9 @@ public class SadProvider extends AbstractNetworkProvider {
cal.add(Calendar.HOUR_OF_DAY, later ? HOURS_AFTER_START : -HOURS_AFTER_START);
date = cal.getTime();
// Query for connections with new date/time value
// Query for trips with new date/time value
// NOTE: via, products, walkSpeed, accessibility are set to null
return queryConnections(new Location(LocationType.STATION, fromId), null, new Location(LocationType.STATION, toId), date, dep,
return queryTrips(new Location(LocationType.STATION, fromId), null, new Location(LocationType.STATION, toId), date, dep,
0, null, null, null, null);
}
@ -356,7 +356,7 @@ public class SadProvider extends AbstractNetworkProvider {
}
/**
* Utility function to create a QueryConnectionsResult result object from the supplied parameters.
* Utility function to create a QueryTripsResult result object from the supplied parameters.
* @param from the request's from location
* @param to the request's to location
* @param response the SoapObject which was received from the service as response
@ -364,39 +364,39 @@ public class SadProvider extends AbstractNetworkProvider {
* @param date the request's date
* @return
*/
private QueryConnectionsResult calculateResponse(Location from, Location to, SoapObject response, boolean dep, Date date) {
private QueryTripsResult calculateResponse(Location from, Location to, SoapObject response, boolean dep, Date date) {
// If no result was found return immediately
if (response.getPropertyCount() == 0) {
return new QueryConnectionsResult(RESULT_HEADER, Status.NO_CONNECTIONS);
return new QueryTripsResult(RESULT_HEADER, Status.NO_TRIPS);
}
// Lists to store the connections and from and to locations
List<Connection> connections = new ArrayList<Connection>();
// Lists to store the trips and from and to locations
List<Trip> trips = new ArrayList<Trip>();
List<Location> fromToLocs = new ArrayList<Location>();
// Go through all properties of the response's SoapObject
for (int i = 0; i < response.getPropertyCount(); i++) {
Object property = response.getProperty(i);
if (property instanceof SoapObject) {
SoapObject connection = (SoapObject) property;
SoapObject trip = (SoapObject) property;
// Get departure and arrival locations for current connection
// Get departure and arrival locations for current trip
fromToLocs.clear();
for (String prop : new String[] { "nodo_partenza", "nodo_arrivo" }) {
Object temp = connection.getProperty(prop);
Object temp = trip.getProperty(prop);
if (temp instanceof SoapObject) {
fromToLocs.add(soapToLocation((SoapObject) temp));
}
}
// Get legs of the current connection
List<Connection.Leg> legs = new ArrayList<Connection.Leg>();
Object temp = connection.getProperty("tratti");
// Get legs of the current trip
List<Trip.Leg> legs = new ArrayList<Trip.Leg>();
Object temp = trip.getProperty("tratti");
String networkName = null;
if (temp instanceof SoapObject) {
SoapObject tratti = (SoapObject) temp;
// Go through all connection legs
// Go through all trip legs
for (int j = 0; j < tratti.getPropertyCount(); j++) {
boolean isFootway = false;
SoapObject tratto = (SoapObject) tratti.getProperty(j);
@ -416,7 +416,7 @@ public class SadProvider extends AbstractNetworkProvider {
// Add footway to legs list
if (isFootway) {
// NOTE: path is set to null
legs.add(new Connection.Individual(Integer.parseInt(tratto.getPropertyAsString("durata").split(":")[1]), 0, false,
legs.add(new Trip.Individual(Integer.parseInt(tratto.getPropertyAsString("durata").split(":")[1]), 0, false,
soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), soapToLocation((SoapObject) tratto
.getProperty("nodo_arrivo")), null));
}
@ -439,7 +439,7 @@ public class SadProvider extends AbstractNetworkProvider {
final Stop arrival = new Stop(soapToLocation((SoapObject) tratto.getProperty("nodo_arrivo")), false,
responseDate.get(1), null, null, null);
legs.add(new Connection.Public(new Line(lineId, lineId, DEFAULT_STYLE), null, departure, arrival, null, null, null));
legs.add(new Trip.Public(new Line(lineId, lineId, DEFAULT_STYLE), null, departure, arrival, null, null, null));
} catch (ParseException e) {
e.printStackTrace();
}
@ -447,9 +447,9 @@ public class SadProvider extends AbstractNetworkProvider {
}
}
// Get fares for the current connection
// Get fares for the current trip
ArrayList<Fare> fares = new ArrayList<Fare>();
temp = connection.getProperty("tariffazione_trasporto_integrato");
temp = trip.getProperty("tariffazione_trasporto_integrato");
if (temp instanceof SoapObject) {
SoapObject tariffTraspIntegr = (SoapObject) temp;
// Check if tariff information is supplied in the response
@ -464,19 +464,19 @@ public class SadProvider extends AbstractNetworkProvider {
}
}
// Only add to connections list if exactly one to and and one from location were found
// Only add to trips list if exactly one to and and one from location were found
if (fromToLocs.size() == 2) {
// NOTE: link, capacity set to null
connections.add(new Connection(fromToLocs.get(0).toString() + fromToLocs.get(1).toString(), fromToLocs.get(0),
trips.add(new Trip(fromToLocs.get(0).toString() + fromToLocs.get(1).toString(), fromToLocs.get(0),
fromToLocs.get(1), legs, fares, null, null));
}
}
}
// Construct query URI to be used as context for queryMoreConnections()
// Construct query URI to be used as context for queryMoreTrips()
final String queryUri = from.id + "," + to.id + "," + dep + "," + RESPONSE_DATE_FORMAT.format(date);
// NOTE: via is set to null
return new QueryConnectionsResult(RESULT_HEADER, queryUri, from, null, to, new Context(queryUri), connections);
return new QueryTripsResult(RESULT_HEADER, queryUri, from, null, to, new Context(queryUri), trips);
}
}

View file

@ -51,7 +51,7 @@ public class SbbProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -69,7 +69,7 @@ public class SeptaProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -35,7 +35,7 @@ public class SfProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -52,7 +52,7 @@ public class SfProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -61,7 +61,7 @@ public class ShProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -50,7 +50,7 @@ public class SncbProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -33,9 +33,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.dto.Style;
import de.schildbach.pte.dto.Style.Shape;
import de.schildbach.pte.util.ParserUtils;
@ -61,7 +61,7 @@ public class StockholmProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;
@ -198,7 +198,7 @@ public class StockholmProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11"
+ "&REQ0HafasSearchIndividual=1&REQ0HafasSearchPublic=1"
@ -208,18 +208,17 @@ public class StockholmProvider extends AbstractHafasProvider
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
@Override

View file

@ -44,7 +44,7 @@ public class StvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class SvvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -31,7 +31,7 @@ public class SydneyProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -48,7 +48,7 @@ public class SydneyProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -49,7 +49,7 @@ public class TfiProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -52,7 +52,7 @@ public class TflProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -33,6 +33,7 @@ public class TlemProvider extends AbstractEfaProvider
{
public static final NetworkId NETWORK_ID = NetworkId.TLEM;
private final static String API_BASE = "http://www.travelineeastmidlands.co.uk/em/";
// http://www.travelinesoutheast.org.uk/se/
// http://www.travelineeastanglia.org.uk/ea/
@ -55,7 +56,7 @@ public class TlemProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -38,7 +38,7 @@ public class TlswProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -55,7 +55,7 @@ public class TlswProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -29,6 +29,7 @@ public class TlwmProvider extends AbstractEfaProvider
{
public static final NetworkId NETWORK_ID = NetworkId.TLWM;
private final static String API_BASE = "http://www.travelinemidlands.co.uk/wmtis/";
// http://jp.networkwestmidlands.com/centro/
public TlwmProvider()
@ -50,7 +51,7 @@ public class TlwmProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -39,7 +39,7 @@ public class VagfrProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -50,7 +50,7 @@ public class VagfrProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -51,7 +51,7 @@ public class VbbProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.DEPARTURES || capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.CONNECTIONS)
if (capability == Capability.DEPARTURES || capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.TRIPS)
return true;
return false;

View file

@ -29,7 +29,7 @@ public class VblProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -40,7 +40,7 @@ public class VblProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -46,7 +46,7 @@ public class VgnProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;
@ -71,10 +71,10 @@ public class VgnProvider extends AbstractEfaProvider
@Override
protected String xsltTripRequestParameters(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options)
{
return super.xsltTripRequestParameters(from, via, to, date, dep, numConnections, products, walkSpeed, accessibility, options)
return super.xsltTripRequestParameters(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options)
+ "&itdLPxx_showTariffLevel=1";
}
}

View file

@ -28,9 +28,9 @@ import de.schildbach.pte.dto.Location;
import de.schildbach.pte.dto.LocationType;
import de.schildbach.pte.dto.NearbyStationsResult;
import de.schildbach.pte.dto.Product;
import de.schildbach.pte.dto.QueryConnectionsContext;
import de.schildbach.pte.dto.QueryConnectionsResult;
import de.schildbach.pte.dto.QueryDeparturesResult;
import de.schildbach.pte.dto.QueryTripsContext;
import de.schildbach.pte.dto.QueryTripsResult;
import de.schildbach.pte.util.ParserUtils;
/**
@ -53,7 +53,7 @@ public class VgsProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;
@ -177,23 +177,22 @@ public class VgsProvider extends AbstractHafasProvider
}
@Override
protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri)
protected void appendCustomTripsQueryBinaryUri(final StringBuilder uri)
{
uri.append("&h2g-direct=11");
}
@Override
public QueryConnectionsResult queryConnections(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int maxNumConnections, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
public QueryTripsResult queryTrips(final Location from, final Location via, final Location to, final Date date, final boolean dep,
final int numTrips, final Collection<Product> products, final WalkSpeed walkSpeed, final Accessibility accessibility,
final Set<Option> options) throws IOException
{
return queryConnectionsBinary(from, via, to, date, dep, maxNumConnections, products, walkSpeed, accessibility, options);
return queryTripsBinary(from, via, to, date, dep, numTrips, products, walkSpeed, accessibility, options);
}
@Override
public QueryConnectionsResult queryMoreConnections(final QueryConnectionsContext contextObj, final boolean later, final int numConnections)
throws IOException
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later, final int numTrips) throws IOException
{
return queryMoreConnectionsBinary(contextObj, later, numConnections);
return queryMoreTripsBinary(contextObj, later, numTrips);
}
}

View file

@ -40,7 +40,7 @@ public class VmobilProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class VmsProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class VmvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -48,7 +48,7 @@ public class VorProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -38,7 +38,7 @@ public class VrnProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -49,7 +49,7 @@ public class VrrProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -44,7 +44,7 @@ public class VrtProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -46,7 +46,7 @@ public class VvmProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -51,7 +51,7 @@ public class VvoProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -47,7 +47,7 @@ public class VvsProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -29,7 +29,7 @@ public class VvtProvider extends AbstractEfaProvider
{
super(API_BASE);
setUseRouteIndexAsConnectionId(false);
setUseRouteIndexAsTripId(false);
}
public NetworkId id()
@ -40,7 +40,7 @@ public class VvtProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -19,7 +19,7 @@ package de.schildbach.pte;
/**
* Verkehrsverbund Vogtland
*
*
* @author Andreas Schildbach
*/
public class VvvProvider extends AbstractEfaProvider
@ -40,7 +40,7 @@ public class VvvProvider extends AbstractEfaProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.AUTOCOMPLETE_ONE_LINE || capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -53,7 +53,7 @@ public class ZvvProvider extends AbstractHafasProvider
public boolean hasCapabilities(final Capability... capabilities)
{
for (final Capability capability : capabilities)
if (capability == Capability.DEPARTURES || capability == Capability.CONNECTIONS)
if (capability == Capability.DEPARTURES || capability == Capability.TRIPS)
return true;
return false;

View file

@ -22,7 +22,7 @@ import java.io.Serializable;
/**
* @author Andreas Schildbach
*/
public interface QueryConnectionsContext extends Serializable
public interface QueryTripsContext extends Serializable
{
boolean canQueryLater();

View file

@ -23,11 +23,11 @@ import java.util.List;
/**
* @author Andreas Schildbach
*/
public final class QueryConnectionsResult implements Serializable
public final class QueryTripsResult implements Serializable
{
public enum Status
{
OK, AMBIGUOUS, TOO_CLOSE, UNKNOWN_FROM, UNKNOWN_TO, UNRESOLVABLE_ADDRESS, NO_CONNECTIONS, INVALID_DATE, SERVICE_DOWN;
OK, AMBIGUOUS, TOO_CLOSE, UNKNOWN_FROM, UNKNOWN_TO, UNRESOLVABLE_ADDRESS, NO_TRIPS, INVALID_DATE, SERVICE_DOWN;
}
public final ResultHeader header;
@ -41,11 +41,11 @@ public final class QueryConnectionsResult implements Serializable
public final Location from;
public final Location via;
public final Location to;
public final QueryConnectionsContext context;
public final List<Connection> connections;
public final QueryTripsContext context;
public final List<Trip> trips;
public QueryConnectionsResult(final ResultHeader header, final String queryUri, final Location from, final Location via, final Location to,
final QueryConnectionsContext context, final List<Connection> connections)
public QueryTripsResult(final ResultHeader header, final String queryUri, final Location from, final Location via, final Location to,
final QueryTripsContext context, final List<Trip> trips)
{
this.header = header;
this.status = Status.OK;
@ -54,14 +54,14 @@ public final class QueryConnectionsResult implements Serializable
this.via = via;
this.to = to;
this.context = context;
this.connections = connections;
this.trips = trips;
this.ambiguousFrom = null;
this.ambiguousVia = null;
this.ambiguousTo = null;
}
public QueryConnectionsResult(final ResultHeader header, final List<Location> ambiguousFrom, final List<Location> ambiguousVia,
public QueryTripsResult(final ResultHeader header, final List<Location> ambiguousFrom, final List<Location> ambiguousVia,
final List<Location> ambiguousTo)
{
this.header = header;
@ -75,10 +75,10 @@ public final class QueryConnectionsResult implements Serializable
this.via = null;
this.to = null;
this.context = null;
this.connections = null;
this.trips = null;
}
public QueryConnectionsResult(final ResultHeader header, final Status status)
public QueryTripsResult(final ResultHeader header, final Status status)
{
this.header = header;
this.status = status;
@ -91,7 +91,7 @@ public final class QueryConnectionsResult implements Serializable
this.via = null;
this.to = null;
this.context = null;
this.connections = null;
this.trips = null;
}
@Override
@ -99,8 +99,8 @@ public final class QueryConnectionsResult implements Serializable
{
final StringBuilder builder = new StringBuilder(getClass().getName());
builder.append("[").append(this.status).append(": ");
if (connections != null)
builder.append(connections.size()).append(" connections " + connections + ", ");
if (trips != null)
builder.append(trips.size()).append(" trips " + trips + ", ");
if (ambiguousFrom != null)
builder.append(ambiguousFrom.size()).append(" ambiguous from, ");
if (ambiguousVia != null)

View file

@ -26,7 +26,7 @@ import java.util.Locale;
/**
* @author Andreas Schildbach
*/
public final class Connection implements Serializable
public final class Trip implements Serializable
{
private static final long serialVersionUID = 2508466068307110312L;
@ -38,7 +38,7 @@ public final class Connection implements Serializable
public final int[] capacity;
public final Integer numChanges;
public Connection(final String id, final Location from, final Location to, final List<Leg> legs, final List<Fare> fares, final int[] capacity,
public Trip(final String id, final Location from, final Location to, final List<Leg> legs, final List<Fare> fares, final int[] capacity,
final Integer numChanges)
{
this.id = id;
@ -190,9 +190,9 @@ public final class Connection implements Serializable
{
if (o == this)
return true;
if (!(o instanceof Connection))
if (!(o instanceof Trip))
return false;
final Connection other = (Connection) o;
final Trip other = (Trip) o;
return getId().equals(other.getId());
}