mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-14 08:40:29 +00:00
parse messages for on-demand products
This commit is contained in:
parent
b43a74a079
commit
8d63a50801
5 changed files with 42 additions and 14 deletions
|
@ -1492,12 +1492,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
if (isRealtime && !predictedDepartureTime.isSet(Calendar.HOUR_OF_DAY))
|
if (isRealtime && !predictedDepartureTime.isSet(Calendar.HOUR_OF_DAY))
|
||||||
predictedDepartureTime.setTimeInMillis(plannedDepartureTime.getTimeInMillis());
|
predictedDepartureTime.setTimeInMillis(plannedDepartureTime.getTimeInMillis());
|
||||||
|
|
||||||
|
XmlPullUtil.exit(pp, "itdDeparture");
|
||||||
|
|
||||||
final Departure departure = new Departure(plannedDepartureTime.getTime(),
|
final Departure departure = new Departure(plannedDepartureTime.getTime(),
|
||||||
predictedDepartureTime.isSet(Calendar.HOUR_OF_DAY) ? predictedDepartureTime.getTime() : null, line, position,
|
predictedDepartureTime.isSet(Calendar.HOUR_OF_DAY) ? predictedDepartureTime.getTime() : null, line, position,
|
||||||
destination, null, null);
|
destination, null, null);
|
||||||
assignedStationDepartures.departures.add(departure);
|
assignedStationDepartures.departures.add(departure);
|
||||||
|
|
||||||
XmlPullUtil.exit(pp, "itdDeparture");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlPullUtil.exit(pp, "itdDepartureList");
|
XmlPullUtil.exit(pp, "itdDepartureList");
|
||||||
|
@ -1614,12 +1614,23 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
XmlPullUtil.enter(pp, "itdServingLine");
|
XmlPullUtil.enter(pp, "itdServingLine");
|
||||||
String noTrainName = null;
|
String noTrainName = null;
|
||||||
|
String message = null;
|
||||||
if (XmlPullUtil.test(pp, "itdNoTrain"))
|
if (XmlPullUtil.test(pp, "itdNoTrain"))
|
||||||
|
{
|
||||||
noTrainName = pp.getAttributeValue(null, "name");
|
noTrainName = pp.getAttributeValue(null, "name");
|
||||||
|
if (!pp.isEmptyElementTag())
|
||||||
|
{
|
||||||
|
XmlPullUtil.enter(pp, "itdNoTrain");
|
||||||
|
final String text = pp.getText();
|
||||||
|
if (noTrainName.toLowerCase().contains("ruf") && text.toLowerCase().contains("ruf"))
|
||||||
|
message = text;
|
||||||
|
XmlPullUtil.exit(pp, "itdNoTrain");
|
||||||
|
}
|
||||||
|
}
|
||||||
XmlPullUtil.exit(pp, "itdServingLine");
|
XmlPullUtil.exit(pp, "itdServingLine");
|
||||||
|
|
||||||
final String label = parseLine(motType, number, number, noTrainName);
|
final String label = parseLine(motType, number, number, noTrainName);
|
||||||
return new Line(id, label, lineStyle(label));
|
return new Line(id, label, lineStyle(label), message);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+");
|
private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+");
|
||||||
|
@ -2095,6 +2106,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
XmlPullUtil.next(pp);
|
XmlPullUtil.next(pp);
|
||||||
|
|
||||||
boolean lowFloorVehicle = false;
|
boolean lowFloorVehicle = false;
|
||||||
|
String message = null;
|
||||||
if (XmlPullUtil.test(pp, "itdInfoTextList"))
|
if (XmlPullUtil.test(pp, "itdInfoTextList"))
|
||||||
{
|
{
|
||||||
if (!pp.isEmptyElementTag())
|
if (!pp.isEmptyElementTag())
|
||||||
|
@ -2106,6 +2118,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
final String text = pp.getText();
|
final String text = pp.getText();
|
||||||
if ("Niederflurwagen soweit verfügbar".equals(text)) // KVV
|
if ("Niederflurwagen soweit verfügbar".equals(text)) // KVV
|
||||||
lowFloorVehicle = true;
|
lowFloorVehicle = true;
|
||||||
|
else if (text.toLowerCase().contains("ruf")) // RufBus, RufTaxi
|
||||||
|
message = text;
|
||||||
XmlPullUtil.exit(pp, "infoTextListElem");
|
XmlPullUtil.exit(pp, "infoTextListElem");
|
||||||
}
|
}
|
||||||
XmlPullUtil.exit(pp, "itdInfoTextList");
|
XmlPullUtil.exit(pp, "itdInfoTextList");
|
||||||
|
@ -2218,7 +2232,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime,
|
parts.add(new Connection.Trip(line, destination, departureTargetTime != null ? departureTargetTime : departureTime,
|
||||||
departureTargetTime, departurePosition, null, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
|
departureTargetTime, departurePosition, null, departure, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
|
||||||
arrivalTargetTime, arrivalPosition, null, arrival, intermediateStops, path));
|
arrivalTargetTime, arrivalPosition, null, arrival, intermediateStops, path, message));
|
||||||
}
|
}
|
||||||
|
|
||||||
XmlPullUtil.exit(pp, "itdPartialRoute");
|
XmlPullUtil.exit(pp, "itdPartialRoute");
|
||||||
|
|
|
@ -1290,7 +1290,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
if (min == 0 || line != null)
|
if (min == 0 || line != null)
|
||||||
{
|
{
|
||||||
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePos, null, sectionDeparture, arrivalTime,
|
parts.add(new Connection.Trip(line, destination, departureTime, null, departurePos, null, sectionDeparture, arrivalTime,
|
||||||
null, arrivalPos, null, sectionArrival, intermediateStops, path));
|
null, arrivalPos, null, sectionArrival, intermediateStops, path, null));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -1872,7 +1872,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
predictedDepartureTime != 0 ? new Date(predictedDepartureTime) : null, plannedDeparturePosition,
|
predictedDepartureTime != 0 ? new Date(predictedDepartureTime) : null, plannedDeparturePosition,
|
||||||
predictedDeparturePosition, departure, plannedArrivalTime != 0 ? new Date(plannedArrivalTime) : null,
|
predictedDeparturePosition, departure, plannedArrivalTime != 0 ? new Date(plannedArrivalTime) : null,
|
||||||
predictedArrivalTime != 0 ? new Date(predictedArrivalTime) : null, plannedArrivalPosition,
|
predictedArrivalTime != 0 ? new Date(predictedArrivalTime) : null, plannedArrivalPosition,
|
||||||
predictedArrivalPosition, arrival, intermediateStops, null);
|
predictedArrivalPosition, arrival, intermediateStops, null, null);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
|
|
@ -435,7 +435,7 @@ public class SadProvider extends AbstractNetworkProvider {
|
||||||
// intermediateStops, path
|
// intermediateStops, path
|
||||||
parts.add(new Trip(new Line(lineId, lineId, DEFAULT_STYLE), null, responseDate.get(0), null, null, null,
|
parts.add(new Trip(new Line(lineId, lineId, DEFAULT_STYLE), null, responseDate.get(0), null, null, null,
|
||||||
soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), responseDate.get(1), null, null, null,
|
soapToLocation((SoapObject) tratto.getProperty("nodo_partenza")), responseDate.get(1), null, null, null,
|
||||||
soapToLocation((SoapObject) tratto.getProperty("nodo_arrivo")), null, null));
|
soapToLocation((SoapObject) tratto.getProperty("nodo_arrivo")), null, null, null));
|
||||||
} catch (ParseException e) {
|
} catch (ParseException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
|
@ -232,11 +232,12 @@ public final class Connection implements Serializable
|
||||||
public final String arrivalPosition; // TODO rename to plannedArrivalPosition
|
public final String arrivalPosition; // TODO rename to plannedArrivalPosition
|
||||||
public final String predictedArrivalPosition;
|
public final String predictedArrivalPosition;
|
||||||
public final List<Stop> intermediateStops;
|
public final List<Stop> intermediateStops;
|
||||||
|
public final String message;
|
||||||
|
|
||||||
public Trip(final Line line, final Location destination, final Date plannedDepartureTime, final Date predictedDepartureTime,
|
public Trip(final Line line, final Location destination, final Date plannedDepartureTime, final Date predictedDepartureTime,
|
||||||
final String departurePosition, final String predictedDeparturePosition, final Location departure, final Date plannedArrivalTime,
|
final String departurePosition, final String predictedDeparturePosition, final Location departure, final Date plannedArrivalTime,
|
||||||
final Date predictedArrivalTime, final String arrivalPosition, final String predictedArrivalPosition, final Location arrival,
|
final Date predictedArrivalTime, final String arrivalPosition, final String predictedArrivalPosition, final Location arrival,
|
||||||
final List<Stop> intermediateStops, final List<Point> path)
|
final List<Stop> intermediateStops, final List<Point> path, final String message)
|
||||||
{
|
{
|
||||||
super(departure, arrival, path);
|
super(departure, arrival, path);
|
||||||
|
|
||||||
|
@ -251,6 +252,7 @@ public final class Connection implements Serializable
|
||||||
this.arrivalPosition = arrivalPosition;
|
this.arrivalPosition = arrivalPosition;
|
||||||
this.predictedArrivalPosition = predictedArrivalPosition;
|
this.predictedArrivalPosition = predictedArrivalPosition;
|
||||||
this.intermediateStops = intermediateStops;
|
this.intermediateStops = intermediateStops;
|
||||||
|
this.message = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Date getDepartureTime()
|
public Date getDepartureTime()
|
||||||
|
|
|
@ -32,25 +32,37 @@ public final class Line implements Serializable, Comparable<Line>
|
||||||
|
|
||||||
private static final long serialVersionUID = -5642533805998375070L;
|
private static final long serialVersionUID = -5642533805998375070L;
|
||||||
|
|
||||||
final public String id;
|
public final String id;
|
||||||
final private transient char product; // TODO make true field
|
private final transient char product; // TODO make true field
|
||||||
final public String label;
|
public final String label;
|
||||||
final public Style style;
|
public final Style style;
|
||||||
final public Set<Attr> attrs;
|
public final Set<Attr> attrs;
|
||||||
|
public final String message;
|
||||||
|
|
||||||
private static final String PRODUCT_ORDER = "IRSUTBPFC?";
|
private static final String PRODUCT_ORDER = "IRSUTBPFC?";
|
||||||
|
|
||||||
public Line(final String id, final String label, final Style style)
|
public Line(final String id, final String label, final Style style)
|
||||||
{
|
{
|
||||||
this(id, label, style, null);
|
this(id, label, style, null, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Line(final String id, final String label, final Style style, final String message)
|
||||||
|
{
|
||||||
|
this(id, label, style, null, message);
|
||||||
}
|
}
|
||||||
|
|
||||||
public Line(final String id, final String label, final Style style, final Set<Attr> attrs)
|
public Line(final String id, final String label, final Style style, final Set<Attr> attrs)
|
||||||
|
{
|
||||||
|
this(id, label, style, attrs, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private Line(final String id, final String label, final Style style, final Set<Attr> attrs, final String message)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.label = label;
|
this.label = label;
|
||||||
this.style = style;
|
this.style = style;
|
||||||
this.attrs = attrs;
|
this.attrs = attrs;
|
||||||
|
this.message = message;
|
||||||
|
|
||||||
product = label != null ? label.charAt(0) : '?';
|
product = label != null ? label.charAt(0) : '?';
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue