Migrate from using char as a product type to Product enum. Line labels are really just the label and can be null.

This commit is contained in:
Andreas Schildbach 2015-01-31 11:48:41 +01:00
parent 7cb4e8fb06
commit 883015177e
52 changed files with 1216 additions and 1238 deletions

View file

@ -999,441 +999,441 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
private static final Pattern P_LINE_S_DB = Pattern.compile("(S\\d+) \\((?:DB Regio AG)\\)");
private static final Pattern P_LINE_NUMBER = Pattern.compile("\\d+");
protected String parseLine(final String mot, String symbol, final String name, final String longName, final String trainType,
protected Line parseLine(final String id, final String mot, String symbol, final String name, final String longName, final String trainType,
final String trainNum, final String trainName)
{
if (mot == null)
{
if (trainName != null)
{
final String str = name != null ? name : "";
final String str = Strings.nullToEmpty(name);
if (trainName.equals("S-Bahn"))
return 'S' + str;
return new Line(id, Product.SUBURBAN_TRAIN, str);
if (trainName.equals("U-Bahn"))
return 'U' + str;
return new Line(id, Product.SUBWAY, str);
if (trainName.equals("Straßenbahn"))
return 'T' + str;
return new Line(id, Product.TRAM, str);
if (trainName.equals("Badner Bahn"))
return 'T' + str;
return new Line(id, Product.TRAM, str);
if (trainName.equals("Stadtbus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Citybus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Regionalbus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("ÖBB-Postbus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Autobus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Discobus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Nachtbus"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Anrufsammeltaxi"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Ersatzverkehr"))
return 'B' + str;
return new Line(id, Product.BUS, str);
if (trainName.equals("Vienna Airport Lines"))
return 'B' + str;
return new Line(id, Product.BUS, str);
}
}
else if ("0".equals(mot))
{
final String trainNumStr = trainNum != null ? trainNum : "";
final String trainNumStr = Strings.nullToEmpty(trainNum);
if (("EC".equals(trainType) || "EuroCity".equals(trainName) || "Eurocity".equals(trainName)) && trainNum != null)
return "IEC" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "EC" + trainNum);
if (("EN".equals(trainType) || "EuroNight".equals(trainName)) && trainNum != null)
return "IEN" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "EN" + trainNum);
if (("IC".equals(trainType) || "InterCity".equals(trainName)) && trainNum != null)
return "IIC" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "IC" + trainNum);
if (("ICE".equals(trainType) || "ICE".equals(trainName) || "Intercity-Express".equals(trainName)) && trainNum != null)
return "IICE" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "ICE" + trainNum);
if (("ICN".equals(trainType) || "InterCityNight".equals(trainName)) && trainNum != null)
return "IICN" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "ICN" + trainNum);
if (("X".equals(trainType) || "InterConnex".equals(trainName)) && trainNum != null)
return "IX" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "X" + trainNum);
if (("CNL".equals(trainType) || "CityNightLine".equals(trainName)) && trainNum != null) // City Night Line
return "ICNL" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "CNL" + trainNum);
if (("THA".equals(trainType) || "Thalys".equals(trainName)) && trainNum != null)
return "ITHA" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "THA" + trainNum);
if ("RHI".equals(trainType) && trainNum != null)
return "IRHI" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "RHI" + trainNum);
if (("TGV".equals(trainType) || "TGV".equals(trainName)) && trainNum != null)
return "ITGV" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "TGV" + trainNum);
if ("TGD".equals(trainType) && trainNum != null)
return "ITGD" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "TGD" + trainNum);
if ("INZ".equals(trainType) && trainNum != null)
return "IINZ" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "INZ" + trainNum);
if (("RJ".equals(trainType) || "railjet".equals(trainName)) && trainNum != null) // railjet
return "IRJ" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "RJ" + trainNum);
if (("WB".equals(trainType) || "WESTbahn".equals(trainName)) && trainNum != null)
return "IWB" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "WB" + trainNum);
if (("HKX".equals(trainType) || "Hamburg-Köln-Express".equals(trainName)) && trainNum != null)
return "IHKX" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "HKX" + trainNum);
if ("INT".equals(trainType) && trainNum != null) // SVV, VAGFR
return "IINT" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "INT" + trainNum);
if (("SC".equals(trainType) || "SC Pendolino".equals(trainName)) && trainNum != null) // SuperCity
return "ISC" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "SC" + trainNum);
if ("ECB".equals(trainType) && trainNum != null) // EC, Verona-München
return "IECB" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "ECB" + trainNum);
if ("ES".equals(trainType) && trainNum != null) // Eurostar Italia
return "IES" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "ES" + trainNum);
if (("EST".equals(trainType) || "EUROSTAR".equals(trainName)) && trainNum != null)
return "IEST" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "EST" + trainNum);
if ("EIC".equals(trainType) && trainNum != null) // Ekspres InterCity, Polen
return "IEIC" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "EIC" + trainNum);
if ("MT".equals(trainType) && "Schnee-Express".equals(trainName) && trainNum != null)
return "IMT" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "MT" + trainNum);
if (("TLK".equals(trainType) || "Tanie Linie Kolejowe".equals(trainName)) && trainNum != null)
return "ITLK" + trainNum;
return new Line(id, Product.HIGH_SPEED_TRAIN, "TLK" + trainNum);
if ("Zug".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("Zuglinie".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("IR".equals(trainType) || "Interregio".equals(trainName) || "InterRegio".equals(trainName))
return "RIR" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "IR" + trainNum);
if ("IRE".equals(trainType) || "Interregio-Express".equals(trainName))
return "RIRE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "IRE" + trainNum);
if ("InterRegioExpress".equals(trainName))
return "RIRE" + trainNumStr;
return new Line(id, Product.REGIONAL_TRAIN, "IRE" + trainNumStr);
if ("RE".equals(trainType) || "Regional-Express".equals(trainName))
return "RRE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "RE" + trainNum);
if (trainType == null && trainNum != null && P_LINE_RE.matcher(trainNum).matches())
return 'R' + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, trainNum);
if ("Regionalexpress".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("R-Bahn".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("RB-Bahn".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("RE-Bahn".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("REX".equals(trainType)) // RegionalExpress, Österreich
return "RREX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "REX" + trainNum);
if (("RB".equals(trainType) || "Regionalbahn".equals(trainName)) && trainNum != null)
return "RRB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "RB" + trainNum);
if (trainType == null && trainNum != null && P_LINE_RB.matcher(trainNum).matches())
return 'R' + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, trainNum);
if ("Abellio-Zug".equals(trainName))
return "R" + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("Westfalenbahn".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("Chiemseebahn".equals(trainName))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("R".equals(trainType) || "Regionalzug".equals(trainName))
return "RR" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "R" + trainNum);
if (trainType == null && trainNum != null && P_LINE_R.matcher(trainNum).matches())
return 'R' + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, trainNum);
if ("D".equals(trainType) || "Schnellzug".equals(trainName))
return "RD" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "D" + trainNum);
if ("E".equals(trainType) || "Eilzug".equals(trainName))
return "RE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "E" + trainNum);
if ("WFB".equals(trainType) || "WestfalenBahn".equals(trainName))
return "RWFB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "WFB" + trainNum);
if (("NWB".equals(trainType) || "NordWestBahn".equals(trainName)) && trainNum != null)
return "RNWB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "NWB" + trainNum);
if ("WES".equals(trainType) || "Westbahn".equals(trainName))
return "RWES" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "WES" + trainNum);
if ("ERB".equals(trainType) || "eurobahn".equals(trainName))
return "RERB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ERB" + trainNum);
if ("CAN".equals(trainType) || "cantus Verkehrsgesellschaft".equals(trainName))
return "RCAN" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "CAN" + trainNum);
if ("HEX".equals(trainType) || "Veolia Verkehr Sachsen-Anhalt".equals(trainName))
return "RHEX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "HEX" + trainNum);
if ("EB".equals(trainType) || "Erfurter Bahn".equals(trainName))
return "REB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "EB" + trainNum);
if ("Erfurter Bahn".equals(longName))
return "REB";
return new Line(id, Product.REGIONAL_TRAIN, "EB");
if ("EBx".equals(trainType) || "Erfurter Bahn Express".equals(trainName))
return "REBx" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "EBx" + trainNum);
if ("Erfurter Bahn Express".equals(longName))
return "REBx";
return new Line(id, Product.REGIONAL_TRAIN, "EBx");
if ("MRB".equals(trainType) || "Mitteldeutsche Regiobahn".equals(trainName))
return "RMRB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "MRB" + trainNum);
if ("ABR".equals(trainType) || "ABELLIO Rail NRW GmbH".equals(trainName))
return "RABR" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ABR" + trainNum);
if ("NEB".equals(trainType) || "NEB Niederbarnimer Eisenbahn".equals(trainName))
return "RNEB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "NEB" + trainNum);
if ("OE".equals(trainType) || "Ostdeutsche Eisenbahn GmbH".equals(trainName))
return "ROE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "OE" + trainNum);
if ("ODE".equals(trainType))
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("OLA".equals(trainType) || "Ostseeland Verkehr GmbH".equals(trainName))
return "ROLA" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "OLA" + trainNum);
if ("UBB".equals(trainType) || "Usedomer Bäderbahn".equals(trainName))
return "RUBB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "UBB" + trainNum);
if ("EVB".equals(trainType) || "ELBE-WESER GmbH".equals(trainName))
return "REVB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "EVB" + trainNum);
if ("RTB".equals(trainType) || "Rurtalbahn GmbH".equals(trainName))
return "RRTB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "RTB" + trainNum);
if ("STB".equals(trainType) || "Süd-Thüringen-Bahn".equals(trainName))
return "RSTB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "STB" + trainNum);
if ("HTB".equals(trainType) || "Hellertalbahn".equals(trainName))
return "RHTB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "HTB" + trainNum);
if ("VBG".equals(trainType) || "Vogtlandbahn".equals(trainName))
return "RVBG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "VBG" + trainNum);
if ("CB".equals(trainType) || "City-Bahn Chemnitz".equals(trainName))
return "RCB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "CB" + trainNum);
if ("VEC".equals(trainType) || "vectus Verkehrsgesellschaft".equals(trainName))
return "RVEC" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "VEC" + trainNum);
if ("HzL".equals(trainType) || "Hohenzollerische Landesbahn AG".equals(trainName))
return "RHzL" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "HzL" + trainNum);
if ("SBB".equals(trainType) || "SBB GmbH".equals(trainName))
return "RSBB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SBB" + trainNum);
if ("MBB".equals(trainType) || "Mecklenburgische Bäderbahn Molli".equals(trainName))
return "RMBB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "MBB" + trainNum);
if ("OS".equals(trainType)) // Osobní vlak
return "ROS" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "OS" + trainNum);
if ("SP".equals(trainType) || "Sp".equals(trainType)) // Spěšný vlak
return "RSP" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SP" + trainNum);
if ("Dab".equals(trainType) || "Daadetalbahn".equals(trainName))
return "RDab" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "Dab" + trainNum);
if ("FEG".equals(trainType) || "Freiberger Eisenbahngesellschaft".equals(trainName))
return "RFEG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "FEG" + trainNum);
if ("ARR".equals(trainType) || "ARRIVA".equals(trainName))
return "RARR" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ARR" + trainNum);
if ("HSB".equals(trainType) || "Harzer Schmalspurbahn".equals(trainName))
return "RHSB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "HSB" + trainNum);
if ("ALX".equals(trainType) || "alex - Länderbahn und Vogtlandbahn GmbH".equals(trainName))
return "RALX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ALX" + trainNum);
if ("EX".equals(trainType) || "Fatra".equals(trainName))
return "REX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "EX" + trainNum);
if ("ME".equals(trainType) || "metronom".equals(trainName))
return "RME" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ME" + trainNum);
if ("metronom".equals(longName))
return "RME";
return new Line(id, Product.REGIONAL_TRAIN, "ME");
if ("MEr".equals(trainType))
return "RMEr" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "MEr" + trainNum);
if ("AKN".equals(trainType) || "AKN Eisenbahn AG".equals(trainName))
return "RAKN" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "AKN" + trainNum);
if ("SOE".equals(trainType) || "Sächsisch-Oberlausitzer Eisenbahngesellschaft".equals(trainName))
return "RSOE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SOE" + trainNum);
if ("VIA".equals(trainType) || "VIAS GmbH".equals(trainName))
return "RVIA" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "VIA" + trainNum);
if ("BRB".equals(trainType) || "Bayerische Regiobahn".equals(trainName))
return "RBRB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "BRB" + trainNum);
if ("BLB".equals(trainType) || "Berchtesgadener Land Bahn".equals(trainName))
return "RBLB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "BLB" + trainNum);
if ("HLB".equals(trainType) || "Hessische Landesbahn".equals(trainName))
return "RHLB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "HLB" + trainNum);
if ("NOB".equals(trainType) || "NordOstseeBahn".equals(trainName))
return "RNOB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "NOB" + trainNum);
if ("NBE".equals(trainType) || "Nordbahn Eisenbahngesellschaft".equals(trainName))
return "RNBE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "NBE" + trainNum);
if ("VEN".equals(trainType) || "Rhenus Veniro".equals(trainName))
return "RVEN" + trainType;
return new Line(id, Product.REGIONAL_TRAIN, "VEN" + trainType);
if ("DPN".equals(trainType) || "Nahreisezug".equals(trainName))
return "RDPN" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "DPN" + trainNum);
if ("RBG".equals(trainType) || "Regental Bahnbetriebs GmbH".equals(trainName))
return "RRBG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "RBG" + trainNum);
if ("BOB".equals(trainType) || "Bodensee-Oberschwaben-Bahn".equals(trainName))
return "RBOB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "BOB" + trainNum);
if ("VE".equals(trainType) || "Vetter".equals(trainName))
return "RVE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "VE" + trainNum);
if ("SDG".equals(trainType) || "SDG Sächsische Dampfeisenbahngesellschaft mbH".equals(trainName))
return "RSDG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SDG" + trainNum);
if ("PRE".equals(trainType) || "Pressnitztalbahn".equals(trainName))
return "RPRE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "PRE" + trainNum);
if ("VEB".equals(trainType) || "Vulkan-Eifel-Bahn".equals(trainName))
return "RVEB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "VEB" + trainNum);
if ("neg".equals(trainType) || "Norddeutsche Eisenbahn Gesellschaft".equals(trainName))
return "Rneg" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "neg" + trainNum);
if ("AVG".equals(trainType) || "Felsenland-Express".equals(trainName))
return "RAVG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "AVG" + trainNum);
if ("P".equals(trainType) || "BayernBahn Betriebs-GmbH".equals(trainName) || "Brohltalbahn".equals(trainName)
|| "Kasbachtalbahn".equals(trainName))
return "RP" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "P" + trainNum);
if ("SBS".equals(trainType) || "Städtebahn Sachsen".equals(trainName))
return "RSBS" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SBS" + trainNum);
if ("SES".equals(trainType) || "Städteexpress Sachsen".equals(trainName))
return "RSES" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SES" + trainNum);
if ("SB-".equals(trainType)) // Städtebahn Sachsen
return "RSB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SB" + trainNum);
if ("ag".equals(trainType)) // agilis
return "Rag" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ag" + trainNum);
if ("agi".equals(trainType) || "agilis".equals(trainName))
return "Ragi" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "agi" + trainNum);
if ("as".equals(trainType) || "agilis-Schnellzug".equals(trainName))
return "Ras" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "as" + trainNum);
if ("TLX".equals(trainType) || "TRILEX".equals(trainName)) // Trilex (Vogtlandbahn)
return "RTLX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "TLX" + trainNum);
if ("MSB".equals(trainType) || "Mainschleifenbahn".equals(trainName))
return "RMSB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "MSB" + trainNum);
if ("BE".equals(trainType) || "Bentheimer Eisenbahn".equals(trainName))
return "RBE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "BE" + trainNum);
if ("erx".equals(trainType) || "erixx - Der Heidesprinter".equals(trainName))
return "Rerx" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "erx" + trainNum);
if ("SWEG-Zug".equals(trainName)) // Südwestdeutschen Verkehrs-Aktiengesellschaft
return "RSWEG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "SWEG" + trainNum);
if ("SWEG-Zug".equals(longName))
return "RSWEG";
return new Line(id, Product.REGIONAL_TRAIN, "SWEG");
if ("EGP Eisenbahngesellschaft Potsdam".equals(trainName))
return "REGP" + trainNumStr;
return new Line(id, Product.REGIONAL_TRAIN, "EGP" + trainNumStr);
if ("ÖBB".equals(trainType) || "ÖBB".equals(trainName))
return "RÖBB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ÖBB" + trainNum);
if ("CAT".equals(trainType)) // City Airport Train Wien
return "RCAT" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "CAT" + trainNum);
if ("DZ".equals(trainType) || "Dampfzug".equals(trainName))
return "RDZ" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "DZ" + trainNum);
if ("CD".equals(trainType)) // Tschechien
return "RCD" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "CD" + trainNum);
if ("VR".equals(trainType)) // Polen
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("PR".equals(trainType)) // Polen
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("KD".equals(trainType)) // Koleje Dolnośląskie (Niederschlesische Eisenbahn)
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("Koleje Dolnoslaskie".equals(trainName) && symbol != null) // Koleje Dolnośląskie
return "R" + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("OO".equals(trainType) || "Ordinary passenger (o.pas.)".equals(trainName)) // GB
return "ROO" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "OO" + trainNum);
if ("XX".equals(trainType) || "Express passenger (ex.pas.)".equals(trainName)) // GB
return "RXX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "XX" + trainNum);
if ("XZ".equals(trainType) || "Express passenger sleeper".equals(trainName)) // GB
return "RXZ" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "XZ" + trainNum);
if ("ATB".equals(trainType)) // Autoschleuse Tauernbahn
return "RATB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ATB" + trainNum);
if ("ATZ".equals(trainType)) // Autozug
return "RATZ" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ATZ" + trainNum);
if ("AZ".equals(trainType) || "Auto-Zug".equals(trainName))
return "RAZ" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "AZ" + trainNum);
if ("DWE".equals(trainType) || "Dessau-Wörlitzer Eisenbahn".equals(trainName))
return "RDWE" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "DWE" + trainNum);
if ("KTB".equals(trainType) || "Kandertalbahn".equals(trainName))
return "RKTB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "KTB" + trainNum);
if ("CBC".equals(trainType) || "CBC".equals(trainName)) // City-Bahn Chemnitz
return "RCBC" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "CBC" + trainNum);
if ("Bernina Express".equals(trainName))
return 'R' + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, trainNum);
if ("STR".equals(trainType)) // Harzquerbahn, Nordhausen
return "RSTR" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "STR" + trainNum);
if ("EXT".equals(trainType) || "Extrazug".equals(trainName))
return "REXT" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "EXT" + trainNum);
if ("Heritage Railway".equals(trainName)) // GB
return 'R' + symbol;
return new Line(id, Product.REGIONAL_TRAIN, symbol);
if ("WTB".equals(trainType) || "Wutachtalbahn".equals(trainName))
return "RWTB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "WTB" + trainNum);
if ("DB".equals(trainType) || "DB Regio".equals(trainName))
return "RDB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "DB" + trainNum);
if ("M".equals(trainType) && "Meridian".equals(trainName))
return "RM" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "M" + trainNum);
if ("M".equals(trainType) && "Messezug".equals(trainName))
return "RM" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "M" + trainNum);
if ("EZ".equals(trainType)) // ÖBB Erlebniszug
return "REZ" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "EZ" + trainNum);
if ("DPF".equals(trainType))
return "RDPF" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "DPF" + trainNum);
if ("WBA".equals(trainType) || "Waldbahn".equals(trainName))
return "RWBA" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "WBA" + trainNum);
if ("ÖBA".equals(trainType) && trainNum != null) // Eisenbahn-Betriebsgesellschaft Ochsenhausen
return "RÖBA" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ÖBA" + trainNum);
if (("UEF".equals(trainType) || "Ulmer Eisenbahnfreunde".equals(trainName)) && trainNum != null)
return "RUEF" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "UEF" + trainNum);
if (("DBG".equals(trainType) || "Döllnitzbahn".equals(trainName)) && trainNum != null)
return "RDBG" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "DBG" + trainNum);
if (("TL".equals(trainType) || "Trilex".equals(trainName)) && trainNum != null)
return "RTL" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "TL" + trainNum);
if (("OPB".equals(trainType) || "oberpfalzbahn".equals(trainName)) && trainNum != null)
return "ROPB" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "OPB" + trainNum);
if (("OPX".equals(trainType) || "oberpfalz-express".equals(trainName)) && trainNum != null)
return "ROPX" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "OPX" + trainNum);
if (("V6".equals(trainType) || "vlexx".equals(trainName)) && trainNum != null)
return "Rvlexx" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "vlexx" + trainNum);
if (("ARZ".equals(trainType) || "Autoreisezug".equals(trainName)) && trainNum != null)
return "RARZ" + trainNum;
return new Line(id, Product.REGIONAL_TRAIN, "ARZ" + trainNum);
if ("BSB-Zug".equals(trainName) && trainNum != null) // Breisgau-S-Bahn
return 'S' + trainNum;
return new Line(id, Product.SUBURBAN_TRAIN, trainNum);
if ("BSB-Zug".equals(trainName) && trainNum == null)
return "SBSB";
return new Line(id, Product.SUBURBAN_TRAIN, "BSB");
if ("BSB-Zug".equals(longName))
return "SBSB";
return new Line(id, Product.SUBURBAN_TRAIN, "BSB");
if ("RSB".equals(trainType)) // Regionalschnellbahn, Wien
return "SRSB" + trainNum;
return new Line(id, Product.SUBURBAN_TRAIN, "RSB" + trainNum);
if ("RER".equals(trainName) && symbol != null && symbol.length() == 1) // Réseau Express Régional,
// Frankreich
return 'S' + symbol;
return new Line(id, Product.SUBURBAN_TRAIN, symbol);
if ("S".equals(trainType))
return "SS" + trainNum;
return new Line(id, Product.SUBURBAN_TRAIN, "S" + trainNum);
if ("S-Bahn".equals(trainName))
return "SS" + trainNumStr;
return new Line(id, Product.SUBURBAN_TRAIN, "S" + trainNumStr);
if ("RT".equals(trainType) || "RegioTram".equals(trainName))
return "TRT" + trainNum;
return new Line(id, Product.TRAM, "RT" + trainNum);
if ("Bus".equals(trainType))
return "B" + trainNum;
return new Line(id, Product.BUS, "" + trainNum);
if ("SEV".equals(trainType) || "SEV".equals(trainNum) || "SEV".equals(trainName) || "SEV".equals(symbol) || "BSV".equals(trainType)
|| "Ersatzverkehr".equals(trainName) || "Schienenersatzverkehr".equals(trainName))
return "BSEV" + (trainNum != null ? trainNum : "");
return new Line(id, Product.BUS, "SEV" + trainNumStr);
if ("Bus replacement".equals(trainName)) // GB
return "BBR";
return new Line(id, Product.BUS, "BR");
if ("BR".equals(trainType) && trainName.startsWith("Bus")) // GB
return "BBR" + trainNum;
return new Line(id, Product.BUS, "BR" + trainNum);
if ("GB".equals(trainType)) // Gondelbahn
return "CGB" + trainNum;
return new Line(id, Product.CABLECAR, "GB" + trainNum);
if ("SB".equals(trainType)) // Seilbahn
return "CSB" + trainNum;
return new Line(id, Product.SUBURBAN_TRAIN, "SB" + trainNum);
if ("ZUG".equals(trainType) && trainNum != null)
return '?' + trainNum;
return new Line(id, null, trainNum);
if (symbol != null && P_LINE_NUMBER.matcher(symbol).matches() && trainType == null && trainName == null)
return '?' + symbol;
return new Line(id, null, symbol);
if ("N".equals(trainType) && trainName == null && symbol == null)
return "?N" + trainNum;
return new Line(id, null, "N" + trainNum);
if ("Train".equals(trainName))
return "?";
return new Line(id, null, null);
// generic
if (trainName != null && trainType == null && trainNum == null)
return '?' + trainName;
return new Line(id, null, trainName);
}
else if ("1".equals(mot))
{
if (symbol != null && P_LINE_S.matcher(symbol).matches())
return "S" + symbol;
return new Line(id, Product.SUBURBAN_TRAIN, symbol);
if (name != null && P_LINE_S.matcher(name).matches())
return "S" + name;
return new Line(id, Product.SUBURBAN_TRAIN, name);
if ("S-Bahn".equals(trainName))
return "SS" + Strings.nullToEmpty(trainNum);
return new Line(id, Product.SUBURBAN_TRAIN, "S" + Strings.nullToEmpty(trainNum));
if ("S5X".equals(symbol))
return "SS5X";
return new Line(id, Product.SUBURBAN_TRAIN, "S5X");
if (symbol != null && symbol.equals(name))
{
final Matcher m = P_LINE_S_DB.matcher(symbol);
if (m.matches())
return "S" + m.group(1);
return new Line(id, Product.SUBURBAN_TRAIN, m.group(1));
}
}
else if ("2".equals(mot))
{
return 'U' + name;
return new Line(id, Product.SUBWAY, name);
}
else if ("3".equals(mot) || "4".equals(mot))
{
return 'T' + name;
return new Line(id, Product.TRAM, name);
}
else if ("5".equals(mot) || "6".equals(mot) || "7".equals(mot) || "10".equals(mot))
{
if ("Schienenersatzverkehr".equals(name))
return "BSEV";
return new Line(id, Product.BUS, "SEV");
else
return 'B' + name;
return new Line(id, Product.BUS, name);
}
else if ("8".equals(mot))
{
return 'C' + name;
return new Line(id, Product.CABLECAR, name);
}
else if ("9".equals(mot))
{
return 'F' + name;
return new Line(id, Product.FERRY, name);
}
else if ("11".equals(mot))
{
return '?' + ParserUtils.firstNotEmpty(symbol, name);
return new Line(id, null, ParserUtils.firstNotEmpty(symbol, name));
}
throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName
@ -1805,8 +1805,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
}
final String network = lineId.substring(0, lineId.indexOf(':'));
final String lineLabel = parseLine(productType, symbol, symbol, null, trainType, trainNum, productName);
line = new Line(lineId, lineLabel, lineStyle(network, lineLabel));
final Line parsedLine = parseLine(lineId, productType, symbol, symbol, null, trainType, trainNum, productName);
line = new Line(parsedLine.id, parsedLine.product, parsedLine.label, lineStyle(network, parsedLine.product, parsedLine.label));
}
XmlPullUtil.skipExit(pp, "m");
@ -1974,9 +1974,9 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String trainType = ParserUtils.firstNotEmpty(slTrainType, itdTrainType);
final String trainName = ParserUtils.firstNotEmpty(slTrainName, itdTrainName);
final String label = parseLine(slMotType, slSymbol, slNumber, slNumber, trainType, slTrainNum, trainName);
final Line line = parseLine(slStateless, slMotType, slSymbol, slNumber, slNumber, trainType, slTrainNum, trainName);
return new Line(slStateless, label, lineStyle(divaNetwork, 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+");
@ -2496,22 +2496,14 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String destinationId = XmlPullUtil.optAttr(pp, "destID", null);
final Location destination = new Location(destinationId != null ? LocationType.STATION : LocationType.ANY, destinationId,
null, destinationName);
final String lineLabel;
final String motSymbol = XmlPullUtil.optAttr(pp, "symbol", null);
if ("AST".equals(motSymbol))
{
lineLabel = "BAST";
}
else
{
final String motType = XmlPullUtil.attr(pp, "motType");
final String motShortName = XmlPullUtil.optAttr(pp, "shortname", null);
final String motName = XmlPullUtil.attr(pp, "name");
final String motTrainName = XmlPullUtil.optAttr(pp, "trainName", null);
final String motTrainType = XmlPullUtil.optAttr(pp, "trainType", null);
lineLabel = parseLine(motType, motSymbol, motShortName, motName, motTrainType, motShortName, motTrainName);
}
final String motSymbol = XmlPullUtil.optAttr(pp, "symbol", null);
final String motType = XmlPullUtil.optAttr(pp, "motType", null);
final String motShortName = XmlPullUtil.optAttr(pp, "shortname", null);
final String motName = XmlPullUtil.attr(pp, "name");
final String motTrainName = XmlPullUtil.optAttr(pp, "trainName", null);
final String motTrainType = XmlPullUtil.optAttr(pp, "trainType", null);
XmlPullUtil.enter(pp, "itdMeansOfTransport");
XmlPullUtil.require(pp, "motDivaParams");
final String divaNetwork = XmlPullUtil.attr(pp, "network");
@ -2522,6 +2514,12 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final String lineId = divaNetwork + ':' + divaLine + ':' + divaSupplement + ':' + divaDirection + ':' + divaProject;
XmlPullUtil.skipExit(pp, "itdMeansOfTransport");
final Line line;
if ("AST".equals(motSymbol))
line = new Line(null, Product.BUS, "AST");
else
line = parseLine(lineId, motType, motSymbol, motShortName, motName, motTrainType, motShortName, motTrainName);
final Integer departureDelay;
final Integer arrivalDelay;
if (XmlPullUtil.test(pp, "itdRBLControlled"))
@ -2694,14 +2692,15 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
final Set<Line.Attr> lineAttrs = new HashSet<Line.Attr>();
if (wheelChairAccess || lowFloorVehicle)
lineAttrs.add(Line.Attr.WHEEL_CHAIR_ACCESS);
final Line line = new Line(lineId, lineLabel, lineStyle(divaNetwork, lineLabel), lineAttrs);
final Line styledLine = new Line(line.id, line.product, line.label, lineStyle(divaNetwork, line.product, line.label),
lineAttrs);
final Stop departure = new Stop(departureLocation, true, departureTargetTime != null ? departureTargetTime
: departureTime, departureTime != null ? departureTime : null, departurePosition, null);
final Stop arrival = new Stop(arrivalLocation, false, arrivalTargetTime != null ? arrivalTargetTime : arrivalTime,
arrivalTime != null ? arrivalTime : null, arrivalPosition, null);
legs.add(new Trip.Public(line, destination, departure, arrival, intermediateStops, path, message));
legs.add(new Trip.Public(styledLine, destination, departure, arrival, intermediateStops, path, message));
}
else
{