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