From a5f59319aaac905c675ef4d425ff40d44d365e31 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Thu, 11 Dec 2014 00:47:26 +0100 Subject: [PATCH] Lines. --- .../schildbach/pte/AbstractEfaProvider.java | 60 +++++++++++-------- .../schildbach/pte/AbstractHafasProvider.java | 16 ++++- .../src/de/schildbach/pte/BahnProvider.java | 14 +---- .../src/de/schildbach/pte/MetProvider.java | 2 + .../src/de/schildbach/pte/MvvProvider.java | 4 -- .../src/de/schildbach/pte/NvbwProvider.java | 2 + .../src/de/schildbach/pte/NvvProvider.java | 12 ---- .../src/de/schildbach/pte/OebbProvider.java | 8 --- enabler/src/de/schildbach/pte/SfProvider.java | 2 + .../src/de/schildbach/pte/StvProvider.java | 4 +- .../src/de/schildbach/pte/VbnProvider.java | 9 --- .../src/de/schildbach/pte/VmsProvider.java | 3 + .../src/de/schildbach/pte/VmvProvider.java | 17 ------ .../src/de/schildbach/pte/VrnProvider.java | 13 ---- .../src/de/schildbach/pte/VrrProvider.java | 3 + .../src/de/schildbach/pte/VvoProvider.java | 4 ++ .../src/de/schildbach/pte/VvvProvider.java | 21 ------- 17 files changed, 71 insertions(+), 123 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index 42d12c87..9a4ee5d6 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1051,50 +1051,52 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { final String trainNumStr = trainNum != null ? trainNum : ""; - if ("EC".equals(trainType) || "EuroCity".equals(trainName) || "Eurocity".equals(trainName)) + if (("EC".equals(trainType) || "EuroCity".equals(trainName) || "Eurocity".equals(trainName)) && trainNum != null) return "IEC" + trainNum; - if ("EN".equals(trainType) || "EuroNight".equals(trainName)) + if (("EN".equals(trainType) || "EuroNight".equals(trainName)) && trainNum != null) return "IEN" + trainNum; if (("IC".equals(trainType) || "InterCity".equals(trainName)) && trainNum != null) return "IIC" + trainNum; - if ("InterCity".equals(longName)) - return "IIC"; if (("ICE".equals(trainType) || "ICE".equals(trainName) || "Intercity-Express".equals(trainName)) && trainNum != null) return "IICE" + trainNum; - if ("X".equals(trainType) || "InterConnex".equals(trainName)) + if (("ICN".equals(trainType) || "InterCityNight".equals(trainName)) && trainNum != null) + return "IICN" + trainNum; + if (("X".equals(trainType) || "InterConnex".equals(trainName)) && trainNum != null) return "IX" + trainNum; - if ("CNL".equals(trainType) || "CityNightLine".equals(trainName)) // City Night Line + if (("CNL".equals(trainType) || "CityNightLine".equals(trainName)) && trainNum != null) // City Night Line return "ICNL" + trainNum; - if ("THA".equals(trainType) || "Thalys".equals(trainName)) + if (("THA".equals(trainType) || "Thalys".equals(trainName)) && trainNum != null) return "ITHA" + trainNum; - if ("RHI".equals(trainType)) + if ("RHI".equals(trainType) && trainNum != null) return "IRHI" + trainNum; - if ("TGV".equals(trainType) || "TGV".equals(trainName)) + if (("TGV".equals(trainType) || "TGV".equals(trainName)) && trainNum != null) return "ITGV" + trainNum; - if ("INZ".equals(trainType)) + if ("TGD".equals(trainType) && trainNum != null) + return "ITGD" + trainNum; + if ("INZ".equals(trainType) && trainNum != null) return "IINZ" + trainNum; - if ("RJ".equals(trainType) || "railjet".equals(trainName)) // railjet + if (("RJ".equals(trainType) || "railjet".equals(trainName)) && trainNum != null) // railjet return "IRJ" + trainNum; - if ("OIC".equals(trainType) || "ÖBB InterCity".equals(trainName)) - return 'I' + symbol; - if ("WB".equals(trainType) || "WESTbahn".equals(trainName)) + if (("WB".equals(trainType) || "WESTbahn".equals(trainName)) && trainNum != null) return "IWB" + trainNum; - if ("HKX".equals(trainType) || "Hamburg-Köln-Express".equals(trainName)) + if (("HKX".equals(trainType) || "Hamburg-Köln-Express".equals(trainName)) && trainNum != null) return "IHKX" + trainNum; - if ("INT".equals(trainType)) // SVV, VAGFR + if ("INT".equals(trainType) && trainNum != null) // SVV, VAGFR return "IINT" + trainNum; - if ("SC".equals(trainType) || "SC Pendolino".equals(trainName)) // SuperCity, Tschechien + if (("SC".equals(trainType) || "SC Pendolino".equals(trainName)) && trainNum != null) // SuperCity return "ISC" + trainNum; - if ("ECB".equals(trainType)) // EC, Verona-München + if ("ECB".equals(trainType) && trainNum != null) // EC, Verona-München return "IECB" + trainNum; - if ("ES".equals(trainType)) // Eurostar Italia + if ("ES".equals(trainType) && trainNum != null) // Eurostar Italia return "IES" + trainNum; - if ("EST".equals(trainType) || "EUROSTAR".equals(trainName)) + if (("EST".equals(trainType) || "EUROSTAR".equals(trainName)) && trainNum != null) return "IEST" + trainNum; - if ("EIC".equals(trainType)) // Ekspres InterCity, Polen + if ("EIC".equals(trainType) && trainNum != null) // Ekspres InterCity, Polen return "IEIC" + trainNum; - if ("MT".equals(trainType) && "Schnee-Express".equals(trainName)) + if ("MT".equals(trainType) && "Schnee-Express".equals(trainName) && trainNum != null) return "IMT" + trainNum; + if (("TLK".equals(trainType) || "Tanie Linie Kolejowe".equals(trainName)) && trainNum != null) + return "ITLK" + trainNum; if ("Zug".equals(trainName)) return 'R' + symbol; @@ -1341,6 +1343,14 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider return "RUEF" + trainNum; if (("DBG".equals(trainType) || "Döllnitzbahn".equals(trainName)) && trainNum != null) return "RDBG" + trainNum; + if (("TL".equals(trainType) || "Trilex".equals(trainName)) && trainNum != null) + return "RTL" + trainNum; + if (("OPB".equals(trainType) || "oberpfalzbahn".equals(trainName)) && trainNum != null) + return "ROPB" + trainNum; + if (("OPX".equals(trainType) || "oberpfalz-express".equals(trainName)) && trainNum != null) + return "ROPX" + trainNum; + if (("V6".equals(trainType) || "vlexx".equals(trainName)) && trainNum != null) + return "Rvlexx" + trainNum; if ("BSB-Zug".equals(trainName) && trainNum != null) // Breisgau-S-Bahn return 'S' + trainNum; @@ -1379,13 +1389,15 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider return '?' + trainNum; if (trainType == null && trainName == null && P_LINE_NUMBER.matcher(symbol).matches()) return '?' + symbol; - if (trainType == null && trainName == null && symbol.equals(name) && symbol.equals(longName)) - return '?' + symbol; if ("N".equals(trainType) && trainName == null && symbol.length() == 0) return "?N" + trainNum; if ("Train".equals(trainName)) return "?"; + // generic + if (trainName != null && trainType == null && trainNum == null) + return '?' + trainName; + throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); } diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 0caa97a0..3964d50f 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -2528,12 +2528,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return 'I'; if ("ICT".equals(ucType)) // InterCity return 'I'; - if ("ICN".equals(ucType)) // Intercity-Neigezug, Schweiz + if ("ICN".equals(ucType)) // InterCityNight return 'I'; if ("ICD".equals(ucType)) // Intercity direkt Amsterdam-Breda return 'I'; if ("CNL".equals(ucType)) // CityNightLine return 'I'; + if ("MT".equals(ucType)) // Schnee-Express + return 'I'; if ("OEC".equals(ucType)) // ÖBB-EuroCity return 'I'; if ("OIC".equals(ucType)) // ÖBB-InterCity @@ -2604,6 +2606,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return 'I'; if ("TLK".equals(ucType)) // Tanie Linie Kolejowe, Polen return 'I'; + if ("EIP".equals(ucType)) // Express Intercity Premium + return 'I'; if ("INT".equals(ucType)) // Zürich-Brüssel - Budapest-Istanbul return 'I'; if ("HKX".equals(ucType)) // Hamburg-Koeln-Express @@ -2682,6 +2686,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return 'R'; if ("TLX".equals(ucType)) // Trilex (Vogtlandbahn) return 'R'; + if ("TL".equals(ucType)) // Trilex (Vogtlandbahn) + return 'R'; if ("HZL".equals(ucType)) // Hohenzollerische Landesbahn return 'R'; if ("ABR".equals(ucType)) // Bayerische Regiobahn @@ -2804,6 +2810,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return 'R'; if ("VAE".equals(ucType)) // Voralpen-Express return 'R'; + if ("OPB".equals(ucType)) // oberpfalzbahn + return 'R'; + if ("OPX".equals(ucType)) // oberpfalz-express + return 'R'; + if ("TER".equals(ucType)) // Transport express régional + return 'R'; // Suburban Trains if (P_LINE_SBAHN.matcher(ucType).matches()) // Generic (Night) S-Bahn @@ -2864,6 +2876,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return 'B'; if ("EXB".equals(ucType)) // Expressbus München-Prag? return 'B'; + if ("ICB".equals(ucType)) // ÖBB ICBus + return 'B'; if ("TRO".equals(ucType)) // Trolleybus return 'B'; if ("RFB".equals(ucType)) // Rufbus diff --git a/enabler/src/de/schildbach/pte/BahnProvider.java b/enabler/src/de/schildbach/pte/BahnProvider.java index 36047307..1356ada8 100644 --- a/enabler/src/de/schildbach/pte/BahnProvider.java +++ b/enabler/src/de/schildbach/pte/BahnProvider.java @@ -163,24 +163,14 @@ public final class BahnProvider extends AbstractHafasProvider { final String ucType = type.toUpperCase(); - if ("MT".equals(ucType)) // Schnee-Express - return 'I'; - - if ("DZ".equals(ucType)) // Dampfzug - return 'R'; - - if ("LTT".equals(ucType)) - return 'B'; - - if (ucType.startsWith("RFB")) // Rufbus - return 'P'; - final char t = super.normalizeType(type); if (t != 0) return t; if ("E".equals(ucType)) return '?'; + if ("N".equals(ucType)) + return '?'; return 0; } diff --git a/enabler/src/de/schildbach/pte/MetProvider.java b/enabler/src/de/schildbach/pte/MetProvider.java index 47e8a19f..cb883aa3 100644 --- a/enabler/src/de/schildbach/pte/MetProvider.java +++ b/enabler/src/de/schildbach/pte/MetProvider.java @@ -57,6 +57,8 @@ public class MetProvider extends AbstractEfaProvider return 'R' + symbol; if ("Regional Train".equals(trainName)) return "R"; + if ("vPK".equals(symbol) && "Regional Train Pakenham".equals(longName)) + return "RV/Line"; } return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); diff --git a/enabler/src/de/schildbach/pte/MvvProvider.java b/enabler/src/de/schildbach/pte/MvvProvider.java index 314e5f15..c212f420 100644 --- a/enabler/src/de/schildbach/pte/MvvProvider.java +++ b/enabler/src/de/schildbach/pte/MvvProvider.java @@ -68,10 +68,6 @@ public class MvvProvider extends AbstractEfaProvider return "SA"; if ("DB AG".equals(trainName)) return '?' + symbol; - if ("Zug".equals(symbol)) - return "?Zug"; - if ("alex".equals(symbol)) - return "?alex"; } return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); diff --git a/enabler/src/de/schildbach/pte/NvbwProvider.java b/enabler/src/de/schildbach/pte/NvbwProvider.java index 8884ff4a..254d9758 100644 --- a/enabler/src/de/schildbach/pte/NvbwProvider.java +++ b/enabler/src/de/schildbach/pte/NvbwProvider.java @@ -55,6 +55,8 @@ public class NvbwProvider extends AbstractEfaProvider return "I"; if ("SuperCity".equals(trainName) && trainNum == null) return "ISC"; + if ("InterRegio".equals(longName)) + return "RIR"; if ("REGIOBAHN".equals(trainName) && trainNum == null) return "R"; if ("RR".equals(trainType) && trainNum == null) diff --git a/enabler/src/de/schildbach/pte/NvvProvider.java b/enabler/src/de/schildbach/pte/NvvProvider.java index b75cd24a..6152e521 100644 --- a/enabler/src/de/schildbach/pte/NvvProvider.java +++ b/enabler/src/de/schildbach/pte/NvvProvider.java @@ -201,18 +201,6 @@ public class NvvProvider extends AbstractHafasProvider if ("U-BAHN".equals(ucType)) return 'U'; - if ("B".equals(ucType)) - return 'B'; - if ("BUFB".equals(ucType)) // BuFB - return 'B'; - if ("BUVB".equals(ucType)) // BuVB - return 'B'; - if ("LTAXI".equals(ucType)) - return 'B'; - if ("BN".equals(ucType)) // BN Venus - return 'B'; - if ("ASOF".equals(ucType)) - return 'B'; if ("AT".equals(ucType)) // Anschluß Sammel Taxi, Anmeldung nicht erforderlich return 'B'; diff --git a/enabler/src/de/schildbach/pte/OebbProvider.java b/enabler/src/de/schildbach/pte/OebbProvider.java index 150d2151..2eff6bc4 100644 --- a/enabler/src/de/schildbach/pte/OebbProvider.java +++ b/enabler/src/de/schildbach/pte/OebbProvider.java @@ -212,23 +212,17 @@ public class OebbProvider extends AbstractHafasProvider return 'R'; if (ucType.equals("DPF")) // VX=Vogtland Express, Connections only? return 'R'; - // if (ucType.equals("SBE")) // Zittau-Seifhennersdorf, via JSON API - // return 'R'; if ("UAU".equals(ucType)) // Rußland return 'R'; if (ucType.equals("RSB")) // Schnellbahn Wien return 'S'; - // if (ucType.equals("DPN")) // S3 Bad Reichenhall-Freilassing, via JSON API - // return 'S'; if (ucType.equals("LKB")) // Connections only? return 'T'; if (ucType.equals("OBU")) // Connections only? return 'B'; - if (ucType.equals("ICB")) // ÖBB ICBus - return 'B'; if (ucType.equals("O-BUS")) // Stadtbus return 'B'; if (ucType.equals("O")) // Stadtbus @@ -245,8 +239,6 @@ public class OebbProvider extends AbstractHafasProvider return 'C'; if (ucType.equals("SSB")) // Graz Schlossbergbahn return 'C'; - // if (ucType.equals("HBB")) // Innsbruck Hungerburgbahn, via JSON API - // return 'C'; final char t = super.normalizeType(type); if (t != 0) diff --git a/enabler/src/de/schildbach/pte/SfProvider.java b/enabler/src/de/schildbach/pte/SfProvider.java index c94c266b..14dbaacc 100644 --- a/enabler/src/de/schildbach/pte/SfProvider.java +++ b/enabler/src/de/schildbach/pte/SfProvider.java @@ -85,6 +85,8 @@ public class SfProvider extends AbstractEfaProvider return "RLocal"; if ("CAP".equals(symbol) && "CAPITOL".equals(name)) return "RCapitol"; + if ("OAK".equals(symbol) && "OAK / Coliseum".equals(name)) + return "ROAK/Coliseum"; if ("Muni Rail".equals(trainName) && symbol != null) // Muni return 'T' + symbol; diff --git a/enabler/src/de/schildbach/pte/StvProvider.java b/enabler/src/de/schildbach/pte/StvProvider.java index 58446e04..7adeac06 100644 --- a/enabler/src/de/schildbach/pte/StvProvider.java +++ b/enabler/src/de/schildbach/pte/StvProvider.java @@ -43,8 +43,8 @@ public class StvProvider extends AbstractEfaProvider { if ("0".equals(mot)) { - if ("RR".equals(trainType)) // Tschechien - return "RRR" + trainNum; + if ("M".equals(trainType) && trainNum != null) + return "RM" + trainNum; } return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); diff --git a/enabler/src/de/schildbach/pte/VbnProvider.java b/enabler/src/de/schildbach/pte/VbnProvider.java index 5aaaa680..e2e6be4b 100644 --- a/enabler/src/de/schildbach/pte/VbnProvider.java +++ b/enabler/src/de/schildbach/pte/VbnProvider.java @@ -131,15 +131,6 @@ public class VbnProvider extends AbstractHafasProvider { final String ucType = type.toUpperCase(); - if ("P".equals(ucType)) // Brohltalbahn - return 'R'; - - if ("RFTAST".equals(ucType)) - return 'B'; - - if ("BUSFÄHRE".equals(ucType)) // Blexen - Bremerhaven - return 'F'; - if ("SEILB".equals(ucType)) return 'C'; diff --git a/enabler/src/de/schildbach/pte/VmsProvider.java b/enabler/src/de/schildbach/pte/VmsProvider.java index 3e7ebc25..2ae11baf 100644 --- a/enabler/src/de/schildbach/pte/VmsProvider.java +++ b/enabler/src/de/schildbach/pte/VmsProvider.java @@ -47,6 +47,9 @@ public class VmsProvider extends AbstractEfaProvider return "RM"; if ("CityBahn".equals(trainName) && trainNum == null) return "RCB"; + + if ("RE 3".equals(symbol) && "Zug".equals(longName)) + return "RRE3"; } return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); diff --git a/enabler/src/de/schildbach/pte/VmvProvider.java b/enabler/src/de/schildbach/pte/VmvProvider.java index 855cc6e0..83f04662 100644 --- a/enabler/src/de/schildbach/pte/VmvProvider.java +++ b/enabler/src/de/schildbach/pte/VmvProvider.java @@ -44,23 +44,6 @@ public class VmvProvider extends AbstractEfaProvider return NETWORK_ID; } - @Override - 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 ("5".equals(mot)) - { - if ("0F1".equals(symbol)) - return "BF1"; - if ("0F1A".equals(symbol)) - return "BF1A"; - if ("0F2".equals(symbol)) - return "BF2"; - } - - return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); - } - private static final Map STYLES = new HashMap(); static diff --git a/enabler/src/de/schildbach/pte/VrnProvider.java b/enabler/src/de/schildbach/pte/VrnProvider.java index 1c311df4..5f0e6b4a 100644 --- a/enabler/src/de/schildbach/pte/VrnProvider.java +++ b/enabler/src/de/schildbach/pte/VrnProvider.java @@ -36,17 +36,4 @@ public class VrnProvider extends AbstractEfaProvider { return NETWORK_ID; } - - @Override - 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)) - { - if ("vlexx".equals(trainName)) - return "Rvlexx"; - } - - return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); - } } diff --git a/enabler/src/de/schildbach/pte/VrrProvider.java b/enabler/src/de/schildbach/pte/VrrProvider.java index d41be525..3daa3169 100644 --- a/enabler/src/de/schildbach/pte/VrrProvider.java +++ b/enabler/src/de/schildbach/pte/VrrProvider.java @@ -61,6 +61,9 @@ public class VrrProvider extends AbstractEfaProvider if (trainType == null && "SEV7".equals(trainNum)) return 'B' + trainNum; + + if ("Zug".equals(longName)) + return "?Zug"; } else if ("11".equals(mot)) { diff --git a/enabler/src/de/schildbach/pte/VvoProvider.java b/enabler/src/de/schildbach/pte/VvoProvider.java index fb1b6df3..5d5af66b 100644 --- a/enabler/src/de/schildbach/pte/VvoProvider.java +++ b/enabler/src/de/schildbach/pte/VvoProvider.java @@ -59,6 +59,10 @@ public class VvoProvider extends AbstractEfaProvider return "ROE"; if ("Meridian".equals(longName)) return "RM"; + if ("trilex".equals(longName)) + return "RTLX"; + if ("Trilex".equals(trainName) && trainNum == null) + return "RTLX"; if ("U28".equals(symbol)) // Nationalparkbahn return "RU28"; diff --git a/enabler/src/de/schildbach/pte/VvvProvider.java b/enabler/src/de/schildbach/pte/VvvProvider.java index 6c837c3e..7766ed4b 100644 --- a/enabler/src/de/schildbach/pte/VvvProvider.java +++ b/enabler/src/de/schildbach/pte/VvvProvider.java @@ -36,25 +36,4 @@ public class VvvProvider extends AbstractEfaProvider { return NETWORK_ID; } - - @Override - 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)) - { - if ("VL1".equals(trainNum)) - return "RVL1"; - if ("VL2".equals(trainNum)) - return "RVL2"; - if ("VL3".equals(trainNum)) - return "RVL3"; - if ("VL4".equals(trainNum)) - return "RVL4"; - if ("VL5".equals(trainNum)) - return "RVL5"; - } - - return super.parseLine(mot, symbol, name, longName, trainType, trainNum, trainName); - } }