mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-08 18:48:49 +00:00
wheelchair access in Zurich
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@811 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
b7ab26c57c
commit
4eebf50007
2 changed files with 46 additions and 4 deletions
|
@ -26,10 +26,12 @@ import java.util.Collections;
|
|||
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;
|
||||
|
@ -1757,17 +1759,27 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
throw new IllegalStateException("cannot normalize line " + line);
|
||||
}
|
||||
|
||||
protected final Line newLine(final String lineStr)
|
||||
protected final Line newLine(final String lineStr, final Line.Attr... attrs)
|
||||
{
|
||||
if (attrs.length == 0)
|
||||
{
|
||||
return new Line(null, lineStr, lineColors(lineStr));
|
||||
}
|
||||
else
|
||||
{
|
||||
final Set<Line.Attr> attrSet = new HashSet<Line.Attr>();
|
||||
for (final Line.Attr attr : attrs)
|
||||
attrSet.add(attr);
|
||||
return new Line(null, lineStr, lineColors(lineStr), attrSet);
|
||||
}
|
||||
}
|
||||
|
||||
private static final Pattern P_NORMALIZE_LINE_AND_TYPE = Pattern.compile("([^#]*)#(.*)");
|
||||
protected static final Pattern P_NORMALIZE_LINE_AND_TYPE = Pattern.compile("([^#]*)#(.*)");
|
||||
private static final Pattern P_NORMALIZE_LINE_NUMBER = Pattern.compile("\\d{2,5}");
|
||||
// saved from RtProvider
|
||||
private static final Pattern P_NORMALIZE_LINE_RUSSIA = Pattern.compile("(\\d{3}(BJ|FJ|IJ|MJ|NJ|OJ|TJ|SZ))");
|
||||
|
||||
protected final Line parseLineAndType(final String lineAndType)
|
||||
protected Line parseLineAndType(final String lineAndType)
|
||||
{
|
||||
final Matcher m = P_NORMALIZE_LINE_AND_TYPE.matcher(lineAndType);
|
||||
if (m.matches())
|
||||
|
|
|
@ -19,6 +19,7 @@ package de.schildbach.pte;
|
|||
|
||||
import java.io.IOException;
|
||||
import java.util.List;
|
||||
import java.util.regex.Matcher;
|
||||
|
||||
import de.schildbach.pte.dto.Line;
|
||||
import de.schildbach.pte.dto.Location;
|
||||
|
@ -168,6 +169,35 @@ public class ZvvProvider extends AbstractHafasProvider
|
|||
return parseLineAndType(line);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected Line parseLineAndType(final String lineAndType)
|
||||
{
|
||||
final Matcher m = P_NORMALIZE_LINE_AND_TYPE.matcher(lineAndType);
|
||||
if (m.matches())
|
||||
{
|
||||
final String number = m.group(1).replaceAll("\\s+", " ");
|
||||
final String type = m.group(2);
|
||||
|
||||
if ("Bus-NF".equals(type))
|
||||
return newLine('B' + number, Line.Attr.WHEEL_CHAIR_ACCESS);
|
||||
if ("Tro-NF".equals(type))
|
||||
return newLine('B' + number, Line.Attr.WHEEL_CHAIR_ACCESS);
|
||||
if ("Trm-NF".equals(type))
|
||||
return newLine('T' + number, Line.Attr.WHEEL_CHAIR_ACCESS);
|
||||
|
||||
if (type.length() > 0)
|
||||
{
|
||||
final char normalizedType = normalizeType(type);
|
||||
if (normalizedType != 0)
|
||||
return newLine(normalizedType + number);
|
||||
}
|
||||
|
||||
throw new IllegalStateException("cannot normalize type " + type + " number " + number + " line#type " + lineAndType);
|
||||
}
|
||||
|
||||
throw new IllegalStateException("cannot normalize line#type " + lineAndType);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected char normalizeType(final String type)
|
||||
{
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue