From ae29ae34693b684ddf80a295a99d7d183bfc31ef Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 12 Aug 2014 18:11:35 +0200 Subject: [PATCH] Make it easier to override the various query parameter building methods. --- .../schildbach/pte/AbstractHafasProvider.java | 255 +++++++++--------- .../src/de/schildbach/pte/BvgProvider.java | 7 +- .../de/schildbach/pte/EireannProvider.java | 5 - .../src/de/schildbach/pte/InvgProvider.java | 5 - .../src/de/schildbach/pte/JetProvider.java | 2 +- .../src/de/schildbach/pte/NasaProvider.java | 2 +- .../src/de/schildbach/pte/NriProvider.java | 5 - .../src/de/schildbach/pte/NvvProvider.java | 2 +- .../src/de/schildbach/pte/OebbProvider.java | 2 +- .../src/de/schildbach/pte/SeptaProvider.java | 5 - .../src/de/schildbach/pte/SncbProvider.java | 2 +- .../de/schildbach/pte/StockholmProvider.java | 5 +- .../src/de/schildbach/pte/VgsProvider.java | 2 +- 13 files changed, 138 insertions(+), 161 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 04f2b238..fc34092c 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -327,21 +327,19 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider public SuggestLocationsResult suggestLocations(final CharSequence constraint) throws IOException { final StringBuilder uri = new StringBuilder(getStopEndpoint); - uri.append(jsonGetStopsParameters(constraint)); + appendJsonGetStopsParameters(uri, constraint, 0); return jsonGetStops(uri.toString()); } - protected StringBuilder jsonGetStopsParameters(final CharSequence constraint) + protected void appendJsonGetStopsParameters(final StringBuilder uri, final CharSequence constraint, final int maxStops) { - final StringBuilder parameters = new StringBuilder(); - parameters.append("?getstop=1"); - parameters.append("&REQ0JourneyStopsS0A=255"); - parameters.append("&REQ0JourneyStopsS0G=").append(ParserUtils.urlEncode(constraint.toString(), jsonGetStopsEncoding)).append("?"); - // parameters.append("&REQ0JourneyStopsB=12"); - parameters.append("&js=true"); - - return parameters; + uri.append("?getstop=1"); + uri.append("&REQ0JourneyStopsS0A=255"); + uri.append("&REQ0JourneyStopsS0G=").append(ParserUtils.urlEncode(constraint.toString(), jsonGetStopsEncoding)).append("?"); + if (maxStops > 0) + uri.append("&REQ0JourneyStopsB=").append(maxStops); + uri.append("&js=true"); } private static final Pattern P_AJAX_GET_STOPS_JSON = Pattern.compile("SLs\\.sls\\s*=\\s*(.*?);\\s*SLs\\.showSuggestion\\(\\);", Pattern.DOTALL); @@ -430,26 +428,23 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures, final boolean equivs) throws IOException { final StringBuilder uri = new StringBuilder(stationBoardEndpoint); - uri.append(xmlStationBoardParameters(stationId, maxDepartures)); + appendXmlStationBoardParameters(uri, stationId, maxDepartures); return xmlStationBoard(uri.toString(), stationId); } - protected StringBuilder xmlStationBoardParameters(final String stationId, final int maxDepartures) + protected void appendXmlStationBoardParameters(final StringBuilder uri, final String stationId, final int maxDepartures) { - final StringBuilder parameters = new StringBuilder(); - parameters.append("?productsFilter=").append(allProductsString()); - parameters.append("&boardType=dep"); + uri.append("?productsFilter=").append(allProductsString()); + uri.append("&boardType=dep"); if (stationBoardCanDoEquivs) - parameters.append("&disableEquivs=yes"); // don't use nearby stations - parameters.append("&maxJourneys=").append(maxDepartures > 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES); - parameters.append("&start=yes"); - parameters.append("&L=vs_java3"); - parameters.append("&input=").append(normalizeStationId(stationId)); + uri.append("&disableEquivs=yes"); // don't use nearby stations + uri.append("&maxJourneys=").append(maxDepartures > 0 ? maxDepartures : DEFAULT_MAX_DEPARTURES); + uri.append("&start=yes"); + uri.append("&L=vs_java3"); + uri.append("&input=").append(normalizeStationId(stationId)); if (clientType != null) - parameters.append("&clientType=").append(ParserUtils.urlEncode(clientType)); - - return parameters; + uri.append("&clientType=").append(ParserUtils.urlEncode(clientType)); } private static final Pattern P_XML_STATION_BOARD_DELAY = Pattern.compile("(?:-|k\\.A\\.?|cancel|\\+?\\s*(\\d+))"); @@ -699,80 +694,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return queryMoreTripsBinary(context, later); } - protected final void appendTripsQueryUri(final StringBuilder uri, final Location from, final Location via, final Location to, final Date date, - final boolean dep, final Collection products, final Accessibility accessibility, final Set