Split place and name in all HTML departure queries (Hafas).

This commit is contained in:
Andreas Schildbach 2014-08-14 21:18:28 +02:00
parent 8adf98b98e
commit bc66f03326
3 changed files with 15 additions and 14 deletions

View file

@ -193,7 +193,7 @@ public class InvgProvider extends AbstractHafasProvider
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1)); final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
if (mHeadFine.matches()) if (mHeadFine.matches())
{ {
final String location = ParserUtils.resolveEntities(mHeadFine.group(1)); final String[] placeAndName = splitPlaceAndName(ParserUtils.resolveEntities(mHeadFine.group(1)));
final Calendar currentTime = new GregorianCalendar(timeZone); final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear(); currentTime.clear();
ParserUtils.parseGermanDate(currentTime, mHeadFine.group(2)); ParserUtils.parseGermanDate(currentTime, mHeadFine.group(2));
@ -245,9 +245,9 @@ public class InvgProvider extends AbstractHafasProvider
final Line line = parseLine(lineType, ParserUtils.resolveEntities(mDepFine.group(4)), false); final Line line = parseLine(lineType, ParserUtils.resolveEntities(mDepFine.group(4)), false);
final String destinationId = mDepFine.group(5); final String destinationId = mDepFine.group(5);
final String destinationName = ParserUtils.resolveEntities(mDepFine.group(6)); final String[] destinationPlaceAndName = splitPlaceAndName(ParserUtils.resolveEntities(mDepFine.group(6)));
final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId, final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId,
null, destinationName); destinationPlaceAndName[0], destinationPlaceAndName[1]);
final Position position = mDepFine.group(7) != null ? new Position("Gl. " + ParserUtils.resolveEntities(mDepFine.group(7))) final Position position = mDepFine.group(7) != null ? new Position("Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)))
: null; : null;
@ -264,7 +264,6 @@ public class InvgProvider extends AbstractHafasProvider
} }
} }
final String[] placeAndName = splitPlaceAndName(location);
result.stationDepartures.add(new StationDepartures(new Location(LocationType.STATION, locationId, placeAndName[0], placeAndName[1]), result.stationDepartures.add(new StationDepartures(new Location(LocationType.STATION, locationId, placeAndName[0], placeAndName[1]),
departures, null)); departures, null));
return result; return result;

View file

@ -209,7 +209,7 @@ public class SeptaProvider extends AbstractHafasProvider
else if (mPageCoarse.group(7) != null) else if (mPageCoarse.group(7) != null)
return new QueryDeparturesResult(header, Status.SERVICE_DOWN); return new QueryDeparturesResult(header, Status.SERVICE_DOWN);
final String location = ParserUtils.resolveEntities(mPageCoarse.group(1)); final String[] placeAndName = splitPlaceAndName(ParserUtils.resolveEntities(mPageCoarse.group(1)));
final Calendar currentTime = new GregorianCalendar(timeZone); final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear(); currentTime.clear();
ParserUtils.parseAmericanDate(currentTime, mPageCoarse.group(2)); ParserUtils.parseAmericanDate(currentTime, mPageCoarse.group(2));
@ -262,9 +262,9 @@ public class SeptaProvider extends AbstractHafasProvider
final Line line = parseLine(lineType, ParserUtils.resolveEntities(mDepFine.group(4)), false); final Line line = parseLine(lineType, ParserUtils.resolveEntities(mDepFine.group(4)), false);
final String destinationId = mDepFine.group(5); final String destinationId = mDepFine.group(5);
final String destinationName = ParserUtils.resolveEntities(mDepFine.group(6)); final String[] destinationPlaceAndName = splitPlaceAndName(ParserUtils.resolveEntities(mDepFine.group(6)));
final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId, null, final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId,
destinationName); destinationPlaceAndName[0], destinationPlaceAndName[1]);
final Position position = mDepFine.group(7) != null ? new Position("Gl. " + ParserUtils.resolveEntities(mDepFine.group(7))) final Position position = mDepFine.group(7) != null ? new Position("Gl. " + ParserUtils.resolveEntities(mDepFine.group(7)))
: null; : null;
@ -281,7 +281,8 @@ public class SeptaProvider extends AbstractHafasProvider
} }
} }
result.stationDepartures.add(new StationDepartures(new Location(LocationType.STATION, stationId, null, location), departures, null)); result.stationDepartures.add(new StationDepartures(new Location(LocationType.STATION, stationId, placeAndName[0], placeAndName[1]),
departures, null));
return result; return result;
} }
else else

View file

@ -233,7 +233,7 @@ public class ShProvider extends AbstractHafasProvider
else if (mHeadCoarse.group(7) != null) else if (mHeadCoarse.group(7) != null)
return new QueryDeparturesResult(header, Status.SERVICE_DOWN); return new QueryDeparturesResult(header, Status.SERVICE_DOWN);
final String location = ParserUtils.resolveEntities(mHeadCoarse.group(1)); final String[] placeAndName = splitPlaceAndName(ParserUtils.resolveEntities(mHeadCoarse.group(1)));
final Calendar currentTime = new GregorianCalendar(timeZone); final Calendar currentTime = new GregorianCalendar(timeZone);
currentTime.clear(); currentTime.clear();
ParserUtils.parseGermanDate(currentTime, mHeadCoarse.group(2)); ParserUtils.parseGermanDate(currentTime, mHeadCoarse.group(2));
@ -266,9 +266,9 @@ public class ShProvider extends AbstractHafasProvider
final Line line = parseLine(lineType, ParserUtils.resolveEntities(mDepFine.group(3).trim()), false); final Line line = parseLine(lineType, ParserUtils.resolveEntities(mDepFine.group(3).trim()), false);
final String destinationId = mDepFine.group(4); final String destinationId = mDepFine.group(4);
final String destinationName = ParserUtils.resolveEntities(mDepFine.group(5)); final String[] destinationPlaceAndName = splitPlaceAndName(ParserUtils.resolveEntities(mDepFine.group(5)));
final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId, null, final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId,
destinationName); destinationPlaceAndName[0], destinationPlaceAndName[1]);
final Position position = mDepFine.group(6) != null ? new Position("Gl. " + ParserUtils.resolveEntities(mDepFine.group(6))) final Position position = mDepFine.group(6) != null ? new Position("Gl. " + ParserUtils.resolveEntities(mDepFine.group(6)))
: null; : null;
@ -284,7 +284,8 @@ public class ShProvider extends AbstractHafasProvider
} }
} }
result.stationDepartures.add(new StationDepartures(new Location(LocationType.STATION, stationId, null, location), departures, null)); result.stationDepartures.add(new StationDepartures(new Location(LocationType.STATION, stationId, placeAndName[0], placeAndName[1]),
departures, null));
return result; return result;
} }
else else