Clean up AbstractHafasProvider.jsonGetStops() a bit.

This commit is contained in:
Andreas Schildbach 2014-08-14 00:15:37 +02:00
parent cde4b9d0dc
commit 00b9456431

View file

@ -349,6 +349,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{ {
final CharSequence page = ParserUtils.scrape(uri, null, jsonGetStopsEncoding, null); final CharSequence page = ParserUtils.scrape(uri, null, jsonGetStopsEncoding, null);
// System.out.println(uri);
// System.out.println(page);
final Matcher mJson = P_AJAX_GET_STOPS_JSON.matcher(page); final Matcher mJson = P_AJAX_GET_STOPS_JSON.matcher(page);
if (mJson.matches()) if (mJson.matches())
{ {
@ -375,39 +378,41 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
if (m.matches()) if (m.matches())
localId = m.group(1); localId = m.group(1);
final Location location;
if (type == 1) // station if (type == 1) // station
{ {
final String[] placeAndName = splitPlaceAndName(value); final String[] placeAndName = splitPlaceAndName(value);
final Location location = new Location(LocationType.STATION, localId, lat, lon, placeAndName[0], placeAndName[1]); location = new Location(LocationType.STATION, localId, lat, lon, placeAndName[0], placeAndName[1]);
locations.add(new SuggestedLocation(location, weight));
} }
else if (type == 2) // address else if (type == 2) // address
{ {
final String[] placeAndName = splitPlaceAndName(value); final String[] placeAndName = splitPlaceAndName(value);
final Location location = new Location(LocationType.ADDRESS, null, lat, lon, placeAndName[0], placeAndName[1]); location = new Location(LocationType.ADDRESS, null, lat, lon, placeAndName[0], placeAndName[1]);
locations.add(new SuggestedLocation(location, weight));
} }
else if (type == 4) // poi else if (type == 4) // poi
{ {
final Location location = new Location(LocationType.POI, localId, lat, lon, null, value); location = new Location(LocationType.POI, localId, lat, lon, null, value);
locations.add(new SuggestedLocation(location, weight));
} }
else if (type == 71) // strange (VBN) else if (type == 128) // crossing
{ {
// TODO don't know what to do location = new Location(LocationType.ADDRESS, localId, lat, lon, null, value);
} }
else if (type == 87) // strange (ZTM) else if (type == 87)
{ {
// TODO don't know what to do location = null;
} // don't know what to do
else if (type == 128) // strange (SEPTA)
{
// TODO don't know what to do
} }
else else
{ {
throw new IllegalStateException("unknown type " + type + " on " + uri); throw new IllegalStateException("unknown type " + type + " on " + uri);
} }
if (location != null)
{
final SuggestedLocation suggestedLocation = new SuggestedLocation(location, weight);
locations.add(suggestedLocation);
}
} }
} }
@ -415,7 +420,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
} }
catch (final JSONException x) catch (final JSONException x)
{ {
x.printStackTrace();
throw new RuntimeException("cannot parse: '" + json + "' on " + uri, x); throw new RuntimeException("cannot parse: '" + json + "' on " + uri, x);
} }
} }