mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-14 08:40:29 +00:00
wheelchair accessibility for connections
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@806 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
05bdc80e14
commit
6756794c66
2 changed files with 49 additions and 4 deletions
|
@ -27,10 +27,12 @@ import java.util.Currency;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.GregorianCalendar;
|
import java.util.GregorianCalendar;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
import java.util.HashSet;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
import java.util.TimeZone;
|
import java.util.TimeZone;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
@ -1558,7 +1560,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
InputStream is = null;
|
InputStream is = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = ParserUtils.scrapeInputStream(uri, null, "HASESSIONID", 3);
|
is = ParserUtils.scrapeInputStream(uri, null, "NSC_", 3);
|
||||||
return queryConnections(uri, is);
|
return queryConnections(uri, is);
|
||||||
}
|
}
|
||||||
catch (final XmlPullParserException x)
|
catch (final XmlPullParserException x)
|
||||||
|
@ -1577,7 +1579,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
InputStream is = null;
|
InputStream is = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
is = ParserUtils.scrapeInputStream(uri, null, "HASESSIONID", 3);
|
is = ParserUtils.scrapeInputStream(uri, null, "NSC_", 3);
|
||||||
return queryConnections(uri, is);
|
return queryConnections(uri, is);
|
||||||
}
|
}
|
||||||
catch (final XmlPullParserException x)
|
catch (final XmlPullParserException x)
|
||||||
|
@ -1596,6 +1598,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
|
|
||||||
private QueryConnectionsResult queryConnections(final String uri, final InputStream is) throws XmlPullParserException, IOException
|
private QueryConnectionsResult queryConnections(final String uri, final InputStream is) throws XmlPullParserException, IOException
|
||||||
{
|
{
|
||||||
|
// System.out.println(uri);
|
||||||
|
|
||||||
final XmlPullParser pp = parserFactory.newPullParser();
|
final XmlPullParser pp = parserFactory.newPullParser();
|
||||||
pp.setInput(is, null);
|
pp.setInput(is, null);
|
||||||
final ResultHeader header = enterItdRequest(pp);
|
final ResultHeader header = enterItdRequest(pp);
|
||||||
|
@ -1836,8 +1840,6 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
+ XmlPullUtil.attr(pp, "project");
|
+ XmlPullUtil.attr(pp, "project");
|
||||||
XmlPullUtil.exit(pp, "itdMeansOfTransport");
|
XmlPullUtil.exit(pp, "itdMeansOfTransport");
|
||||||
|
|
||||||
final Line line = new Line(lineId, lineLabel, lineColors(lineLabel));
|
|
||||||
|
|
||||||
if (XmlPullUtil.test(pp, "itdRBLControlled"))
|
if (XmlPullUtil.test(pp, "itdRBLControlled"))
|
||||||
XmlPullUtil.next(pp);
|
XmlPullUtil.next(pp);
|
||||||
if (XmlPullUtil.test(pp, "itdInfoTextList"))
|
if (XmlPullUtil.test(pp, "itdInfoTextList"))
|
||||||
|
@ -1886,6 +1888,31 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
if (XmlPullUtil.test(pp, "itdPathCoordinates"))
|
if (XmlPullUtil.test(pp, "itdPathCoordinates"))
|
||||||
path = processItdPathCoordinates(pp);
|
path = processItdPathCoordinates(pp);
|
||||||
|
|
||||||
|
final Set<Line.Attr> lineAttrs = new HashSet<Line.Attr>();
|
||||||
|
if (XmlPullUtil.test(pp, "genAttrList"))
|
||||||
|
{
|
||||||
|
XmlPullUtil.enter(pp, "genAttrList");
|
||||||
|
while (XmlPullUtil.test(pp, "genAttrElem"))
|
||||||
|
{
|
||||||
|
XmlPullUtil.enter(pp, "genAttrElem");
|
||||||
|
XmlPullUtil.enter(pp, "name");
|
||||||
|
final String name = pp.getText();
|
||||||
|
XmlPullUtil.exit(pp, "name");
|
||||||
|
XmlPullUtil.enter(pp, "value");
|
||||||
|
final String value = pp.getText();
|
||||||
|
XmlPullUtil.exit(pp, "value");
|
||||||
|
XmlPullUtil.exit(pp, "genAttrElem");
|
||||||
|
|
||||||
|
// System.out.println("genAttrElem: name='" + name + "' value='" + value + "'");
|
||||||
|
|
||||||
|
if ("PlanWheelChairAccess".equals(name) && "1".equals(value))
|
||||||
|
lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS);
|
||||||
|
}
|
||||||
|
XmlPullUtil.exit(pp, "genAttrList");
|
||||||
|
}
|
||||||
|
|
||||||
|
final Line line = new Line(lineId, lineLabel, lineColors(lineLabel), lineAttrs);
|
||||||
|
|
||||||
parts.add(new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition,
|
parts.add(new Connection.Trip(line, destination, departureTime, departurePosition, departure, arrivalTime, arrivalPosition,
|
||||||
arrival, intermediateStops, path));
|
arrival, intermediateStops, path));
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,30 +18,48 @@
|
||||||
package de.schildbach.pte.dto;
|
package de.schildbach.pte.dto;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
import java.util.Set;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Andreas Schildbach
|
* @author Andreas Schildbach
|
||||||
*/
|
*/
|
||||||
public final class Line implements Serializable, Comparable<Line>
|
public final class Line implements Serializable, Comparable<Line>
|
||||||
{
|
{
|
||||||
|
public enum Attr
|
||||||
|
{
|
||||||
|
WHEEL_CHAIR_ACCESS
|
||||||
|
}
|
||||||
|
|
||||||
private static final long serialVersionUID = -5642533805998375070L;
|
private static final long serialVersionUID = -5642533805998375070L;
|
||||||
|
|
||||||
final public String id;
|
final public String id;
|
||||||
final private transient char product; // TODO make true field
|
final private transient char product; // TODO make true field
|
||||||
final public String label;
|
final public String label;
|
||||||
final public int[] colors;
|
final public int[] colors;
|
||||||
|
final private Set<Attr> attrs;
|
||||||
|
|
||||||
private static final String PRODUCT_ORDER = "IRSUTBPFC?";
|
private static final String PRODUCT_ORDER = "IRSUTBPFC?";
|
||||||
|
|
||||||
public Line(final String id, final String label, final int[] colors)
|
public Line(final String id, final String label, final int[] colors)
|
||||||
|
{
|
||||||
|
this(id, label, colors, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Line(final String id, final String label, final int[] colors, final Set<Attr> attrs)
|
||||||
{
|
{
|
||||||
this.id = id;
|
this.id = id;
|
||||||
this.label = label;
|
this.label = label;
|
||||||
this.colors = colors;
|
this.colors = colors;
|
||||||
|
this.attrs = attrs;
|
||||||
|
|
||||||
product = label != null ? label.charAt(0) : '?';
|
product = label != null ? label.charAt(0) : '?';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasAttr(final Attr attr)
|
||||||
|
{
|
||||||
|
return attrs != null && attrs.contains(attr);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String toString()
|
public String toString()
|
||||||
{
|
{
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue