Hafas: Extract methods nearbyStationsByCoordinate() and nearbyStationsById().

This commit is contained in:
Andreas Schildbach 2015-01-28 11:16:37 +01:00
parent 7ff06cc2d4
commit 891c0b64fd
7 changed files with 29 additions and 41 deletions

View file

@ -2296,23 +2296,28 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
public NearbyStationsResult queryNearbyStations(final Location location, final int maxDistance, final int maxStations) throws IOException
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
}
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
else if (location.type == LocationType.STATION && location.hasId())
{
final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
appendXmlNearbyStationsParameters(uri, location.id);
return xmlNearbyStations(uri.toString());
}
return nearbyStationsById(location.id);
else
{
throw new IllegalArgumentException("cannot handle: " + location);
}
}
protected final NearbyStationsResult nearbyStationsByCoordinate(final int lat, final int lon, final int maxDistance, final int maxStations)
throws IOException
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, lat, lon, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
}
protected final NearbyStationsResult nearbyStationsById(final String id) throws IOException
{
final StringBuilder uri = new StringBuilder(stationBoardEndpoint);
appendXmlNearbyStationsParameters(uri, id);
return xmlNearbyStations(uri.toString());
}
protected final void appendXmlNearbyStationsParameters(final StringBuilder uri, final String stationId)
@ -2390,7 +2395,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
return new NearbyStationsResult(null, stations);
}
protected void appendJsonNearbyStationsParameters(final StringBuilder uri, final Location location, final int maxDistance, final int maxStations)
protected void appendJsonNearbyStationsParameters(final StringBuilder uri, final int lat, final int lon, final int maxDistance,
final int maxStations)
{
uri.append('y');
uri.append("?performLocating=2&tpl=stop2json");
@ -2398,8 +2404,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
uri.append("&look_maxdist=").append(maxDistance != 0 ? maxDistance : 5000);
uri.append("&look_stopclass=").append(allProductsInt());
uri.append("&look_nv=get_stopweight|yes");
uri.append("&look_x=").append(location.lon);
uri.append("&look_y=").append(location.lat);
uri.append("&look_x=").append(lon);
uri.append("&look_y=").append(lat);
}
protected final NearbyStationsResult jsonNearbyStations(final String uri) throws IOException

View file

@ -101,10 +101,7 @@ public class JetProvider extends AbstractHafasProvider
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
}
else if (location.type == LocationType.STATION && location.hasId())
{

View file

@ -139,10 +139,7 @@ public class NasaProvider extends AbstractHafasProvider
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
}
else if (location.type == LocationType.STATION && location.hasId())
{

View file

@ -162,10 +162,7 @@ public class NvvProvider extends AbstractHafasProvider
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
}
else if (location.type == LocationType.STATION && location.hasId())
{

View file

@ -134,10 +134,7 @@ public class OebbProvider extends AbstractHafasProvider
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
}
else if (location.type == LocationType.STATION && location.hasId())
{

View file

@ -130,10 +130,7 @@ public class SncbProvider extends AbstractHafasProvider
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
}
else if (location.type == LocationType.STATION && location.hasId())
{

View file

@ -126,10 +126,7 @@ public class VgsProvider extends AbstractHafasProvider
{
if (location.hasLocation())
{
final StringBuilder uri = new StringBuilder(queryEndpoint);
appendJsonNearbyStationsParameters(uri, location, maxDistance, maxStations);
return jsonNearbyStations(uri.toString());
return nearbyStationsByCoordinate(location.lat, location.lon, maxDistance, maxStations);
}
else if (location.type == LocationType.STATION && location.hasId())
{