mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-15 09:00:36 +00:00
fix overlong line names for London
This commit is contained in:
parent
6361096607
commit
bd397fdb47
5 changed files with 87 additions and 71 deletions
|
@ -761,7 +761,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
private static final Pattern P_LINE_Y = Pattern.compile("\\d+Y");
|
private static final Pattern P_LINE_Y = Pattern.compile("\\d+Y");
|
||||||
private static final Pattern P_LINE_SEV = Pattern.compile("SEV.*");
|
private static final Pattern P_LINE_SEV = Pattern.compile("SEV.*");
|
||||||
|
|
||||||
protected String parseLine(final String mot, String symbol, final String name, final String longName, final String trainName)
|
protected String parseLine(final String mot, String symbol, final String name, final String longName, final String trainType,
|
||||||
|
final String trainNum, final String trainName)
|
||||||
{
|
{
|
||||||
if (mot == null)
|
if (mot == null)
|
||||||
{
|
{
|
||||||
|
@ -799,7 +800,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
||||||
+ "' trainName='" + trainName + "'");
|
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
final int t = Integer.parseInt(mot);
|
final int t = Integer.parseInt(mot);
|
||||||
|
@ -1380,7 +1381,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
return "?" + name;
|
return "?" + name;
|
||||||
|
|
||||||
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
||||||
+ "' trainName='" + trainName + "' type='" + type + "' str='" + str + "'");
|
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "' type='" + type + "' str='" + str
|
||||||
|
+ "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (t == 1)
|
if (t == 1)
|
||||||
|
@ -1416,7 +1418,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
return '?' + ParserUtils.firstNotEmpty(symbol, name);
|
return '?' + ParserUtils.firstNotEmpty(symbol, name);
|
||||||
|
|
||||||
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
||||||
+ "' trainName='" + trainName + "'");
|
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final int stationId, final int maxDepartures, final boolean equivs) throws IOException
|
public QueryDeparturesResult queryDepartures(final int stationId, final int maxDepartures, final boolean equivs) throws IOException
|
||||||
|
@ -1713,7 +1715,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
final String slStateless = pp.getAttributeValue(null, "stateless");
|
final String slStateless = pp.getAttributeValue(null, "stateless");
|
||||||
final String slTrainType = pp.getAttributeValue(null, "trainType");
|
final String slTrainType = pp.getAttributeValue(null, "trainType");
|
||||||
final String slTrainName = pp.getAttributeValue(null, "trainName");
|
final String slTrainName = pp.getAttributeValue(null, "trainName");
|
||||||
/* final String slTrainNum = */pp.getAttributeValue(null, "trainNum");
|
final String slTrainNum = pp.getAttributeValue(null, "trainNum");
|
||||||
|
|
||||||
XmlPullUtil.enter(pp, "itdServingLine");
|
XmlPullUtil.enter(pp, "itdServingLine");
|
||||||
String itdTrainName = null;
|
String itdTrainName = null;
|
||||||
|
@ -1736,6 +1738,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
if (XmlPullUtil.test(pp, "itdNoTrain"))
|
if (XmlPullUtil.test(pp, "itdNoTrain"))
|
||||||
{
|
{
|
||||||
itdTrainName = pp.getAttributeValue(null, "name");
|
itdTrainName = pp.getAttributeValue(null, "name");
|
||||||
|
itdTrainType = pp.getAttributeValue(null, "type");
|
||||||
if (!pp.isEmptyElementTag())
|
if (!pp.isEmptyElementTag())
|
||||||
{
|
{
|
||||||
XmlPullUtil.enter(pp, "itdNoTrain");
|
XmlPullUtil.enter(pp, "itdNoTrain");
|
||||||
|
@ -1751,9 +1754,10 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
}
|
}
|
||||||
XmlPullUtil.exit(pp, "itdServingLine");
|
XmlPullUtil.exit(pp, "itdServingLine");
|
||||||
|
|
||||||
final String trainName = ParserUtils.firstNotEmpty(slTrainName, itdTrainName, slTrainType, itdTrainType);
|
final String trainType = ParserUtils.firstNotEmpty(slTrainType, itdTrainType);
|
||||||
|
final String trainName = ParserUtils.firstNotEmpty(slTrainName, itdTrainName);
|
||||||
|
|
||||||
final String label = parseLine(slMotType, slSymbol, slNumber, slNumber, trainName);
|
final String label = parseLine(slMotType, slSymbol, slNumber, slNumber, trainType, slTrainNum, trainName);
|
||||||
|
|
||||||
return new Line(slStateless, label, lineStyle(label), itdMessage);
|
return new Line(slStateless, label, lineStyle(label), itdMessage);
|
||||||
}
|
}
|
||||||
|
@ -2236,8 +2240,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
||||||
final String motName = pp.getAttributeValue(null, "name");
|
final String motName = pp.getAttributeValue(null, "name");
|
||||||
final String motTrainName = pp.getAttributeValue(null, "trainName");
|
final String motTrainName = pp.getAttributeValue(null, "trainName");
|
||||||
final String motTrainType = pp.getAttributeValue(null, "trainType");
|
final String motTrainType = pp.getAttributeValue(null, "trainType");
|
||||||
final String trainName = ParserUtils.firstNotEmpty(motTrainName, motTrainType);
|
|
||||||
lineLabel = parseLine(motType, motSymbol, motShortName, motName, trainName);
|
lineLabel = parseLine(motType, motSymbol, motShortName, motName, motTrainType, motShortName, motTrainName);
|
||||||
}
|
}
|
||||||
XmlPullUtil.enter(pp, "itdMeansOfTransport");
|
XmlPullUtil.enter(pp, "itdMeansOfTransport");
|
||||||
XmlPullUtil.require(pp, "motDivaParams");
|
XmlPullUtil.require(pp, "motDivaParams");
|
||||||
|
|
|
@ -62,13 +62,14 @@ public class KvvProvider extends AbstractEfaProvider
|
||||||
private static final Pattern P_LINE = Pattern.compile("(.*?)\\s+\\([\\w/]+\\)", Pattern.CASE_INSENSITIVE);
|
private static final Pattern P_LINE = Pattern.compile("(.*?)\\s+\\([\\w/]+\\)", Pattern.CASE_INSENSITIVE);
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainName)
|
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainType,
|
||||||
|
final String trainNum, final String trainName)
|
||||||
{
|
{
|
||||||
final Matcher m = P_LINE.matcher(name);
|
final Matcher m = P_LINE.matcher(name);
|
||||||
if (m.matches())
|
if (m.matches())
|
||||||
return super.parseLine(mot, symbol, m.group(1), longName, trainName);
|
return super.parseLine(mot, symbol, m.group(1), longName, trainType, trainNum, trainName);
|
||||||
else
|
else
|
||||||
return super.parseLine(mot, symbol, name, longName, trainName);
|
return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName);
|
||||||
// TODO check for " (Ersatzverkehr)"
|
// TODO check for " (Ersatzverkehr)"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -56,7 +56,8 @@ public class MvvProvider extends AbstractEfaProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainName)
|
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainType,
|
||||||
|
final String trainNum, final String trainName)
|
||||||
{
|
{
|
||||||
if ("0".equals(mot) && longName.equals("Hamburg-Köln-Express"))
|
if ("0".equals(mot) && longName.equals("Hamburg-Köln-Express"))
|
||||||
return "I" + longName;
|
return "I" + longName;
|
||||||
|
@ -73,7 +74,7 @@ public class MvvProvider extends AbstractEfaProvider
|
||||||
return "R" + longName;
|
return "R" + longName;
|
||||||
|
|
||||||
else
|
else
|
||||||
return super.parseLine(mot, symbol, name, longName, trainName);
|
return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, Style> LINES = new HashMap<String, Style>();
|
private static final Map<String, Style> LINES = new HashMap<String, Style>();
|
||||||
|
|
|
@ -68,7 +68,8 @@ public class SfProvider extends AbstractEfaProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainName)
|
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainType,
|
||||||
|
final String trainNum, final String trainName)
|
||||||
{
|
{
|
||||||
if ("NORTHBOUND".equals(name))
|
if ("NORTHBOUND".equals(name))
|
||||||
return "?" + name;
|
return "?" + name;
|
||||||
|
@ -79,7 +80,7 @@ public class SfProvider extends AbstractEfaProvider
|
||||||
else if ("WESTBOUND".equals(name))
|
else if ("WESTBOUND".equals(name))
|
||||||
return "?" + name;
|
return "?" + name;
|
||||||
else
|
else
|
||||||
return super.parseLine(mot, symbol, name, longName, trainName);
|
return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, Style> LINES = new HashMap<String, Style>();
|
private static final Map<String, Style> LINES = new HashMap<String, Style>();
|
||||||
|
|
|
@ -57,65 +57,74 @@ public class TflProvider extends AbstractEfaProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainName)
|
protected String parseLine(final String mot, final String symbol, final String name, final String longName, final String trainType,
|
||||||
|
final String trainNum, final String trainName)
|
||||||
{
|
{
|
||||||
if ("0".equals(mot) && "First Hull Trains".equals(trainName))
|
if ("0".equals(mot))
|
||||||
return "I" + name;
|
{
|
||||||
|
if ("First Hull Trains".equals(trainName) || "=HT".equals(trainType))
|
||||||
|
return "IHT" + trainNum;
|
||||||
|
|
||||||
else if ("0".equals(mot) && ("Southern".equals(trainName) || "=SN".equals(trainName)))
|
else if ("Southern".equals(trainName) || "=SN".equals(trainType))
|
||||||
return "R" + name;
|
return "RSN" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Southeastern".equals(trainName) || "=SE".equals(trainName)))
|
else if ("Southeastern".equals(trainName) || "=SE".equals(trainType))
|
||||||
return "R" + name;
|
return "RSE" + trainNum;
|
||||||
else if ("0".equals(mot) && ("South West Trains".equals(trainName) || "=SW".equals(trainName)))
|
else if ("South West Trains".equals(trainName) || "=SW".equals(trainType))
|
||||||
return "R" + name;
|
return "RSW" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Greater Anglia".equals(trainName) || "=LE".equals(trainName)))
|
else if ("Greater Anglia".equals(trainName) || "=LE".equals(trainType))
|
||||||
return "R" + name;
|
return "RLE" + trainNum;
|
||||||
else if ("0".equals(mot) && ("First Great Western".equals(trainName) || "=GW".equals(trainName)))
|
else if ("First Great Western".equals(trainName) || "=GW".equals(trainType))
|
||||||
return "R" + name;
|
return "RGW" + trainNum;
|
||||||
else if ("0".equals(mot) && ("First Capital Connect".equals(trainName) || "=FC".equals(trainName)))
|
else if ("First Capital Connect".equals(trainName) || "=FC".equals(trainType))
|
||||||
return "R" + name;
|
return "RFC" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Northern Rail".equals(trainName) || "=NT".equals(trainName)))
|
else if ("Northern Rail".equals(trainName) || "=NT".equals(trainType))
|
||||||
return "R" + name;
|
return "RNT" + trainNum;
|
||||||
else if ("0".equals(mot) && "Chiltern Railways".equals(trainName))
|
else if ("Heathrow Connect".equals(trainName) || "=HC".equals(trainType))
|
||||||
return "R" + name;
|
return "RHC" + trainNum;
|
||||||
else if ("0".equals(mot) && "Heathrow Connect".equals(trainName))
|
else if ("Heathrow Express".equals(trainName) || "=HX".equals(trainType))
|
||||||
return "R" + name;
|
return "RHX" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Heathrow Express".equals(trainName) || "=HX".equals(trainName)))
|
else if ("Gatwick Express".equals(trainName) || "=GX".equals(trainType))
|
||||||
return "R" + name;
|
return "RGX" + trainNum;
|
||||||
else if ("0".equals(mot) && "Gatwick Express".equals(trainName))
|
else if ("Merseyrail".equals(trainName) || "=ME".equals(trainType))
|
||||||
return "R" + name;
|
return "RME" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Merseyrail".equals(trainName) || "=ME".equals(trainName)))
|
else if ("East Coast".equals(trainName) || "=GR".equals(trainType))
|
||||||
return "R" + name;
|
return "RGR" + trainNum;
|
||||||
else if ("0".equals(mot) && ("East Coast".equals(trainName) || "=GR".equals(trainName)))
|
else if ("Cross Country".equals(trainName) || "=XC".equals(trainType))
|
||||||
return "R" + name;
|
return "RXC" + trainNum;
|
||||||
else if ("0".equals(mot) && "Cross Country".equals(trainName))
|
else if ("East Midlands Trains".equals(trainName) || "=EM".equals(trainType))
|
||||||
return "R" + name;
|
return "REM" + trainNum;
|
||||||
else if ("0".equals(mot) && ("East Midlands Trains".equals(trainName) || "=EM".equals(trainName)))
|
else if ("Arriva Trains Wales".equals(trainName) || "=AW".equals(trainType))
|
||||||
return "R" + name;
|
return "RAW" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Arriva Trains Wales".equals(trainName) || "=AW".equals(trainName)))
|
else if ("First TransPennine Express".equals(trainName) || "=TP".equals(trainType))
|
||||||
return "R" + name;
|
return "RTP" + trainNum;
|
||||||
else if ("0".equals(mot) && ("First TransPennine Express".equals(trainName) || "=TP".equals(trainName)))
|
else if ("ScotRail".equals(trainName) || "=SR".equals(trainType))
|
||||||
return "R" + name;
|
return "RSR" + trainNum;
|
||||||
else if ("0".equals(mot) && ("ScotRail".equals(trainName) || "=SR".equals(trainName)))
|
else if ("London Midland".equals(trainName) || "=LM".equals(trainType))
|
||||||
return "R" + name;
|
return "RLM" + trainNum;
|
||||||
else if ("0".equals(mot) && ("London Midland".equals(trainName) || "=LM".equals(trainName)))
|
else if ("c2c".equals(trainName) || "=CC".equals(trainType))
|
||||||
return "R" + name;
|
return "RCC" + trainNum;
|
||||||
else if ("0".equals(mot) && ("c2c".equals(trainName) || "=CC".equals(trainName)))
|
else if ("Grand Central".equals(trainName) || "=GC".equals(trainType))
|
||||||
return "R" + name;
|
return "RGC" + trainNum;
|
||||||
else if ("0".equals(mot) && "Grand Central".equals(trainName))
|
else if ("Virgin Trains".equals(trainName) || "=VT".equals(trainType))
|
||||||
return "R" + name;
|
return "RVT" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Virgin Trains".equals(trainName) || "=VT".equals(trainName)))
|
else if ("Island Line".equals(trainName) || "=IL".equals(trainType))
|
||||||
return "R" + name;
|
return "RIL" + trainNum;
|
||||||
else if ("0".equals(mot) && "Island Line".equals(trainName))
|
else if ("Chiltern Railways".equals(trainName) || "=CH".equals(trainType))
|
||||||
return "R" + name;
|
return "RCH" + trainNum;
|
||||||
else if ("0".equals(mot) && ("Chiltern Railways".equals(trainName) || "=CH".equals(trainName)))
|
|
||||||
return "R" + name;
|
|
||||||
|
|
||||||
else if ("0".equals(mot) && "London Overground".equals(trainName))
|
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
||||||
return "S" + name;
|
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
|
||||||
|
}
|
||||||
|
else if ("3".equals(mot))
|
||||||
|
{
|
||||||
|
if ("London Overground".equals(trainName) || "=LO".equals(trainType))
|
||||||
|
return "SLO" + (trainNum != null ? trainNum : "");
|
||||||
|
|
||||||
else
|
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
|
||||||
return super.parseLine(mot, symbol, name, longName, trainName);
|
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
|
||||||
|
}
|
||||||
|
|
||||||
|
return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Map<String, Style> LINES = new HashMap<String, Style>();
|
private static final Map<String, Style> LINES = new HashMap<String, Style>();
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue