From d6d3371de26a0dd3031c73a70d0c58f3a0b34c09 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Wed, 16 Dec 2015 10:03:31 +0100 Subject: [PATCH] Lines. --- .../schildbach/pte/AbstractEfaProvider.java | 16 +++++++++++++- .../schildbach/pte/AbstractHafasProvider.java | 8 ++++++- .../src/de/schildbach/pte/GvhProvider.java | 4 ++++ enabler/src/de/schildbach/pte/SfProvider.java | 22 ++++++++++++------- .../src/de/schildbach/pte/VmsProvider.java | 6 +++++ .../src/de/schildbach/pte/VrrProvider.java | 2 ++ 6 files changed, 48 insertions(+), 10 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index 14e4212b..14a48682 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1104,7 +1104,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider return new Line(id, network, Product.HIGH_SPEED_TRAIN, "MT" + trainNum); if (("TLK".equals(trainType) || "Tanie Linie Kolejowe".equals(trainName)) && trainNum != null) return new Line(id, network, Product.HIGH_SPEED_TRAIN, "TLK" + trainNum); - if ("DNZ".equals(trainType) && "Nacht-Schnellzug".equals(trainName) && trainNum != null) + if ("DNZ".equals(trainType) && trainNum != null) // Nacht-Schnellzug return new Line(id, network, Product.HIGH_SPEED_TRAIN, "DNZ" + trainNum); if ("AVE".equals(trainType) && trainNum != null) // klimatisierter Hochgeschwindigkeitszug return new Line(id, network, Product.HIGH_SPEED_TRAIN, "DNZ" + trainNum); @@ -1294,6 +1294,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider return new Line(id, network, Product.REGIONAL_TRAIN, "BE" + trainNum); if ("erx".equals(trainType) || "erixx - Der Heidesprinter".equals(trainName)) return new Line(id, network, Product.REGIONAL_TRAIN, "erx" + trainNum); + if (("ERX".equals(trainType) || "Erixx".equals(trainName)) && trainNum != null) + return new Line(id, network, Product.REGIONAL_TRAIN, "ERX" + trainNum); if ("SWEG-Zug".equals(trainName)) // Südwestdeutschen Verkehrs-Aktiengesellschaft return new Line(id, network, Product.REGIONAL_TRAIN, "SWEG" + trainNum); if ("SWEG-Zug".equals(longName)) @@ -1380,6 +1382,16 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider return new Line(id, network, Product.REGIONAL_TRAIN, "RR" + Strings.nullToEmpty(trainNum)); if (("TER".equals(trainType) || "Train Express Regional".equals(trainName)) && trainNum != null) return new Line(id, network, Product.REGIONAL_TRAIN, "TER" + trainNum); + if (("ENO".equals(trainType) || "enno".equals(trainName)) && trainNum != null) + return new Line(id, network, Product.REGIONAL_TRAIN, "ENO" + trainNum); + if ("enno".equals(longName) && symbol == null) + return new Line(id, network, Product.REGIONAL_TRAIN, "enno"); + if (("PLB".equals(trainType) || "Pinzgauer Lokalbahn".equals(trainName)) && trainNum != null) + return new Line(id, network, Product.REGIONAL_TRAIN, "PLB" + trainNum); + if (("NX".equals(trainType) || "National Express".equals(trainName)) && trainNum != null) + return new Line(id, network, Product.REGIONAL_TRAIN, "NX" + trainNum); + if (("SE".equals(trainType) || "ABELLIO Rail Mitteldeutschland GmbH".equals(trainName)) && trainNum != null) + return new Line(id, network, Product.REGIONAL_TRAIN, "SE" + trainNum); if ("BSB-Zug".equals(trainName) && trainNum != null) // Breisgau-S-Bahn return new Line(id, network, Product.SUBURBAN_TRAIN, trainNum); @@ -1409,6 +1421,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider return new Line(id, network, Product.BUS, "BR"); if ("BR".equals(trainType) && trainName != null && trainName.startsWith("Bus")) // GB return new Line(id, network, Product.BUS, "BR" + trainNum); + if ("EXB".equals(trainType) && trainNum != null) + return new Line(id, network, Product.BUS, "EXB" + trainNum); if ("GB".equals(trainType)) // Gondelbahn return new Line(id, network, Product.CABLECAR, "GB" + trainNum); diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 09952d64..fec15090 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -3457,6 +3457,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return Product.REGIONAL_TRAIN; if ("SP".equals(ucType)) // Spěšný vlak, Czech Republic return Product.REGIONAL_TRAIN; + if ("RX".equals(ucType)) // Express, Czech Republic + return Product.REGIONAL_TRAIN; if ("EZ".equals(ucType)) // ÖBB ErlebnisBahn return Product.REGIONAL_TRAIN; if ("ARZ".equals(ucType)) // Auto-Reisezug Brig - Iselle di Trasquera @@ -3639,6 +3641,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return Product.REGIONAL_TRAIN; if ("GW".equals(ucType)) // gwtr.cz return Product.REGIONAL_TRAIN; + if ("SE".equals(ucType)) // ABELLIO Rail Mitteldeutschland GmbH + return Product.REGIONAL_TRAIN; // Suburban Trains if (P_LINE_SBAHN.matcher(ucType).matches()) // Generic (Night) S-Bahn @@ -3735,7 +3739,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return Product.FERRY; if ("SCH".equals(ucType)) // Schiff return Product.FERRY; - if ("AS".equals(ucType)) // SyltShuttle, eigentlich Autoreisezug + if ("AS".equals(ucType)) // SyltShuttle + return Product.FERRY; + if ("AZS".equals(ucType)) // Autozug Sylt Shuttle return Product.FERRY; if ("KAT".equals(ucType)) // Katamaran, e.g. Friedrichshafen - Konstanz return Product.FERRY; diff --git a/enabler/src/de/schildbach/pte/GvhProvider.java b/enabler/src/de/schildbach/pte/GvhProvider.java index 645f9b1a..9241574c 100644 --- a/enabler/src/de/schildbach/pte/GvhProvider.java +++ b/enabler/src/de/schildbach/pte/GvhProvider.java @@ -59,6 +59,10 @@ public class GvhProvider extends AbstractEfaProvider { if ("S4".equals(trainNum)) return new Line(id, network, Product.SUBURBAN_TRAIN, "S4"); + if ("Bus".equals(longName) && symbol == null) + return new Line(id, network, Product.BUS, longName); + if (longName != null && longName.startsWith("Bus ") && name != null) + return new Line(id, network, Product.BUS, name); } return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); diff --git a/enabler/src/de/schildbach/pte/SfProvider.java b/enabler/src/de/schildbach/pte/SfProvider.java index a568025f..03c050ca 100644 --- a/enabler/src/de/schildbach/pte/SfProvider.java +++ b/enabler/src/de/schildbach/pte/SfProvider.java @@ -78,25 +78,29 @@ public class SfProvider extends AbstractEfaProvider { if ("0".equals(mot)) { - if (("XAA".equals(symbol) || "Daly City / Fremont".equals(symbol)) && "Daly City / Fremont".equals(name)) + if (("XAA".equals(symbol) || "Daly City / Fremont".equals(symbol)) && ("DALY/FREMONT".equals(name) || "Daly City / Fremont".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "DALY/FRMT"); - if (("FRE".equals(symbol) || "Fremont / Daly City".equals(symbol)) && "Fremont / Daly City".equals(name)) + if (("FRE".equals(symbol) || "Fremont / Daly City".equals(symbol)) && ("FREMONT/DALY".equals(name) || "Fremont / Daly City".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "FRMT/DALY"); if (("XAC".equals(symbol) || "Fremont / Richmond".equals(symbol)) && "Fremont / Richmond".equals(name)) return new Line(id, network, Product.REGIONAL_TRAIN, "FRMT/RICH"); if (("XAD".equals(symbol) || "Richmond / Fremont".equals(symbol)) && "Richmond / Fremont".equals(name)) return new Line(id, network, Product.REGIONAL_TRAIN, "RICH/FRMT"); - if (("XAE".equals(symbol) || "Pittsburg Bay Point / SFO".equals(symbol)) && "Pittsburg Bay Point / SFO".equals(name)) + if (("XAE".equals(symbol) || "Pittsburg Bay Point / SFO".equals(symbol)) + && ("BAY PT/SFIA".equals(name) || "Pittsburg Bay Point / SFO".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "PITT/SFIA"); - if (("SFI".equals(symbol) || "SFO / Pittsburg Bay Point".equals(symbol)) && "SFO / Pittsburg Bay Point".equals(name)) + if (("SFI".equals(symbol) || "SFO / Pittsburg Bay Point".equals(symbol)) + && ("SFIA/BAY PT".equals(name) || "SFO / Pittsburg Bay Point".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "SFIA/PITT"); - if (("XAF".equals(symbol) || "Millbrae / Richmond".equals(symbol)) && "Millbrae / Richmond".equals(name)) + if (("XAF".equals(symbol) || "Millbrae / Richmond".equals(symbol)) && ("MILL/RICH".equals(name) || "Millbrae / Richmond".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "MLBR/RICH"); - if (("XAG".equals(symbol) || "Richmond / Millbrae".equals(symbol)) && "Richmond / Millbrae".equals(name)) + if (("XAG".equals(symbol) || "Richmond / Millbrae".equals(symbol)) && ("RICH/MILL".equals(name) || "Richmond / Millbrae".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "RICH/MLBR"); - if (("XAH".equals(symbol) || "Daly City / Dublin Pleasanton".equals(symbol)) && "Daly City / Dublin Pleasanton".equals(name)) + if (("XAH".equals(symbol) || "Daly City / Dublin Pleasanton".equals(symbol)) + && ("DALY/DUBLIN".equals(name) || "Daly City / Dublin Pleasanton".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "DALY/DUBL"); - if (("XAI".equals(symbol) || "Dublin Pleasanton / Daly City".equals(symbol)) && "Dublin Pleasanton / Daly City".equals(name)) + if (("XAI".equals(symbol) || "Dublin Pleasanton / Daly City".equals(symbol)) + && ("DUBLIN/DALY".equals(name) || "Dublin Pleasanton / Daly City".equals(name))) return new Line(id, network, Product.REGIONAL_TRAIN, "DUBL/DALY"); if ("LOC".equals(symbol) && "LOCAL".equals(name)) @@ -108,6 +112,8 @@ public class SfProvider extends AbstractEfaProvider if ("Muni Rail".equals(trainName) && symbol != null) // Muni return new Line(id, network, Product.TRAM, symbol); + if (trainType == null && "E".equals(trainNum)) // Muni Rail E + return new Line(id, network, Product.TRAM, "E"); if (trainType == null && "F".equals(trainNum)) // Muni Historic Streetcar return new Line(id, network, Product.TRAM, "F"); if (trainType == null && "J".equals(trainNum)) // Muni Metro diff --git a/enabler/src/de/schildbach/pte/VmsProvider.java b/enabler/src/de/schildbach/pte/VmsProvider.java index 4421d7cc..47091183 100644 --- a/enabler/src/de/schildbach/pte/VmsProvider.java +++ b/enabler/src/de/schildbach/pte/VmsProvider.java @@ -72,6 +72,12 @@ public class VmsProvider extends AbstractEfaProvider return new Line(id, network, Product.REGIONAL_TRAIN, "M"); if ("CityBahn".equals(trainName) && trainNum == null) return new Line(id, network, Product.REGIONAL_TRAIN, "CB"); + if ("CityBahn".equals(longName) && "C11".equals(symbol)) + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); + if (trainType == null && ("C11".equals(trainNum) || "C13".equals(trainNum) || "C14".equals(trainNum) || "C15".equals(trainNum))) + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); + if ("Zug".equals(longName) && ("C11".equals(symbol) || "C13".equals(symbol) || "C14".equals(symbol) || "C15".equals(symbol))) + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("RE 3".equals(symbol) && "Zug".equals(longName)) return new Line(id, network, Product.REGIONAL_TRAIN, "RE3"); diff --git a/enabler/src/de/schildbach/pte/VrrProvider.java b/enabler/src/de/schildbach/pte/VrrProvider.java index fad2138f..8e56b844 100644 --- a/enabler/src/de/schildbach/pte/VrrProvider.java +++ b/enabler/src/de/schildbach/pte/VrrProvider.java @@ -90,6 +90,8 @@ public class VrrProvider extends AbstractEfaProvider return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("NordWestBahn".equals(trainName) && symbol != null) return new Line(id, network, Product.REGIONAL_TRAIN, symbol); + if ("RE6a".equals(trainNum) && trainType == null && trainName == null) + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); if (trainType == null && "SEV7".equals(trainNum)) return new Line(id, network, Product.BUS, trainNum);