From 2038a740e20652b33c23978920e3377c27bd1872 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Mon, 16 Feb 2015 14:58:53 +0100 Subject: [PATCH] Include network with Line. --- .../schildbach/pte/AbstractEfaProvider.java | 414 +++++++++--------- .../schildbach/pte/AbstractHafasProvider.java | 4 +- .../pte/AbstractNavitiaProvider.java | 4 +- .../schildbach/pte/AbstractTsiProvider.java | 4 +- .../src/de/schildbach/pte/AvvProvider.java | 9 +- .../src/de/schildbach/pte/BayernProvider.java | 33 +- .../src/de/schildbach/pte/InvgProvider.java | 8 +- .../src/de/schildbach/pte/KvvProvider.java | 9 +- .../src/de/schildbach/pte/MetProvider.java | 17 +- .../src/de/schildbach/pte/MvvProvider.java | 19 +- .../src/de/schildbach/pte/NvbwProvider.java | 35 +- enabler/src/de/schildbach/pte/SfProvider.java | 51 +-- .../src/de/schildbach/pte/StvProvider.java | 9 +- .../src/de/schildbach/pte/SydneyProvider.java | 51 +-- .../src/de/schildbach/pte/TfiProvider.java | 13 +- .../src/de/schildbach/pte/TlemProvider.java | 9 +- .../src/de/schildbach/pte/VblProvider.java | 55 +-- .../src/de/schildbach/pte/VgnProvider.java | 13 +- .../src/de/schildbach/pte/VmsProvider.java | 15 +- .../src/de/schildbach/pte/VrnProvider.java | 9 +- .../src/de/schildbach/pte/VrrProvider.java | 21 +- .../src/de/schildbach/pte/VvoProvider.java | 23 +- enabler/src/de/schildbach/pte/dto/Line.java | 39 +- 23 files changed, 446 insertions(+), 418 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index d9fe8bac..78a6c61d 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1004,8 +1004,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider private static final Pattern P_LINE_S_DB = Pattern.compile("(S\\d+) \\((?:DB Regio AG)\\)"); private static final Pattern P_LINE_NUMBER = Pattern.compile("\\d+"); - protected Line parseLine(final @Nullable String id, final @Nullable String mot, @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if (mot == null) { @@ -1013,33 +1014,33 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { final String str = Strings.nullToEmpty(name); if (trainName.equals("S-Bahn")) - return new Line(id, Product.SUBURBAN_TRAIN, str); + return new Line(id, network, Product.SUBURBAN_TRAIN, str); if (trainName.equals("U-Bahn")) - return new Line(id, Product.SUBWAY, str); + return new Line(id, network, Product.SUBWAY, str); if (trainName.equals("Straßenbahn")) - return new Line(id, Product.TRAM, str); + return new Line(id, network, Product.TRAM, str); if (trainName.equals("Badner Bahn")) - return new Line(id, Product.TRAM, str); + return new Line(id, network, Product.TRAM, str); if (trainName.equals("Stadtbus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Citybus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Regionalbus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("ÖBB-Postbus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Autobus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Discobus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Nachtbus")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Anrufsammeltaxi")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Ersatzverkehr")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); if (trainName.equals("Vienna Airport Lines")) - return new Line(id, Product.BUS, str); + return new Line(id, network, Product.BUS, str); } } else if ("0".equals(mot)) @@ -1047,398 +1048,398 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider final String trainNumStr = Strings.nullToEmpty(trainNum); if (("EC".equals(trainType) || "EuroCity".equals(trainName) || "Eurocity".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "EC" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "EC" + trainNum); if (("EN".equals(trainType) || "EuroNight".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "EN" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "EN" + trainNum); if (("IC".equals(trainType) || "InterCity".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "IC" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "IC" + trainNum); if (("ICE".equals(trainType) || "ICE".equals(trainName) || "Intercity-Express".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "ICE" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "ICE" + trainNum); if (("ICN".equals(trainType) || "InterCityNight".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "ICN" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "ICN" + trainNum); if (("X".equals(trainType) || "InterConnex".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "X" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "X" + trainNum); if (("CNL".equals(trainType) || "CityNightLine".equals(trainName)) && trainNum != null) // City Night Line - return new Line(id, Product.HIGH_SPEED_TRAIN, "CNL" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "CNL" + trainNum); if (("THA".equals(trainType) || "Thalys".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "THA" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "THA" + trainNum); if ("RHI".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "RHI" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "RHI" + trainNum); if (("TGV".equals(trainType) || "TGV".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "TGV" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "TGV" + trainNum); if ("TGD".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "TGD" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "TGD" + trainNum); if ("INZ".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "INZ" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "INZ" + trainNum); if (("RJ".equals(trainType) || "railjet".equals(trainName)) && trainNum != null) // railjet - return new Line(id, Product.HIGH_SPEED_TRAIN, "RJ" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "RJ" + trainNum); if (("WB".equals(trainType) || "WESTbahn".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "WB" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "WB" + trainNum); if (("HKX".equals(trainType) || "Hamburg-Köln-Express".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "HKX" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "HKX" + trainNum); if ("INT".equals(trainType) && trainNum != null) // SVV, VAGFR - return new Line(id, Product.HIGH_SPEED_TRAIN, "INT" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "INT" + trainNum); if (("SC".equals(trainType) || "SC Pendolino".equals(trainName)) && trainNum != null) // SuperCity - return new Line(id, Product.HIGH_SPEED_TRAIN, "SC" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "SC" + trainNum); if ("ECB".equals(trainType) && trainNum != null) // EC, Verona-München - return new Line(id, Product.HIGH_SPEED_TRAIN, "ECB" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "ECB" + trainNum); if ("ES".equals(trainType) && trainNum != null) // Eurostar Italia - return new Line(id, Product.HIGH_SPEED_TRAIN, "ES" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "ES" + trainNum); if (("EST".equals(trainType) || "EUROSTAR".equals(trainName)) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "EST" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "EST" + trainNum); if ("EIC".equals(trainType) && trainNum != null) // Ekspres InterCity, Polen - return new Line(id, Product.HIGH_SPEED_TRAIN, "EIC" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "EIC" + trainNum); if ("MT".equals(trainType) && "Schnee-Express".equals(trainName) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "MT" + trainNum); + 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, Product.HIGH_SPEED_TRAIN, "TLK" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "TLK" + trainNum); if ("Zug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("Zuglinie".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("IR".equals(trainType) || "Interregio".equals(trainName) || "InterRegio".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "IR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "IR" + trainNum); if ("IRE".equals(trainType) || "Interregio-Express".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "IRE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "IRE" + trainNum); if ("InterRegioExpress".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "IRE" + trainNumStr); + return new Line(id, network, Product.REGIONAL_TRAIN, "IRE" + trainNumStr); if ("RE".equals(trainType) || "Regional-Express".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "RE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "RE" + trainNum); if (trainType == null && trainNum != null && P_LINE_RE.matcher(trainNum).matches()) - return new Line(id, Product.REGIONAL_TRAIN, trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); if ("Regionalexpress".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("R-Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("RB-Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("RE-Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("REX".equals(trainType)) // RegionalExpress, Österreich - return new Line(id, Product.REGIONAL_TRAIN, "REX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "REX" + trainNum); if (("RB".equals(trainType) || "Regionalbahn".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "RB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "RB" + trainNum); if (trainType == null && trainNum != null && P_LINE_RB.matcher(trainNum).matches()) - return new Line(id, Product.REGIONAL_TRAIN, trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); if ("Abellio-Zug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("Westfalenbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("Chiemseebahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("R".equals(trainType) || "Regionalzug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "R" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "R" + trainNum); if (trainType == null && trainNum != null && P_LINE_R.matcher(trainNum).matches()) - return new Line(id, Product.REGIONAL_TRAIN, trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); if ("D".equals(trainType) || "Schnellzug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "D" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "D" + trainNum); if ("E".equals(trainType) || "Eilzug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "E" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "E" + trainNum); if ("WFB".equals(trainType) || "WestfalenBahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "WFB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "WFB" + trainNum); if (("NWB".equals(trainType) || "NordWestBahn".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "NWB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "NWB" + trainNum); if ("WES".equals(trainType) || "Westbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "WES" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "WES" + trainNum); if ("ERB".equals(trainType) || "eurobahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "ERB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ERB" + trainNum); if ("CAN".equals(trainType) || "cantus Verkehrsgesellschaft".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "CAN" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "CAN" + trainNum); if ("HEX".equals(trainType) || "Veolia Verkehr Sachsen-Anhalt".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "HEX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "HEX" + trainNum); if ("EB".equals(trainType) || "Erfurter Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "EB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "EB" + trainNum); if ("Erfurter Bahn".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "EB"); + return new Line(id, network, Product.REGIONAL_TRAIN, "EB"); if ("EBx".equals(trainType) || "Erfurter Bahn Express".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "EBx" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "EBx" + trainNum); if ("Erfurter Bahn Express".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "EBx"); + return new Line(id, network, Product.REGIONAL_TRAIN, "EBx"); if ("MRB".equals(trainType) || "Mitteldeutsche Regiobahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "MRB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MRB" + trainNum); if ("ABR".equals(trainType) || "ABELLIO Rail NRW GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "ABR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ABR" + trainNum); if ("NEB".equals(trainType) || "NEB Niederbarnimer Eisenbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "NEB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "NEB" + trainNum); if ("OE".equals(trainType) || "Ostdeutsche Eisenbahn GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "OE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "OE" + trainNum); if ("ODE".equals(trainType)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("OLA".equals(trainType) || "Ostseeland Verkehr GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "OLA" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "OLA" + trainNum); if ("UBB".equals(trainType) || "Usedomer Bäderbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "UBB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "UBB" + trainNum); if ("EVB".equals(trainType) || "ELBE-WESER GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "EVB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "EVB" + trainNum); if ("RTB".equals(trainType) || "Rurtalbahn GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "RTB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "RTB" + trainNum); if ("STB".equals(trainType) || "Süd-Thüringen-Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "STB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "STB" + trainNum); if ("HTB".equals(trainType) || "Hellertalbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "HTB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "HTB" + trainNum); if ("VBG".equals(trainType) || "Vogtlandbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "VBG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "VBG" + trainNum); if ("CB".equals(trainType) || "City-Bahn Chemnitz".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "CB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "CB" + trainNum); if ("VEC".equals(trainType) || "vectus Verkehrsgesellschaft".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "VEC" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "VEC" + trainNum); if ("HzL".equals(trainType) || "Hohenzollerische Landesbahn AG".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "HzL" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "HzL" + trainNum); if ("SBB".equals(trainType) || "SBB GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "SBB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SBB" + trainNum); if ("MBB".equals(trainType) || "Mecklenburgische Bäderbahn Molli".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "MBB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MBB" + trainNum); if ("OS".equals(trainType)) // Osobní vlak - return new Line(id, Product.REGIONAL_TRAIN, "OS" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "OS" + trainNum); if ("SP".equals(trainType) || "Sp".equals(trainType)) // Spěšný vlak - return new Line(id, Product.REGIONAL_TRAIN, "SP" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SP" + trainNum); if ("Dab".equals(trainType) || "Daadetalbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "Dab" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "Dab" + trainNum); if ("FEG".equals(trainType) || "Freiberger Eisenbahngesellschaft".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "FEG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "FEG" + trainNum); if ("ARR".equals(trainType) || "ARRIVA".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "ARR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ARR" + trainNum); if ("HSB".equals(trainType) || "Harzer Schmalspurbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "HSB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "HSB" + trainNum); if ("ALX".equals(trainType) || "alex - Länderbahn und Vogtlandbahn GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "ALX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ALX" + trainNum); if ("EX".equals(trainType) || "Fatra".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "EX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "EX" + trainNum); if ("ME".equals(trainType) || "metronom".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "ME" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ME" + trainNum); if ("metronom".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "ME"); + return new Line(id, network, Product.REGIONAL_TRAIN, "ME"); if ("MEr".equals(trainType)) - return new Line(id, Product.REGIONAL_TRAIN, "MEr" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MEr" + trainNum); if ("AKN".equals(trainType) || "AKN Eisenbahn AG".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "AKN" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "AKN" + trainNum); if ("SOE".equals(trainType) || "Sächsisch-Oberlausitzer Eisenbahngesellschaft".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "SOE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SOE" + trainNum); if ("VIA".equals(trainType) || "VIAS GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "VIA" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "VIA" + trainNum); if ("BRB".equals(trainType) || "Bayerische Regiobahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "BRB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BRB" + trainNum); if ("BLB".equals(trainType) || "Berchtesgadener Land Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "BLB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BLB" + trainNum); if ("HLB".equals(trainType) || "Hessische Landesbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "HLB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "HLB" + trainNum); if ("NOB".equals(trainType) || "NordOstseeBahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "NOB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "NOB" + trainNum); if ("NBE".equals(trainType) || "Nordbahn Eisenbahngesellschaft".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "NBE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "NBE" + trainNum); if ("VEN".equals(trainType) || "Rhenus Veniro".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "VEN" + trainType); + return new Line(id, network, Product.REGIONAL_TRAIN, "VEN" + trainType); if ("DPN".equals(trainType) || "Nahreisezug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "DPN" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "DPN" + trainNum); if ("RBG".equals(trainType) || "Regental Bahnbetriebs GmbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "RBG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "RBG" + trainNum); if ("BOB".equals(trainType) || "Bodensee-Oberschwaben-Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "BOB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BOB" + trainNum); if ("VE".equals(trainType) || "Vetter".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "VE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "VE" + trainNum); if ("SDG".equals(trainType) || "SDG Sächsische Dampfeisenbahngesellschaft mbH".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "SDG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SDG" + trainNum); if ("PRE".equals(trainType) || "Pressnitztalbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "PRE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "PRE" + trainNum); if ("VEB".equals(trainType) || "Vulkan-Eifel-Bahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "VEB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "VEB" + trainNum); if ("neg".equals(trainType) || "Norddeutsche Eisenbahn Gesellschaft".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "neg" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "neg" + trainNum); if ("AVG".equals(trainType) || "Felsenland-Express".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "AVG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "AVG" + trainNum); if ("P".equals(trainType) || "BayernBahn Betriebs-GmbH".equals(trainName) || "Brohltalbahn".equals(trainName) || "Kasbachtalbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "P" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "P" + trainNum); if ("SBS".equals(trainType) || "Städtebahn Sachsen".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "SBS" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SBS" + trainNum); if ("SES".equals(trainType) || "Städteexpress Sachsen".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "SES" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SES" + trainNum); if ("SB-".equals(trainType)) // Städtebahn Sachsen - return new Line(id, Product.REGIONAL_TRAIN, "SB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SB" + trainNum); if ("ag".equals(trainType)) // agilis - return new Line(id, Product.REGIONAL_TRAIN, "ag" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ag" + trainNum); if ("agi".equals(trainType) || "agilis".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "agi" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "agi" + trainNum); if ("as".equals(trainType) || "agilis-Schnellzug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "as" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "as" + trainNum); if ("TLX".equals(trainType) || "TRILEX".equals(trainName)) // Trilex (Vogtlandbahn) - return new Line(id, Product.REGIONAL_TRAIN, "TLX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TLX" + trainNum); if ("MSB".equals(trainType) || "Mainschleifenbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "MSB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MSB" + trainNum); if ("BE".equals(trainType) || "Bentheimer Eisenbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "BE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BE" + trainNum); if ("erx".equals(trainType) || "erixx - Der Heidesprinter".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "erx" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "erx" + trainNum); if ("SWEG-Zug".equals(trainName)) // Südwestdeutschen Verkehrs-Aktiengesellschaft - return new Line(id, Product.REGIONAL_TRAIN, "SWEG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SWEG" + trainNum); if ("SWEG-Zug".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "SWEG"); + return new Line(id, network, Product.REGIONAL_TRAIN, "SWEG"); if ("EGP Eisenbahngesellschaft Potsdam".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "EGP" + trainNumStr); + return new Line(id, network, Product.REGIONAL_TRAIN, "EGP" + trainNumStr); if ("ÖBB".equals(trainType) || "ÖBB".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "ÖBB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ÖBB" + trainNum); if ("CAT".equals(trainType)) // City Airport Train Wien - return new Line(id, Product.REGIONAL_TRAIN, "CAT" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "CAT" + trainNum); if ("DZ".equals(trainType) || "Dampfzug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "DZ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "DZ" + trainNum); if ("CD".equals(trainType)) // Tschechien - return new Line(id, Product.REGIONAL_TRAIN, "CD" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "CD" + trainNum); if ("VR".equals(trainType)) // Polen - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("PR".equals(trainType)) // Polen - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("KD".equals(trainType)) // Koleje Dolnośląskie (Niederschlesische Eisenbahn) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("Koleje Dolnoslaskie".equals(trainName) && symbol != null) // Koleje Dolnośląskie - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("OO".equals(trainType) || "Ordinary passenger (o.pas.)".equals(trainName)) // GB - return new Line(id, Product.REGIONAL_TRAIN, "OO" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "OO" + trainNum); if ("XX".equals(trainType) || "Express passenger (ex.pas.)".equals(trainName)) // GB - return new Line(id, Product.REGIONAL_TRAIN, "XX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "XX" + trainNum); if ("XZ".equals(trainType) || "Express passenger sleeper".equals(trainName)) // GB - return new Line(id, Product.REGIONAL_TRAIN, "XZ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "XZ" + trainNum); if ("ATB".equals(trainType)) // Autoschleuse Tauernbahn - return new Line(id, Product.REGIONAL_TRAIN, "ATB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ATB" + trainNum); if ("ATZ".equals(trainType)) // Autozug - return new Line(id, Product.REGIONAL_TRAIN, "ATZ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ATZ" + trainNum); if ("AZ".equals(trainType) || "Auto-Zug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "AZ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "AZ" + trainNum); if ("DWE".equals(trainType) || "Dessau-Wörlitzer Eisenbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "DWE" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "DWE" + trainNum); if ("KTB".equals(trainType) || "Kandertalbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "KTB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "KTB" + trainNum); if ("CBC".equals(trainType) || "CBC".equals(trainName)) // City-Bahn Chemnitz - return new Line(id, Product.REGIONAL_TRAIN, "CBC" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "CBC" + trainNum); if ("Bernina Express".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); if ("STR".equals(trainType)) // Harzquerbahn, Nordhausen - return new Line(id, Product.REGIONAL_TRAIN, "STR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "STR" + trainNum); if ("EXT".equals(trainType) || "Extrazug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "EXT" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "EXT" + trainNum); if ("Heritage Railway".equals(trainName)) // GB - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("WTB".equals(trainType) || "Wutachtalbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "WTB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "WTB" + trainNum); if ("DB".equals(trainType) || "DB Regio".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "DB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "DB" + trainNum); if ("M".equals(trainType) && "Meridian".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "M" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "M" + trainNum); if ("M".equals(trainType) && "Messezug".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "M" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "M" + trainNum); if ("EZ".equals(trainType)) // ÖBB Erlebniszug - return new Line(id, Product.REGIONAL_TRAIN, "EZ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "EZ" + trainNum); if ("DPF".equals(trainType)) - return new Line(id, Product.REGIONAL_TRAIN, "DPF" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "DPF" + trainNum); if ("WBA".equals(trainType) || "Waldbahn".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "WBA" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "WBA" + trainNum); if ("ÖBA".equals(trainType) && trainNum != null) // Eisenbahn-Betriebsgesellschaft Ochsenhausen - return new Line(id, Product.REGIONAL_TRAIN, "ÖBA" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ÖBA" + trainNum); if (("UEF".equals(trainType) || "Ulmer Eisenbahnfreunde".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "UEF" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "UEF" + trainNum); if (("DBG".equals(trainType) || "Döllnitzbahn".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "DBG" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "DBG" + trainNum); if (("TL".equals(trainType) || "Trilex".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "TL" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TL" + trainNum); if (("OPB".equals(trainType) || "oberpfalzbahn".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "OPB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "OPB" + trainNum); if (("OPX".equals(trainType) || "oberpfalz-express".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "OPX" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "OPX" + trainNum); if (("V6".equals(trainType) || "vlexx".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "vlexx" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "vlexx" + trainNum); if (("ARZ".equals(trainType) || "Autoreisezug".equals(trainName)) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "ARZ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ARZ" + trainNum); if ("BSB-Zug".equals(trainName) && trainNum != null) // Breisgau-S-Bahn - return new Line(id, Product.SUBURBAN_TRAIN, trainNum); + return new Line(id, network, Product.SUBURBAN_TRAIN, trainNum); if ("BSB-Zug".equals(trainName) && trainNum == null) - return new Line(id, Product.SUBURBAN_TRAIN, "BSB"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "BSB"); if ("BSB-Zug".equals(longName)) - return new Line(id, Product.SUBURBAN_TRAIN, "BSB"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "BSB"); if ("RSB".equals(trainType)) // Regionalschnellbahn, Wien - return new Line(id, Product.SUBURBAN_TRAIN, "RSB" + trainNum); + return new Line(id, network, Product.SUBURBAN_TRAIN, "RSB" + trainNum); if ("RER".equals(trainName) && symbol != null && symbol.length() == 1) // Réseau Express Régional, // Frankreich - return new Line(id, Product.SUBURBAN_TRAIN, symbol); + return new Line(id, network, Product.SUBURBAN_TRAIN, symbol); if ("S".equals(trainType)) - return new Line(id, Product.SUBURBAN_TRAIN, "S" + trainNum); + return new Line(id, network, Product.SUBURBAN_TRAIN, "S" + trainNum); if ("S-Bahn".equals(trainName)) - return new Line(id, Product.SUBURBAN_TRAIN, "S" + trainNumStr); + return new Line(id, network, Product.SUBURBAN_TRAIN, "S" + trainNumStr); if ("RT".equals(trainType) || "RegioTram".equals(trainName)) - return new Line(id, Product.TRAM, "RT" + trainNum); + return new Line(id, network, Product.TRAM, "RT" + trainNum); if ("Bus".equals(trainType)) - return new Line(id, Product.BUS, "" + trainNum); + return new Line(id, network, Product.BUS, "" + trainNum); if ("SEV".equals(trainType) || "SEV".equals(trainNum) || "SEV".equals(trainName) || "SEV".equals(symbol) || "BSV".equals(trainType) || "Ersatzverkehr".equals(trainName) || "Schienenersatzverkehr".equals(trainName)) - return new Line(id, Product.BUS, "SEV" + trainNumStr); + return new Line(id, network, Product.BUS, "SEV" + trainNumStr); if ("Bus replacement".equals(trainName)) // GB - return new Line(id, Product.BUS, "BR"); + return new Line(id, network, Product.BUS, "BR"); if ("BR".equals(trainType) && trainName != null && trainName.startsWith("Bus")) // GB - return new Line(id, Product.BUS, "BR" + trainNum); + return new Line(id, network, Product.BUS, "BR" + trainNum); if ("GB".equals(trainType)) // Gondelbahn - return new Line(id, Product.CABLECAR, "GB" + trainNum); + return new Line(id, network, Product.CABLECAR, "GB" + trainNum); if ("SB".equals(trainType)) // Seilbahn - return new Line(id, Product.SUBURBAN_TRAIN, "SB" + trainNum); + return new Line(id, network, Product.SUBURBAN_TRAIN, "SB" + trainNum); if ("ZUG".equals(trainType) && trainNum != null) - return new Line(id, null, trainNum); + return new Line(id, network, null, trainNum); if (symbol != null && P_LINE_NUMBER.matcher(symbol).matches() && trainType == null && trainName == null) - return new Line(id, null, symbol); + return new Line(id, network, null, symbol); if ("N".equals(trainType) && trainName == null && symbol == null) - return new Line(id, null, "N" + trainNum); + return new Line(id, network, null, "N" + trainNum); if ("Train".equals(trainName)) - return new Line(id, null, null); + return new Line(id, network, null, null); // generic if (trainName != null && trainType == null && trainNum == null) - return new Line(id, null, trainName); + return new Line(id, network, null, trainName); } else if ("1".equals(mot)) { if (symbol != null && P_LINE_S.matcher(symbol).matches()) - return new Line(id, Product.SUBURBAN_TRAIN, symbol); + return new Line(id, network, Product.SUBURBAN_TRAIN, symbol); if (name != null && P_LINE_S.matcher(name).matches()) - return new Line(id, Product.SUBURBAN_TRAIN, name); + return new Line(id, network, Product.SUBURBAN_TRAIN, name); if ("S-Bahn".equals(trainName)) - return new Line(id, Product.SUBURBAN_TRAIN, "S" + Strings.nullToEmpty(trainNum)); + return new Line(id, network, Product.SUBURBAN_TRAIN, "S" + Strings.nullToEmpty(trainNum)); if ("S5X".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "S5X"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "S5X"); if (symbol != null && symbol.equals(name)) { final Matcher m = P_LINE_S_DB.matcher(symbol); if (m.matches()) - return new Line(id, Product.SUBURBAN_TRAIN, m.group(1)); + return new Line(id, network, Product.SUBURBAN_TRAIN, m.group(1)); } } else if ("2".equals(mot)) { - return new Line(id, Product.SUBWAY, name); + return new Line(id, network, Product.SUBWAY, name); } else if ("3".equals(mot) || "4".equals(mot)) { - return new Line(id, Product.TRAM, name); + return new Line(id, network, Product.TRAM, name); } else if ("5".equals(mot) || "6".equals(mot) || "7".equals(mot) || "10".equals(mot)) { if ("Schienenersatzverkehr".equals(name)) - return new Line(id, Product.BUS, "SEV"); + return new Line(id, network, Product.BUS, "SEV"); else - return new Line(id, Product.BUS, name); + return new Line(id, network, Product.BUS, name); } else if ("8".equals(mot)) { - return new Line(id, Product.CABLECAR, name); + return new Line(id, network, Product.CABLECAR, name); } else if ("9".equals(mot)) { - return new Line(id, Product.FERRY, name); + return new Line(id, network, Product.FERRY, name); } else if ("11".equals(mot)) { - return new Line(id, null, ParserUtils.firstNotEmpty(symbol, name)); + return new Line(id, network, null, ParserUtils.firstNotEmpty(symbol, name)); } throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName @@ -1811,8 +1812,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider } final String network = lineId.substring(0, lineId.indexOf(':')); - final Line parsedLine = parseLine(lineId, productType, symbol, symbol, null, trainType, trainNum, productName); - line = new Line(parsedLine.id, parsedLine.product, parsedLine.label, lineStyle(network, parsedLine.product, parsedLine.label)); + final Line parsedLine = parseLine(lineId, network, productType, symbol, symbol, null, trainType, trainNum, productName); + line = new Line(parsedLine.id, parsedLine.network, parsedLine.product, parsedLine.label, lineStyle(parsedLine.network, + parsedLine.product, parsedLine.label)); } XmlPullUtil.skipExit(pp, "m"); @@ -1980,9 +1982,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider final String trainType = ParserUtils.firstNotEmpty(slTrainType, itdTrainType); final String trainName = ParserUtils.firstNotEmpty(slTrainName, itdTrainName); - final Line line = parseLine(slStateless, slMotType, slSymbol, slNumber, slNumber, trainType, slTrainNum, trainName); - - return new Line(line.id, line.product, line.label, lineStyle(divaNetwork, line.product, line.label), itdMessage); + final Line line = parseLine(slStateless, divaNetwork, slMotType, slSymbol, slNumber, slNumber, trainType, slTrainNum, trainName); + return new Line(line.id, line.network, line.product, line.label, lineStyle(line.network, line.product, line.label), itdMessage); } private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+"); @@ -2524,9 +2525,10 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider final Line line; if ("AST".equals(motSymbol)) - line = new Line(null, Product.BUS, "AST"); + line = new Line(null, divaNetwork, Product.BUS, "AST"); else - line = parseLine(lineId, motType, motSymbol, motShortName, motName, motTrainType, motShortName, motTrainName); + line = parseLine(lineId, divaNetwork, motType, motSymbol, motShortName, motName, motTrainType, motShortName, + motTrainName); final Integer departureDelay; final Integer arrivalDelay; @@ -2700,8 +2702,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider final Set lineAttrs = new HashSet(); if (wheelChairAccess || lowFloorVehicle) lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS); - final Line styledLine = new Line(line.id, line.product, line.label, lineStyle(divaNetwork, line.product, line.label), - lineAttrs); + final Line styledLine = new Line(line.id, line.network, line.product, line.label, lineStyle(line.network, line.product, + line.label), lineAttrs); final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime : departureTime, departureTime != null ? departureTime : null, departurePosition, null); diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 57c0944a..630ad3ec 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -3115,14 +3115,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider { if (attrs.length == 0) { - return new Line(null, product, normalizedName, lineStyle(null, product, normalizedName), comment); + return new Line(null, null, product, normalizedName, lineStyle(null, product, normalizedName), comment); } else { final Set attrSet = new HashSet(); for (final Line.Attr attr : attrs) attrSet.add(attr); - return new Line(null, product, normalizedName, lineStyle(null, product, normalizedName), attrSet, comment); + return new Line(null, null, product, normalizedName, lineStyle(null, product, normalizedName), attrSet, comment); } } } diff --git a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java index f9026d91..94cfd479 100644 --- a/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractNavitiaProvider.java @@ -406,7 +406,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider final String color = colorHex.equals("000000") ? "#FFFFFF" : "#" + colorHex; final Style lineStyle = getLineStyle(product, code, color); - return new Line(lineId, product, code, lineStyle); + return new Line(lineId, null, product, code, lineStyle); } catch (final JSONException jsonExc) { @@ -591,7 +591,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider final String code = jsonLine.getString("code"); final String color = "#" + jsonLine.getString("color"); final Style lineStyle = getLineStyle(product, code, color); - return new Line(lineId, product, code, lineStyle); + return new Line(lineId, null, product, code, lineStyle); } catch (final JSONException jsonExc) { diff --git a/enabler/src/de/schildbach/pte/AbstractTsiProvider.java b/enabler/src/de/schildbach/pte/AbstractTsiProvider.java index 74575397..70c96395 100644 --- a/enabler/src/de/schildbach/pte/AbstractTsiProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractTsiProvider.java @@ -273,7 +273,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider label.append(name); } - return new Line(id, product, label.toString()); + return new Line(id, operatorCode, product, label.toString()); } private List identifyLocation(final Location location) throws IOException @@ -576,7 +576,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider final String codeActivity = jsonOptString(ptrInfo, "CodeActivity"); final Line line = createLine(id, transportMode, lineNumber, lineName, operatorCode, codeActivity); - final Line styledLine = new Line(line.id, line.product, line.label, lineStyle(network, line.product, line.label)); + final Line styledLine = new Line(line.id, line.network, line.product, line.label, lineStyle(network, line.product, line.label)); return styledLine; } diff --git a/enabler/src/de/schildbach/pte/AvvProvider.java b/enabler/src/de/schildbach/pte/AvvProvider.java index da6968d9..64ca5b03 100644 --- a/enabler/src/de/schildbach/pte/AvvProvider.java +++ b/enabler/src/de/schildbach/pte/AvvProvider.java @@ -42,16 +42,17 @@ public class AvvProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("Regionalbahn".equals(trainName) && symbol != null) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/BayernProvider.java b/enabler/src/de/schildbach/pte/BayernProvider.java index 319a2613..98f4170b 100644 --- a/enabler/src/de/schildbach/pte/BayernProvider.java +++ b/enabler/src/de/schildbach/pte/BayernProvider.java @@ -59,44 +59,45 @@ public class BayernProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("M".equals(trainType) && trainNum != null && trainName != null && trainName.endsWith("Meridian")) - return new Line(id, Product.REGIONAL_TRAIN, "M" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "M" + trainNum); if ("ZUG".equals(trainType) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); } else if ("16".equals(mot)) { if ("EC".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "EC" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "EC" + trainNum); if ("IC".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "IC" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "IC" + trainNum); if ("ICE".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "ICE" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "ICE" + trainNum); if ("CNL".equals(trainType) && trainNum != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "CNL" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "CNL" + trainNum); if ("THA".equals(trainType) && trainNum != null) // Thalys - return new Line(id, Product.HIGH_SPEED_TRAIN, "THA" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "THA" + trainNum); if ("TGV".equals(trainType) && trainNum != null) // Train a grande Vitesse - return new Line(id, Product.HIGH_SPEED_TRAIN, "TGV" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "TGV" + trainNum); if ("RJ".equals(trainType) && trainNum != null) // railjet - return new Line(id, Product.HIGH_SPEED_TRAIN, "RJ" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "RJ" + trainNum); if ("WB".equals(trainType) && trainNum != null) // WESTbahn - return new Line(id, Product.HIGH_SPEED_TRAIN, "WB" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "WB" + trainNum); if ("HKX".equals(trainType) && trainNum != null) // Hamburg-Köln-Express - return new Line(id, Product.HIGH_SPEED_TRAIN, "HKX" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "HKX" + trainNum); if ("D".equals(trainType) && trainNum != null) // Schnellzug - return new Line(id, Product.HIGH_SPEED_TRAIN, "D" + trainNum); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "D" + trainNum); if ("IR".equals(trainType) && trainNum != null) // InterRegio - return new Line(id, Product.REGIONAL_TRAIN, "IR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "IR" + trainNum); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } @Override diff --git a/enabler/src/de/schildbach/pte/InvgProvider.java b/enabler/src/de/schildbach/pte/InvgProvider.java index b01cc566..b08b825b 100644 --- a/enabler/src/de/schildbach/pte/InvgProvider.java +++ b/enabler/src/de/schildbach/pte/InvgProvider.java @@ -328,28 +328,28 @@ public class InvgProvider extends AbstractHafasProvider if (mBus.matches()) { final String label = mBus.group(1); - return new Line(null, Product.BUS, label, lineStyle(null, Product.BUS, label)); + return new Line(null, null, Product.BUS, label, lineStyle(null, Product.BUS, label)); } final Matcher mNachtbus = P_NORMALIZE_LINE_NACHTBUS.matcher(line); if (mNachtbus.matches()) { final String label = "N" + mNachtbus.group(1); - return new Line(null, Product.BUS, label, lineStyle(null, Product.BUS, label)); + return new Line(null, null, Product.BUS, label, lineStyle(null, Product.BUS, label)); } final Matcher mBusS = P_NORMALIZE_LINE_BUS_S.matcher(line); if (mBusS.matches()) { final String label = "S" + mBusS.group(1); - return new Line(null, Product.BUS, label, lineStyle(null, Product.BUS, label)); + return new Line(null, null, Product.BUS, label, lineStyle(null, Product.BUS, label)); } final Matcher mBusX = P_NORMALIZE_LINE_BUS_X.matcher(line); if (mBusX.matches()) { final String label = "X" + mBusX.group(1); - return new Line(null, Product.BUS, label, lineStyle(null, Product.BUS, label)); + return new Line(null, null, Product.BUS, label, lineStyle(null, Product.BUS, label)); } } diff --git a/enabler/src/de/schildbach/pte/KvvProvider.java b/enabler/src/de/schildbach/pte/KvvProvider.java index 8a782638..b031be9f 100644 --- a/enabler/src/de/schildbach/pte/KvvProvider.java +++ b/enabler/src/de/schildbach/pte/KvvProvider.java @@ -51,17 +51,18 @@ public class KvvProvider extends AbstractEfaProvider private static final Pattern P_LINE = Pattern.compile("(.*?)\\s+\\([\\w/]+\\)", Pattern.CASE_INSENSITIVE); @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if (name != null) { final Matcher m = P_LINE.matcher(name); if (m.matches()) - return super.parseLine(id, mot, symbol, m.group(1), longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, m.group(1), longName, trainType, trainNum, trainName); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); // TODO check for " (Ersatzverkehr)" } diff --git a/enabler/src/de/schildbach/pte/MetProvider.java b/enabler/src/de/schildbach/pte/MetProvider.java index 1ac4cebd..aba7fbe7 100644 --- a/enabler/src/de/schildbach/pte/MetProvider.java +++ b/enabler/src/de/schildbach/pte/MetProvider.java @@ -49,27 +49,28 @@ public class MetProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("Regional Train :".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("Regional Train".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, null); + return new Line(id, network, Product.REGIONAL_TRAIN, null); if ("vPK".equals(symbol) && "Regional Train Pakenham".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "V/Line"); + return new Line(id, network, Product.REGIONAL_TRAIN, "V/Line"); } else if ("1".equals(mot)) { if (trainType == null && trainNum != null) - return new Line(id, Product.SUBURBAN_TRAIN, trainNum); + return new Line(id, network, Product.SUBURBAN_TRAIN, trainNum); if ("Metropolitan Train".equals(trainName) && trainNum == null) - return new Line(id, Product.SUBURBAN_TRAIN, Strings.nullToEmpty(name)); + return new Line(id, network, Product.SUBURBAN_TRAIN, Strings.nullToEmpty(name)); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/MvvProvider.java b/enabler/src/de/schildbach/pte/MvvProvider.java index b9c14e9f..3abdc4cd 100644 --- a/enabler/src/de/schildbach/pte/MvvProvider.java +++ b/enabler/src/de/schildbach/pte/MvvProvider.java @@ -52,26 +52,27 @@ public class MvvProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("Mittelrheinbahn (trans regio)".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "MiRhBa"); + return new Line(id, network, Product.REGIONAL_TRAIN, "MiRhBa"); if ("Süd-Thüringen-Bahn".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "STB"); + return new Line(id, network, Product.REGIONAL_TRAIN, "STB"); if ("agilis".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "agilis"); + return new Line(id, network, Product.REGIONAL_TRAIN, "agilis"); if ("SBB".equals(trainName)) - return new Line(id, Product.REGIONAL_TRAIN, "SBB"); + return new Line(id, network, Product.REGIONAL_TRAIN, "SBB"); if ("A".equals(trainNum)) - return new Line(id, Product.SUBURBAN_TRAIN, "A"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "A"); if ("DB AG".equals(trainName)) - return new Line(id, null, symbol); + return new Line(id, network, null, symbol); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Pattern P_POSITION = Pattern.compile("(Fern|Regio|S-Bahn|U-Bahn|U\\d(?:/U\\d)*)\\s+(.*)"); diff --git a/enabler/src/de/schildbach/pte/NvbwProvider.java b/enabler/src/de/schildbach/pte/NvbwProvider.java index 7ec15bf2..7b2324d0 100644 --- a/enabler/src/de/schildbach/pte/NvbwProvider.java +++ b/enabler/src/de/schildbach/pte/NvbwProvider.java @@ -54,37 +54,38 @@ public class NvbwProvider extends AbstractEfaProvider private static final Pattern P_LINE_S_AVG_VBK = Pattern.compile("(S\\d+) \\((?:AVG|VBK)\\)"); @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if (("ICE".equals(trainName) || "InterCityExpress".equals(trainName)) && trainNum == null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "ICE"); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "ICE"); if ("InterCity".equals(trainName) && trainNum == null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "IC"); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "IC"); if ("Fernreisezug externer EU".equals(trainName) && trainNum == null) - return new Line(id, Product.HIGH_SPEED_TRAIN, null); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, null); if ("SuperCity".equals(trainName) && trainNum == null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "SC"); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "SC"); if ("InterRegio".equals(longName) && symbol == null) - return new Line(id, Product.REGIONAL_TRAIN, "IR"); + return new Line(id, network, Product.REGIONAL_TRAIN, "IR"); if ("REGIOBAHN".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, null); + return new Line(id, network, Product.REGIONAL_TRAIN, null); if ("RR".equals(trainType) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "RR"); + return new Line(id, network, Product.REGIONAL_TRAIN, "RR"); if ("Meridian".equals(trainName) && symbol != null) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("CityBahn".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "CB"); + return new Line(id, network, Product.REGIONAL_TRAIN, "CB"); if ("Trilex".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "TLX"); + return new Line(id, network, Product.REGIONAL_TRAIN, "TLX"); if ("Bay. Seenschifffahrt".equals(trainName) && symbol != null) - return new Line(id, Product.FERRY, symbol); + return new Line(id, network, Product.FERRY, symbol); if ("Nahverkehrszug von Dritten".equals(trainName) && trainNum == null) - return new Line(id, null, "Zug"); + return new Line(id, network, null, "Zug"); if ("DB".equals(trainName) && trainNum == null) - return new Line(id, null, "DB"); + return new Line(id, network, null, "DB"); } else if ("1".equals(mot)) { @@ -92,11 +93,11 @@ public class NvbwProvider extends AbstractEfaProvider { final Matcher m = P_LINE_S_AVG_VBK.matcher(symbol); if (m.matches()) - return new Line(id, Product.SUBURBAN_TRAIN, m.group(1)); + return new Line(id, network, Product.SUBURBAN_TRAIN, m.group(1)); } } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } @Override diff --git a/enabler/src/de/schildbach/pte/SfProvider.java b/enabler/src/de/schildbach/pte/SfProvider.java index 21c0260b..1a42401c 100644 --- a/enabler/src/de/schildbach/pte/SfProvider.java +++ b/enabler/src/de/schildbach/pte/SfProvider.java @@ -54,60 +54,61 @@ public class SfProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if (("XAA".equals(symbol) || "Daly City / Fremont".equals(symbol)) && "Daly City / Fremont".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "DALY/FRMT"); + return new Line(id, network, Product.REGIONAL_TRAIN, "DALY/FRMT"); if (("FRE".equals(symbol) || "Fremont / Daly City".equals(symbol)) && "Fremont / Daly City".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "FRMT/DALY"); + 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, Product.REGIONAL_TRAIN, "FRMT/RICH"); + 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, Product.REGIONAL_TRAIN, "RICH/FRMT"); + 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)) - return new Line(id, Product.REGIONAL_TRAIN, "PITT/SFIA"); + 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)) - return new Line(id, Product.REGIONAL_TRAIN, "SFIA/PITT"); + return new Line(id, network, Product.REGIONAL_TRAIN, "SFIA/PITT"); if (("XAF".equals(symbol) || "Millbrae / Richmond".equals(symbol)) && "Millbrae / Richmond".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "MLBR/RICH"); + return new Line(id, network, Product.REGIONAL_TRAIN, "MLBR/RICH"); if (("XAG".equals(symbol) || "Richmond / Millbrae".equals(symbol)) && "Richmond / Millbrae".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "RICH/MLBR"); + 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)) - return new Line(id, Product.REGIONAL_TRAIN, "DALY/DUBL"); + 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)) - return new Line(id, Product.REGIONAL_TRAIN, "DUBL/DALY"); + return new Line(id, network, Product.REGIONAL_TRAIN, "DUBL/DALY"); if ("LOC".equals(symbol) && "LOCAL".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "Local"); + return new Line(id, network, Product.REGIONAL_TRAIN, "Local"); if ("CAP".equals(symbol) && "CAPITOL".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "Capitol"); + return new Line(id, network, Product.REGIONAL_TRAIN, "Capitol"); if ("OAK".equals(symbol) && "OAK / Coliseum".equals(name)) - return new Line(id, Product.REGIONAL_TRAIN, "OAK/Coliseum"); + return new Line(id, network, Product.REGIONAL_TRAIN, "OAK/Coliseum"); if ("Muni Rail".equals(trainName) && symbol != null) // Muni - return new Line(id, Product.TRAM, symbol); + return new Line(id, network, Product.TRAM, symbol); if (trainType == null && "F".equals(trainNum)) // Muni Historic Streetcar - return new Line(id, Product.TRAM, "F"); + return new Line(id, network, Product.TRAM, "F"); if (trainType == null && "J".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "J"); + return new Line(id, network, Product.TRAM, "J"); if (trainType == null && "K".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "K"); + return new Line(id, network, Product.TRAM, "K"); if (trainType == null && "KT".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "KT"); + return new Line(id, network, Product.TRAM, "KT"); if (trainType == null && "L".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "L"); + return new Line(id, network, Product.TRAM, "L"); if (trainType == null && "M".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "M"); + return new Line(id, network, Product.TRAM, "M"); if (trainType == null && "N".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "N"); + return new Line(id, network, Product.TRAM, "N"); if (trainType == null && "T".equals(trainNum)) // Muni Metro - return new Line(id, Product.TRAM, "T"); + return new Line(id, network, Product.TRAM, "T"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/StvProvider.java b/enabler/src/de/schildbach/pte/StvProvider.java index 00e2ead1..42d5c373 100644 --- a/enabler/src/de/schildbach/pte/StvProvider.java +++ b/enabler/src/de/schildbach/pte/StvProvider.java @@ -37,15 +37,16 @@ public class StvProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("M".equals(trainType) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "M" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "M" + trainNum); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } } diff --git a/enabler/src/de/schildbach/pte/SydneyProvider.java b/enabler/src/de/schildbach/pte/SydneyProvider.java index 96d7185a..00a13fa2 100644 --- a/enabler/src/de/schildbach/pte/SydneyProvider.java +++ b/enabler/src/de/schildbach/pte/SydneyProvider.java @@ -54,37 +54,38 @@ public class SydneyProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("1".equals(mot)) { if ("BMT".equals(symbol) || "Blue Mountains Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "BMT"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "BMT"); if ("CCN".equals(symbol) || "Central Coast & Newcastle Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "CCN"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "CCN"); if ("SHL".equals(symbol) || "Southern Highlands Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "SHL"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "SHL"); if ("SCO".equals(symbol) || "South Coast Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "SCO"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "SCO"); if ("HUN".equals(symbol) || "Hunter Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "HUN"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "HUN"); if ("T1".equals(symbol) || "T1 North Shore & Northern Line".equals(symbol) || "T1 Northern Line".equals(symbol) || "T1 Western Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T1"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T1"); if ("T2".equals(symbol) || "T2 Inner West & South Line".equals(symbol) || "T2 Airport Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T2"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T2"); if ("T3".equals(symbol) || "T3 Bankstown Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T3"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T3"); if ("T4".equals(symbol) || "T4 Eastern Suburbs & Illawarra Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T4"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T4"); if ("T5".equals(symbol) || "T5 Cumberland Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T5"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T5"); if ("T6".equals(symbol) || "T6 Carlingford Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T6"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T6"); if ("T7".equals(symbol) || "T7 Olympic Park Line".equals(symbol)) - return new Line(id, Product.SUBURBAN_TRAIN, "T7"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "T7"); throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); @@ -92,7 +93,7 @@ public class SydneyProvider extends AbstractEfaProvider else if ("4".equals(mot)) { if ("L1".equals(symbol) || "L1 Dulwich Hill Line".equals(symbol)) - return new Line(id, Product.TRAM, "L1"); + return new Line(id, network, Product.TRAM, "L1"); throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); @@ -100,29 +101,29 @@ public class SydneyProvider extends AbstractEfaProvider else if ("9".equals(mot)) { if ("F1".equals(symbol) || "F1 Manly".equals(symbol)) - return new Line(id, Product.FERRY, "F1"); + return new Line(id, network, Product.FERRY, "F1"); if ("F2".equals(symbol) || "F2 Taronga Zoo".equals(symbol)) - return new Line(id, Product.FERRY, "F2"); + return new Line(id, network, Product.FERRY, "F2"); if ("F3".equals(symbol) || "F3 Parramatta River".equals(symbol)) - return new Line(id, Product.FERRY, "F3"); + return new Line(id, network, Product.FERRY, "F3"); if ("F4".equals(symbol) || "F4 Darling Harbour".equals(symbol)) - return new Line(id, Product.FERRY, "F4"); + return new Line(id, network, Product.FERRY, "F4"); if ("F5".equals(symbol) || "F5 Neutral Bay".equals(symbol)) - return new Line(id, Product.FERRY, "F5"); + return new Line(id, network, Product.FERRY, "F5"); if ("F6".equals(symbol) || "F6 Mosman Bay".equals(symbol)) - return new Line(id, Product.FERRY, "F6"); + return new Line(id, network, Product.FERRY, "F6"); if ("F7".equals(symbol) || "F7 Eastern Suburbs".equals(symbol)) - return new Line(id, Product.FERRY, "F7"); + return new Line(id, network, Product.FERRY, "F7"); if ("Private ferry servic".equals(trainName) && symbol != null) - return new Line(id, Product.FERRY, symbol); + return new Line(id, network, Product.FERRY, symbol); if ("MFF".equals(symbol) || "Manly Fast Ferry".equals(name)) - return new Line(id, Product.FERRY, "MFF"); + return new Line(id, network, Product.FERRY, "MFF"); throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/TfiProvider.java b/enabler/src/de/schildbach/pte/TfiProvider.java index f0fa2bf4..ae240cdd 100644 --- a/enabler/src/de/schildbach/pte/TfiProvider.java +++ b/enabler/src/de/schildbach/pte/TfiProvider.java @@ -48,19 +48,20 @@ public class TfiProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("DART".equals(name)) - return new Line(id, Product.SUBURBAN_TRAIN, "DART"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "DART"); if ("Rail".equals(trainName) && trainNum == null) - return new Line(id, null, "Rail"); + return new Line(id, network, null, "Rail"); if ("Train".equals(name) && "Train".equals(symbol)) - return new Line(id, null, "Train"); + return new Line(id, network, null, "Train"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } } diff --git a/enabler/src/de/schildbach/pte/TlemProvider.java b/enabler/src/de/schildbach/pte/TlemProvider.java index 64a53579..2bfd82ca 100644 --- a/enabler/src/de/schildbach/pte/TlemProvider.java +++ b/enabler/src/de/schildbach/pte/TlemProvider.java @@ -68,16 +68,17 @@ public class TlemProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("1".equals(mot)) { if (trainType == null && ("DLR".equals(trainNum) || "Light Railway".equals(trainName))) - return new Line(id, Product.SUBURBAN_TRAIN, "DLR"); + return new Line(id, network, Product.SUBURBAN_TRAIN, "DLR"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/VblProvider.java b/enabler/src/de/schildbach/pte/VblProvider.java index 9f8d8fcc..4dd7b5d6 100644 --- a/enabler/src/de/schildbach/pte/VblProvider.java +++ b/enabler/src/de/schildbach/pte/VblProvider.java @@ -37,61 +37,62 @@ public class VblProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("BLS".equals(trainType) && trainNum != null) - return new Line(id, Product.REGIONAL_TRAIN, "BLS" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BLS" + trainNum); if ("ASM".equals(trainType) && trainNum != null) // Aare Seeland mobil - return new Line(id, Product.REGIONAL_TRAIN, "ASM" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ASM" + trainNum); if ("SOB".equals(trainType) && trainNum != null) // Schweizerische Südostbahn - return new Line(id, Product.REGIONAL_TRAIN, "SOB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "SOB" + trainNum); if ("RhB".equals(trainType) && trainNum != null) // Rhätische Bahn - return new Line(id, Product.REGIONAL_TRAIN, "RhB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "RhB" + trainNum); if ("AB-".equals(trainType) && trainNum != null) // Appenzeller Bahnen - return new Line(id, Product.REGIONAL_TRAIN, "AB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "AB" + trainNum); if ("BDW".equals(trainType) && trainNum != null) // BDWM Transport - return new Line(id, Product.REGIONAL_TRAIN, "BDW" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BDW" + trainNum); if ("ZB".equals(trainType) && trainNum != null) // Zentralbahn - return new Line(id, Product.REGIONAL_TRAIN, "ZB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "ZB" + trainNum); if ("TPF".equals(trainType) && trainNum != null) // Transports publics fribourgeois - return new Line(id, Product.REGIONAL_TRAIN, "TPF" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TPF" + trainNum); if ("MGB".equals(trainType) && trainNum != null) // Matterhorn Gotthard Bahn - return new Line(id, Product.REGIONAL_TRAIN, "MGB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MGB" + trainNum); if ("CJ".equals(trainType) && trainNum != null) // Chemins de fer du Jura - return new Line(id, Product.REGIONAL_TRAIN, "CJ" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "CJ" + trainNum); if ("LEB".equals(trainType) && trainNum != null) // Lausanne-Echallens-Bercher - return new Line(id, Product.REGIONAL_TRAIN, "LEB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "LEB" + trainNum); if ("FAR".equals(trainType) && trainNum != null) // Ferrovie Autolinee Regionali Ticinesi - return new Line(id, Product.REGIONAL_TRAIN, "FAR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "FAR" + trainNum); if ("WAB".equals(trainType) && trainNum != null) // Wengernalpbahn - return new Line(id, Product.REGIONAL_TRAIN, "WAB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "WAB" + trainNum); if ("JB".equals(trainType) && trainNum != null) // Jungfraubahn - return new Line(id, Product.REGIONAL_TRAIN, "JB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "JB" + trainNum); if ("NSt".equals(trainType) && trainNum != null) // Nyon-St-Cergue-Morez - return new Line(id, Product.REGIONAL_TRAIN, "NSt" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "NSt" + trainNum); if ("RA".equals(trainType) && trainNum != null) // Regionalps - return new Line(id, Product.REGIONAL_TRAIN, "RA" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "RA" + trainNum); if ("TRN".equals(trainType) && trainNum != null) // Transport Publics Neuchâtelois - return new Line(id, Product.REGIONAL_TRAIN, "TRN" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TRN" + trainNum); if ("TPC".equals(trainType) && trainNum != null) // Transports Publics du Chablais - return new Line(id, Product.REGIONAL_TRAIN, "TPC" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TPC" + trainNum); if ("MVR".equals(trainType) && trainNum != null) // Montreux-Vevey-Riviera - return new Line(id, Product.REGIONAL_TRAIN, "MVR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MVR" + trainNum); if ("MOB".equals(trainType) && trainNum != null) // Montreux-Oberland Bernois - return new Line(id, Product.REGIONAL_TRAIN, "MOB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "MOB" + trainNum); if ("TRA".equals(trainType) && trainNum != null) // Transports Vallée de Joux-Yverdon-Ste-Croix - return new Line(id, Product.REGIONAL_TRAIN, "TRA" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TRA" + trainNum); if ("TMR".equals(trainType) && trainNum != null) // Transports de Martigny et Régions - return new Line(id, Product.REGIONAL_TRAIN, "TMR" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "TMR" + trainNum); if ("GGB".equals(trainType) && trainNum != null) // Gornergratbahn - return new Line(id, Product.REGIONAL_TRAIN, "GGB" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "GGB" + trainNum); if ("BLM".equals(trainType) && trainNum != null) // Lauterbrunnen-Mürren - return new Line(id, Product.REGIONAL_TRAIN, "BLM" + trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, "BLM" + trainNum); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } } diff --git a/enabler/src/de/schildbach/pte/VgnProvider.java b/enabler/src/de/schildbach/pte/VgnProvider.java index c18e9a7c..a2f49737 100644 --- a/enabler/src/de/schildbach/pte/VgnProvider.java +++ b/enabler/src/de/schildbach/pte/VgnProvider.java @@ -41,20 +41,21 @@ public class VgnProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("R5(z)".equals(trainNum)) - return new Line(id, Product.REGIONAL_TRAIN, "R5(z)"); + return new Line(id, network, Product.REGIONAL_TRAIN, "R5(z)"); if ("R7(z)".equals(trainNum)) - return new Line(id, Product.REGIONAL_TRAIN, "R7(z)"); + return new Line(id, network, Product.REGIONAL_TRAIN, "R7(z)"); if ("R8(z)".equals(trainNum)) - return new Line(id, Product.REGIONAL_TRAIN, "R8(z)"); + return new Line(id, network, Product.REGIONAL_TRAIN, "R8(z)"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } @Override diff --git a/enabler/src/de/schildbach/pte/VmsProvider.java b/enabler/src/de/schildbach/pte/VmsProvider.java index 7676a3e3..f6f9c2c7 100644 --- a/enabler/src/de/schildbach/pte/VmsProvider.java +++ b/enabler/src/de/schildbach/pte/VmsProvider.java @@ -35,22 +35,23 @@ public class VmsProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("Ilztalbahn".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "ITB"); + return new Line(id, network, Product.REGIONAL_TRAIN, "ITB"); if ("Meridian".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "M"); + return new Line(id, network, Product.REGIONAL_TRAIN, "M"); if ("CityBahn".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "CB"); + return new Line(id, network, Product.REGIONAL_TRAIN, "CB"); if ("RE 3".equals(symbol) && "Zug".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "RE3"); + return new Line(id, network, Product.REGIONAL_TRAIN, "RE3"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } } diff --git a/enabler/src/de/schildbach/pte/VrnProvider.java b/enabler/src/de/schildbach/pte/VrnProvider.java index ecee886f..1f41f4e0 100644 --- a/enabler/src/de/schildbach/pte/VrnProvider.java +++ b/enabler/src/de/schildbach/pte/VrnProvider.java @@ -42,15 +42,16 @@ public class VrnProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("InterRegio".equals(longName) && symbol == null) - return new Line(id, Product.REGIONAL_TRAIN, "IR"); + return new Line(id, network, Product.REGIONAL_TRAIN, "IR"); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, 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 34c36177..60296a5b 100644 --- a/enabler/src/de/schildbach/pte/VrrProvider.java +++ b/enabler/src/de/schildbach/pte/VrrProvider.java @@ -48,36 +48,37 @@ public class VrrProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if (trainType == null && "RB67/71".equals(trainNum)) - return new Line(id, Product.REGIONAL_TRAIN, trainNum); + return new Line(id, network, Product.REGIONAL_TRAIN, trainNum); if ("Regionalbahn".equals(trainName) && symbol != null) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if ("NordWestBahn".equals(trainName) && symbol != null) - return new Line(id, Product.REGIONAL_TRAIN, symbol); + return new Line(id, network, Product.REGIONAL_TRAIN, symbol); if (trainType == null && "SEV7".equals(trainNum)) - return new Line(id, Product.BUS, trainNum); + return new Line(id, network, Product.BUS, trainNum); if ("Zug".equals(longName)) - return new Line(id, null, "Zug"); + return new Line(id, network, null, "Zug"); } else if ("11".equals(mot)) { // Wuppertaler Schwebebahn & SkyTrain D'dorf if ("Schwebebahn".equals(trainName) || (longName != null && longName.startsWith("Schwebebahn"))) - return new Line(id, Product.CABLECAR, name); + return new Line(id, network, Product.CABLECAR, name); // H-Bahn TU Dortmund if ("H-Bahn".equals(trainName) || (longName != null && longName.startsWith("H-Bahn"))) - return new Line(id, Product.CABLECAR, name); + return new Line(id, network, Product.CABLECAR, name); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/VvoProvider.java b/enabler/src/de/schildbach/pte/VvoProvider.java index 34f445e0..7cc77d1e 100644 --- a/enabler/src/de/schildbach/pte/VvoProvider.java +++ b/enabler/src/de/schildbach/pte/VvoProvider.java @@ -45,31 +45,32 @@ public class VvoProvider extends AbstractEfaProvider } @Override - protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, - final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, + final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + final @Nullable String trainName) { if ("0".equals(mot)) { if ("Twoje Linie Kolejowe".equals(trainName) && symbol != null) - return new Line(id, Product.HIGH_SPEED_TRAIN, "TLK" + symbol); + return new Line(id, network, Product.HIGH_SPEED_TRAIN, "TLK" + symbol); if ("Regionalbahn".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, null); + return new Line(id, network, Product.REGIONAL_TRAIN, null); if ("Ostdeutsche Eisenbahn GmbH".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "OE"); + return new Line(id, network, Product.REGIONAL_TRAIN, "OE"); if ("Meridian".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "M"); + return new Line(id, network, Product.REGIONAL_TRAIN, "M"); if ("trilex".equals(longName)) - return new Line(id, Product.REGIONAL_TRAIN, "TLX"); + return new Line(id, network, Product.REGIONAL_TRAIN, "TLX"); if ("Trilex".equals(trainName) && trainNum == null) - return new Line(id, Product.REGIONAL_TRAIN, "TLX"); + return new Line(id, network, Product.REGIONAL_TRAIN, "TLX"); if ("U28".equals(symbol)) // Nationalparkbahn - return new Line(id, Product.REGIONAL_TRAIN, "U28"); + return new Line(id, network, Product.REGIONAL_TRAIN, "U28"); if ("Fernbus".equals(trainName) && trainNum == null) - return new Line(id, Product.BUS, trainName); + return new Line(id, network, Product.BUS, trainName); } - return super.parseLine(id, mot, symbol, name, longName, trainType, trainNum, trainName); + return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); } } diff --git a/enabler/src/de/schildbach/pte/dto/Line.java b/enabler/src/de/schildbach/pte/dto/Line.java index 43ef66bb..a903ff46 100644 --- a/enabler/src/de/schildbach/pte/dto/Line.java +++ b/enabler/src/de/schildbach/pte/dto/Line.java @@ -40,40 +40,43 @@ public final class Line implements Serializable, Comparable private static final long serialVersionUID = -5642533805998375070L; public final @Nullable String id; + public final @Nullable String network; public final @Nullable Product product; public final @Nullable String label; public final @Nullable Style style; public final @Nullable Set attrs; public final @Nullable String message; - public static final Line FOOTWAY = new Line(null, null, null); - public static final Line TRANSFER = new Line(null, null, null); - public static final Line SECURE_CONNECTION = new Line(null, null, null); - public static final Line DO_NOT_CHANGE = new Line(null, null, null); + public static final Line FOOTWAY = new Line(null, null, null, null); + public static final Line TRANSFER = new Line(null, null, null, null); + public static final Line SECURE_CONNECTION = new Line(null, null, null, null); + public static final Line DO_NOT_CHANGE = new Line(null, null, null, null); - public Line(final String id, final Product product, final String label) + public Line(final String id, final String network, final Product product, final String label) { - this(id, product, label, null, null, null); + this(id, network, product, label, null, null, null); } - public Line(final String id, final Product product, final String label, final Style style) + public Line(final String id, final String network, final Product product, final String label, final Style style) { - this(id, product, label, style, null, null); + this(id, network, product, label, style, null, null); } - public Line(final String id, final Product product, final String label, final Style style, final String message) + public Line(final String id, final String network, final Product product, final String label, final Style style, final String message) { - this(id, product, label, style, null, message); + this(id, network, product, label, style, null, message); } - public Line(final String id, final Product product, final String label, final Style style, final Set attrs) + public Line(final String id, final String network, final Product product, final String label, final Style style, final Set attrs) { - this(id, product, label, style, attrs, null); + this(id, network, product, label, style, attrs, null); } - public Line(final String id, final Product product, final String label, final Style style, final Set attrs, final String message) + public Line(final String id, final String network, final Product product, final String label, final Style style, final Set attrs, + final String message) { this.id = id; + this.network = network; this.product = product; this.label = label; this.style = style; @@ -101,21 +104,26 @@ public final class Line implements Serializable, Comparable if (!(o instanceof Line)) return false; final Line other = (Line) o; + if (!Objects.equal(this.network, other.network)) + return false; if (!Objects.equal(this.product, other.product)) return false; - return Objects.equal(this.label, other.label); + if (!Objects.equal(this.label, other.label)) + return false; + return true; } @Override public int hashCode() { - return Objects.hashCode(product, label); + return Objects.hashCode(network, product, label); } @Override public String toString() { return MoreObjects.toStringHelper(this) // + .addValue(network) // .addValue(product) // .addValue(label) // .toString(); @@ -124,6 +132,7 @@ public final class Line implements Serializable, Comparable public int compareTo(final Line other) { return ComparisonChain.start() // + .compare(this.network, other.network, Ordering.natural().nullsLast()) // .compare(this.product, other.product, Ordering.natural().nullsLast()) // .compare(this.label, other.label, Ordering.natural().nullsLast()) // .result();