mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-19 00:39:58 +00:00
AbstractHafasClientInterfaceProvider: Parse 'dPltfS', 'aPltfS', 'dPltfR' and 'aPltfR' as alternatives to the old platforms.
This commit is contained in:
parent
9b34b91ad4
commit
dcf3efa086
1 changed files with 17 additions and 6 deletions
|
@ -359,7 +359,8 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
|
||||||
if (cancelled)
|
if (cancelled)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
final String stbStopPlatformS = stbStop.optString("dPlatfS", null);
|
final Position position = parseJsonPosition(stbStop, "dPlatfS", "dPltfS");
|
||||||
|
|
||||||
c.clear();
|
c.clear();
|
||||||
ParserUtils.parseIsoDate(c, jny.getString("date"));
|
ParserUtils.parseIsoDate(c, jny.getString("date"));
|
||||||
final Date baseDate = c.getTime();
|
final Date baseDate = c.getTime();
|
||||||
|
@ -373,7 +374,6 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
|
||||||
|
|
||||||
final Location location = equivs ? parseLoc(locList, stbStop.getInt("locX"), null, crdSysList)
|
final Location location = equivs ? parseLoc(locList, stbStop.getInt("locX"), null, crdSysList)
|
||||||
: new Location(LocationType.STATION, stationId);
|
: new Location(LocationType.STATION, stationId);
|
||||||
final Position position = normalizePosition(stbStopPlatformS);
|
|
||||||
|
|
||||||
final String jnyDirTxt = jny.getString("dirTxt");
|
final String jnyDirTxt = jny.getString("dirTxt");
|
||||||
Location destination = null;
|
Location destination = null;
|
||||||
|
@ -855,6 +855,17 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
|
||||||
throw new RuntimeException("cannot parse: '" + str + "'");
|
throw new RuntimeException("cannot parse: '" + str + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private Position parseJsonPosition(final JSONObject json, final String platfName, final String pltfName)
|
||||||
|
throws JSONException {
|
||||||
|
final JSONObject pltf = json.optJSONObject(pltfName);
|
||||||
|
if (pltf != null)
|
||||||
|
return new Position(pltf.getString("txt")); // TODO type
|
||||||
|
final String platf = json.optString(platfName, null);
|
||||||
|
if (platf != null)
|
||||||
|
return normalizePosition(platf);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
private Stop parseJsonStop(final JSONObject json, final JSONArray locList, final JSONArray crdSysList,
|
private Stop parseJsonStop(final JSONObject json, final JSONArray locList, final JSONArray crdSysList,
|
||||||
final Calendar c, final Date baseDate) throws JSONException {
|
final Calendar c, final Date baseDate) throws JSONException {
|
||||||
final Location location = parseLoc(locList, json.getInt("locX"), null, crdSysList);
|
final Location location = parseLoc(locList, json.getInt("locX"), null, crdSysList);
|
||||||
|
@ -862,14 +873,14 @@ public abstract class AbstractHafasClientInterfaceProvider extends AbstractHafas
|
||||||
final boolean arrivalCancelled = json.optBoolean("aCncl", false);
|
final boolean arrivalCancelled = json.optBoolean("aCncl", false);
|
||||||
final Date plannedArrivalTime = parseJsonTime(c, baseDate, json.optString("aTimeS", null));
|
final Date plannedArrivalTime = parseJsonTime(c, baseDate, json.optString("aTimeS", null));
|
||||||
final Date predictedArrivalTime = parseJsonTime(c, baseDate, json.optString("aTimeR", null));
|
final Date predictedArrivalTime = parseJsonTime(c, baseDate, json.optString("aTimeR", null));
|
||||||
final Position plannedArrivalPosition = normalizePosition(json.optString("aPlatfS", null));
|
final Position plannedArrivalPosition = parseJsonPosition(json, "aPlatfS", "aPltfS");
|
||||||
final Position predictedArrivalPosition = normalizePosition(json.optString("aPlatfR", null));
|
final Position predictedArrivalPosition = parseJsonPosition(json, "aPlatfR", "aPltfR");
|
||||||
|
|
||||||
final boolean departureCancelled = json.optBoolean("dCncl", false);
|
final boolean departureCancelled = json.optBoolean("dCncl", false);
|
||||||
final Date plannedDepartureTime = parseJsonTime(c, baseDate, json.optString("dTimeS", null));
|
final Date plannedDepartureTime = parseJsonTime(c, baseDate, json.optString("dTimeS", null));
|
||||||
final Date predictedDepartureTime = parseJsonTime(c, baseDate, json.optString("dTimeR", null));
|
final Date predictedDepartureTime = parseJsonTime(c, baseDate, json.optString("dTimeR", null));
|
||||||
final Position plannedDeparturePosition = normalizePosition(json.optString("dPlatfS", null));
|
final Position plannedDeparturePosition = parseJsonPosition(json, "dPlatfS", "dPltfS");
|
||||||
final Position predictedDeparturePosition = normalizePosition(json.optString("dPlatfR", null));
|
final Position predictedDeparturePosition = parseJsonPosition(json, "dPlatfR", "dPltfR");
|
||||||
|
|
||||||
return new Stop(location, plannedArrivalTime, predictedArrivalTime, plannedArrivalPosition,
|
return new Stop(location, plannedArrivalTime, predictedArrivalTime, plannedArrivalPosition,
|
||||||
predictedArrivalPosition, arrivalCancelled, plannedDepartureTime, predictedDepartureTime,
|
predictedArrivalPosition, arrivalCancelled, plannedDepartureTime, predictedDepartureTime,
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue