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_S_DB = Pattern.compile("(S\\d+) \\((?:DB Regio AG)\\)");
private static final Pattern P_LINE_NUMBER = Pattern.compile("\\d+"); 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, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum,
final @Nullable String trainName)
{ {
if (mot == null) if (mot == null)
{ {
@ -1013,33 +1014,33 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
{ {
final String str = Strings.nullToEmpty(name); final String str = Strings.nullToEmpty(name);
if (trainName.equals("S-Bahn")) 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")) 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")) 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")) if (trainName.equals("Badner Bahn"))
return new Line(id, Product.TRAM, str); return new Line(id, network, Product.TRAM, str);
if (trainName.equals("Stadtbus")) if (trainName.equals("Stadtbus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Citybus")) if (trainName.equals("Citybus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Regionalbus")) if (trainName.equals("Regionalbus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("ÖBB-Postbus")) if (trainName.equals("ÖBB-Postbus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Autobus")) if (trainName.equals("Autobus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Discobus")) if (trainName.equals("Discobus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Nachtbus")) if (trainName.equals("Nachtbus"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Anrufsammeltaxi")) if (trainName.equals("Anrufsammeltaxi"))
return new Line(id, Product.BUS, str); return new Line(id, network, Product.BUS, str);
if (trainName.equals("Ersatzverkehr")) 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")) 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)) else if ("0".equals(mot))
@ -1047,398 +1048,398 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String trainNumStr = Strings.nullToEmpty(trainNum); final String trainNumStr = Strings.nullToEmpty(trainNum);
if (("EC".equals(trainType) || "EuroCity".equals(trainName) || "Eurocity".equals(trainName)) && trainNum != null) 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) 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) 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) 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) 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) 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 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) 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) 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) 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) 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) 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 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) 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) 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 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 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 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 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) 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 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) 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) 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)) 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)) 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)) 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)) 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)) 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)) 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()) 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)) 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)) 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)) 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)) 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 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) 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()) 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)) 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)) 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)) 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)) 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()) 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)) 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)) 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)) 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) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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 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 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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) if ("P".equals(trainType) || "BayernBahn Betriebs-GmbH".equals(trainName) || "Brohltalbahn".equals(trainName)
|| "Kasbachtalbahn".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)) 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)) 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 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 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)) 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)) 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) 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)) 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)) 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)) 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 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)) 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)) 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)) 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 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)) 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 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 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 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) 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 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 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 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 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 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 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)) 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)) 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)) 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 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)) 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 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)) 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 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)) 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)) 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)) 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)) 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 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)) 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)) 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 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) 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) 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) 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) 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) 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) 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) 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 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) 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)) 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 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, if ("RER".equals(trainName) && symbol != null && symbol.length() == 1) // Réseau Express Régional,
// Frankreich // Frankreich
return new Line(id, Product.SUBURBAN_TRAIN, symbol); return new Line(id, network, Product.SUBURBAN_TRAIN, symbol);
if ("S".equals(trainType)) 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)) 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)) 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)) 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) if ("SEV".equals(trainType) || "SEV".equals(trainNum) || "SEV".equals(trainName) || "SEV".equals(symbol) || "BSV".equals(trainType)
|| "Ersatzverkehr".equals(trainName) || "Schienenersatzverkehr".equals(trainName)) || "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 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 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 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 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) 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) 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) 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)) if ("Train".equals(trainName))
return new Line(id, null, null); return new Line(id, network, null, null);
// generic // generic
if (trainName != null && trainType == null && trainNum == null) 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)) else if ("1".equals(mot))
{ {
if (symbol != null && P_LINE_S.matcher(symbol).matches()) 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()) 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)) 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)) 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)) if (symbol != null && symbol.equals(name))
{ {
final Matcher m = P_LINE_S_DB.matcher(symbol); final Matcher m = P_LINE_S_DB.matcher(symbol);
if (m.matches()) 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)) 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)) 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)) else if ("5".equals(mot) || "6".equals(mot) || "7".equals(mot) || "10".equals(mot))
{ {
if ("Schienenersatzverkehr".equals(name)) if ("Schienenersatzverkehr".equals(name))
return new Line(id, Product.BUS, "SEV"); return new Line(id, network, Product.BUS, "SEV");
else else
return new Line(id, Product.BUS, name); return new Line(id, network, Product.BUS, name);
} }
else if ("8".equals(mot)) 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)) 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)) 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 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 String network = lineId.substring(0, lineId.indexOf(':'));
final Line parsedLine = parseLine(lineId, productType, symbol, symbol, null, trainType, trainNum, productName); final Line parsedLine = parseLine(lineId, network, productType, symbol, symbol, null, trainType, trainNum, productName);
line = new Line(parsedLine.id, parsedLine.product, parsedLine.label, lineStyle(network, parsedLine.product, parsedLine.label)); line = new Line(parsedLine.id, parsedLine.network, parsedLine.product, parsedLine.label, lineStyle(parsedLine.network,
parsedLine.product, parsedLine.label));
} }
XmlPullUtil.skipExit(pp, "m"); XmlPullUtil.skipExit(pp, "m");
@ -1980,9 +1982,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String trainType = ParserUtils.firstNotEmpty(slTrainType, itdTrainType); final String trainType = ParserUtils.firstNotEmpty(slTrainType, itdTrainType);
final String trainName = ParserUtils.firstNotEmpty(slTrainName, itdTrainName); final String trainName = ParserUtils.firstNotEmpty(slTrainName, itdTrainName);
final Line line = parseLine(slStateless, slMotType, slSymbol, slNumber, slNumber, trainType, slTrainNum, trainName); 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);
return new Line(line.id, line.product, line.label, lineStyle(divaNetwork, line.product, line.label), itdMessage);
} }
private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+"); private static final Pattern P_STATION_NAME_WHITESPACE = Pattern.compile("\\s+");
@ -2524,9 +2525,10 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final Line line; final Line line;
if ("AST".equals(motSymbol)) if ("AST".equals(motSymbol))
line = new Line(null, Product.BUS, "AST"); line = new Line(null, divaNetwork, Product.BUS, "AST");
else 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 departureDelay;
final Integer arrivalDelay; final Integer arrivalDelay;
@ -2700,8 +2702,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final Set<Line.Attr> lineAttrs = new HashSet<Line.Attr>(); final Set<Line.Attr> lineAttrs = new HashSet<Line.Attr>();
if (wheelChairAccess || lowFloorVehicle) if (wheelChairAccess || lowFloorVehicle)
lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS); lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS);
final Line styledLine = new Line(line.id, line.product, line.label, lineStyle(divaNetwork, line.product, line.label), final Line styledLine = new Line(line.id, line.network, line.product, line.label, lineStyle(line.network, line.product,
lineAttrs); line.label), lineAttrs);
final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime
: departureTime, departureTime != null ? departureTime : null, departurePosition, null); : departureTime, departureTime != null ? departureTime : null, departurePosition, null);

View file

@ -3115,14 +3115,14 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
{ {
if (attrs.length == 0) 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 else
{ {
final Set<Line.Attr> attrSet = new HashSet<Line.Attr>(); final Set<Line.Attr> attrSet = new HashSet<Line.Attr>();
for (final Line.Attr attr : attrs) for (final Line.Attr attr : attrs)
attrSet.add(attr); 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 String color = colorHex.equals("000000") ? "#FFFFFF" : "#" + colorHex;
final Style lineStyle = getLineStyle(product, code, 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) catch (final JSONException jsonExc)
{ {
@ -591,7 +591,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider
final String code = jsonLine.getString("code"); final String code = jsonLine.getString("code");
final String color = "#" + jsonLine.getString("color"); final String color = "#" + jsonLine.getString("color");
final Style lineStyle = getLineStyle(product, code, 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) catch (final JSONException jsonExc)
{ {

View file

@ -273,7 +273,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
label.append(name); 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 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 String codeActivity = jsonOptString(ptrInfo, "CodeActivity");
final Line line = createLine(id, transportMode, lineNumber, lineName, operatorCode, 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; return styledLine;
} }

View file

@ -42,16 +42,17 @@ public class AvvProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("Regionalbahn".equals(trainName) && symbol != null) 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>(); private static final Map<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -59,44 +59,45 @@ public class BayernProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("M".equals(trainType) && trainNum != null && trainName != null && trainName.endsWith("Meridian")) 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) 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)) else if ("16".equals(mot))
{ {
if ("EC".equals(trainType) && trainNum != null) 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) 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) 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) 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 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 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 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 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 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 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 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 @Override

View file

@ -328,28 +328,28 @@ public class InvgProvider extends AbstractHafasProvider
if (mBus.matches()) if (mBus.matches())
{ {
final String label = mBus.group(1); 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); final Matcher mNachtbus = P_NORMALIZE_LINE_NACHTBUS.matcher(line);
if (mNachtbus.matches()) if (mNachtbus.matches())
{ {
final String label = "N" + mNachtbus.group(1); 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); final Matcher mBusS = P_NORMALIZE_LINE_BUS_S.matcher(line);
if (mBusS.matches()) if (mBusS.matches())
{ {
final String label = "S" + mBusS.group(1); 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); final Matcher mBusX = P_NORMALIZE_LINE_BUS_X.matcher(line);
if (mBusX.matches()) if (mBusX.matches())
{ {
final String label = "X" + mBusX.group(1); 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); private static final Pattern P_LINE = Pattern.compile("(.*?)\\s+\\([\\w/]+\\)", Pattern.CASE_INSENSITIVE);
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum,
final @Nullable String trainName)
{ {
if (name != null) if (name != null)
{ {
final Matcher m = P_LINE.matcher(name); final Matcher m = P_LINE.matcher(name);
if (m.matches()) 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)" // TODO check for " (Ersatzverkehr)"
} }

View file

@ -49,27 +49,28 @@ public class MetProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("Regional Train :".equals(longName)) 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)) 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)) 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)) else if ("1".equals(mot))
{ {
if (trainType == null && trainNum != null) 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) 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>(); private static final Map<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -52,26 +52,27 @@ public class MvvProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("Mittelrheinbahn (trans regio)".equals(trainName)) 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)) 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)) 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)) 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)) 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)) 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+(.*)"); 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)\\)"); private static final Pattern P_LINE_S_AVG_VBK = Pattern.compile("(S\\d+) \\((?:AVG|VBK)\\)");
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if (("ICE".equals(trainName) || "InterCityExpress".equals(trainName)) && trainNum == null) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) 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) if ("DB".equals(trainName) && trainNum == null)
return new Line(id, null, "DB"); return new Line(id, network, null, "DB");
} }
else if ("1".equals(mot)) else if ("1".equals(mot))
{ {
@ -92,11 +93,11 @@ public class NvbwProvider extends AbstractEfaProvider
{ {
final Matcher m = P_LINE_S_AVG_VBK.matcher(symbol); final Matcher m = P_LINE_S_AVG_VBK.matcher(symbol);
if (m.matches()) 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 @Override

View file

@ -54,60 +54,61 @@ public class SfProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if (("XAA".equals(symbol) || "Daly City / Fremont".equals(symbol)) && "Daly City / Fremont".equals(name)) if (("XAA".equals(symbol) || "Daly City / Fremont".equals(symbol)) && "Daly 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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)) 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 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 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 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 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 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 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 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 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 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>(); private static final Map<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -37,15 +37,16 @@ public class StvProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("M".equals(trainType) && trainNum != null) 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 @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("1".equals(mot))
{ {
if ("BMT".equals(symbol) || "Blue Mountains Line".equals(symbol)) 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)) 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)) 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)) 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)) 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) if ("T1".equals(symbol) || "T1 North Shore & Northern Line".equals(symbol) || "T1 Northern Line".equals(symbol)
|| "T1 Western 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)) 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)) 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)) 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)) 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)) 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)) 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 throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
@ -92,7 +93,7 @@ public class SydneyProvider extends AbstractEfaProvider
else if ("4".equals(mot)) else if ("4".equals(mot))
{ {
if ("L1".equals(symbol) || "L1 Dulwich Hill Line".equals(symbol)) 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 throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");
@ -100,29 +101,29 @@ public class SydneyProvider extends AbstractEfaProvider
else if ("9".equals(mot)) else if ("9".equals(mot))
{ {
if ("F1".equals(symbol) || "F1 Manly".equals(symbol)) 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)) 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)) 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)) 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)) 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)) 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)) 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) 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)) 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 throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
+ "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'"); + "' 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>(); private static final Map<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -48,19 +48,20 @@ public class TfiProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("DART".equals(name)) 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) 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)) 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 @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("1".equals(mot))
{ {
if (trainType == null && ("DLR".equals(trainNum) || "Light Railway".equals(trainName))) 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>(); private static final Map<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -37,61 +37,62 @@ public class VblProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("BLS".equals(trainType) && trainNum != null) 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 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 @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("R5(z)".equals(trainNum)) 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)) 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)) 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 @Override

View file

@ -35,22 +35,23 @@ public class VmsProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("Ilztalbahn".equals(trainName) && trainNum == null) 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) 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) 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)) 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 @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("InterRegio".equals(longName) && symbol == null) 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 @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if (trainType == null && "RB67/71".equals(trainNum)) 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) 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) 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)) 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)) if ("Zug".equals(longName))
return new Line(id, null, "Zug"); return new Line(id, network, null, "Zug");
} }
else if ("11".equals(mot)) else if ("11".equals(mot))
{ {
// Wuppertaler Schwebebahn & SkyTrain D'dorf // Wuppertaler Schwebebahn & SkyTrain D'dorf
if ("Schwebebahn".equals(trainName) || (longName != null && longName.startsWith("Schwebebahn"))) 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 // H-Bahn TU Dortmund
if ("H-Bahn".equals(trainName) || (longName != null && longName.startsWith("H-Bahn"))) 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>(); private static final Map<String, Style> STYLES = new HashMap<String, Style>();

View file

@ -45,31 +45,32 @@ public class VvoProvider extends AbstractEfaProvider
} }
@Override @Override
protected Line parseLine(final @Nullable String id, final @Nullable String mot, final @Nullable String symbol, final @Nullable String name, protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol,
final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) 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 ("0".equals(mot))
{ {
if ("Twoje Linie Kolejowe".equals(trainName) && symbol != null) 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) 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)) 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)) 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)) 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) 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 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) 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; private static final long serialVersionUID = -5642533805998375070L;
public final @Nullable String id; public final @Nullable String id;
public final @Nullable String network;
public final @Nullable Product product; public final @Nullable Product product;
public final @Nullable String label; public final @Nullable String label;
public final @Nullable Style style; public final @Nullable Style style;
public final @Nullable Set<Attr> attrs; public final @Nullable Set<Attr> attrs;
public final @Nullable String message; public final @Nullable String message;
public static final Line FOOTWAY = 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); public static final Line TRANSFER = new Line(null, null, null, null);
public static final Line SECURE_CONNECTION = new Line(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); 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.id = id;
this.network = network;
this.product = product; this.product = product;
this.label = label; this.label = label;
this.style = style; this.style = style;
@ -101,21 +104,26 @@ public final class Line implements Serializable, Comparable<Line>
if (!(o instanceof Line)) if (!(o instanceof Line))
return false; return false;
final Line other = (Line) o; final Line other = (Line) o;
if (!Objects.equal(this.network, other.network))
return false;
if (!Objects.equal(this.product, other.product)) if (!Objects.equal(this.product, other.product))
return false; return false;
return Objects.equal(this.label, other.label); if (!Objects.equal(this.label, other.label))
return false;
return true;
} }
@Override @Override
public int hashCode() public int hashCode()
{ {
return Objects.hashCode(product, label); return Objects.hashCode(network, product, label);
} }
@Override @Override
public String toString() public String toString()
{ {
return MoreObjects.toStringHelper(this) // return MoreObjects.toStringHelper(this) //
.addValue(network) //
.addValue(product) // .addValue(product) //
.addValue(label) // .addValue(label) //
.toString(); .toString();
@ -124,6 +132,7 @@ public final class Line implements Serializable, Comparable<Line>
public int compareTo(final Line other) public int compareTo(final Line other)
{ {
return ComparisonChain.start() // return ComparisonChain.start() //
.compare(this.network, other.network, Ordering.natural().nullsLast()) //
.compare(this.product, other.product, Ordering.natural().nullsLast()) // .compare(this.product, other.product, Ordering.natural().nullsLast()) //
.compare(this.label, other.label, Ordering.natural().nullsLast()) // .compare(this.label, other.label, Ordering.natural().nullsLast()) //
.result(); .result();