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:
andreas.schildbach@gmail.com 2011-10-03 12:58:44 +00:00
parent 05bdc80e14
commit 6756794c66
2 changed files with 49 additions and 4 deletions

View file

@ -27,10 +27,12 @@ import java.util.Currency;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Set;
import java.util.TimeZone;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@ -1558,7 +1560,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
InputStream is = null;
try
{
is = ParserUtils.scrapeInputStream(uri, null, "HASESSIONID", 3);
is = ParserUtils.scrapeInputStream(uri, null, "NSC_", 3);
return queryConnections(uri, is);
}
catch (final XmlPullParserException x)
@ -1577,7 +1579,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
InputStream is = null;
try
{
is = ParserUtils.scrapeInputStream(uri, null, "HASESSIONID", 3);
is = ParserUtils.scrapeInputStream(uri, null, "NSC_", 3);
return queryConnections(uri, is);
}
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
{
// System.out.println(uri);
final XmlPullParser pp = parserFactory.newPullParser();
pp.setInput(is, null);
final ResultHeader header = enterItdRequest(pp);
@ -1836,8 +1840,6 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
+ XmlPullUtil.attr(pp, "project");
XmlPullUtil.exit(pp, "itdMeansOfTransport");
final Line line = new Line(lineId, lineLabel, lineColors(lineLabel));
if (XmlPullUtil.test(pp, "itdRBLControlled"))
XmlPullUtil.next(pp);
if (XmlPullUtil.test(pp, "itdInfoTextList"))
@ -1886,6 +1888,31 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
if (XmlPullUtil.test(pp, "itdPathCoordinates"))
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,
arrival, intermediateStops, path));
}

View file

@ -18,30 +18,48 @@
package de.schildbach.pte.dto;
import java.io.Serializable;
import java.util.Set;
/**
* @author Andreas Schildbach
*/
public final class Line implements Serializable, Comparable<Line>
{
public enum Attr
{
WHEEL_CHAIR_ACCESS
}
private static final long serialVersionUID = -5642533805998375070L;
final public String id;
final private transient char product; // TODO make true field
final public String label;
final public int[] colors;
final private Set<Attr> attrs;
private static final String PRODUCT_ORDER = "IRSUTBPFC?";
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.label = label;
this.colors = colors;
this.attrs = attrs;
product = label != null ? label.charAt(0) : '?';
}
public boolean hasAttr(final Attr attr)
{
return attrs != null && attrs.contains(attr);
}
@Override
public String toString()
{