Include network with Line.

This commit is contained in:
Andreas Schildbach 2015-02-16 14:58:53 +01:00
parent 39008afc0b
commit 2038a740e2
23 changed files with 446 additions and 418 deletions

View file

@ -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<Line.Attr> lineAttrs = new HashSet<Line.Attr>();
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);

View file

@ -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<Line.Attr> attrSet = new HashSet<Line.Attr>();
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);
}
}
}

View file

@ -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)
{

View file

@ -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<Location> 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;
}

View file

@ -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<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -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

View file

@ -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));
}
}

View file

@ -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)"
}

View file

@ -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<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -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+(.*)");

View file

@ -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

View file

@ -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<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -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);
}
}

View file

@ -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<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -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);
}
}

View file

@ -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<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -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);
}
}

View file

@ -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

View file

@ -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);
}
}

View file

@ -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);
}
}

View file

@ -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<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -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);
}
}

View file

@ -40,40 +40,43 @@ public final class Line implements Serializable, Comparable<Line>
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<Attr> 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<Attr> attrs)
public Line(final String id, final String network, final Product product, final String label, final Style style, final Set<Attr> 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<Attr> attrs, final String message)
public Line(final String id, final String network, final Product product, final String label, final Style style, final Set<Attr> 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<Line>
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<Line>
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();