From 6c1ee94b91bc8f7b4575ce8e9cac624579274b39 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Sat, 28 Nov 2015 16:20:13 +0100 Subject: [PATCH] Lines. --- .../schildbach/pte/AbstractEfaProvider.java | 5 +++++ .../schildbach/pte/AbstractHafasProvider.java | 2 ++ .../src/de/schildbach/pte/KvvProvider.java | 21 +++++++++++++++---- enabler/src/de/schildbach/pte/PlProvider.java | 2 -- .../src/de/schildbach/pte/SydneyProvider.java | 2 ++ 5 files changed, 26 insertions(+), 6 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index b21de755..c79e750e 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -1468,6 +1468,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { return new Line(id, network, null, ParserUtils.firstNotEmpty(symbol, name)); } + else if ("13".equals(mot)) + { + if (("S-Bahn".equals(trainName) || (longName != null && longName.startsWith("S-Bahn"))) && symbol != null) + return new Line(id, network, Product.SUBURBAN_TRAIN, symbol); + } else if ("17".equals(mot)) { if (trainNum == null && "Schienenersatzverkeh".equals(trainName)) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 75e69704..e7235312 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -3410,6 +3410,8 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider return Product.REGIONAL_TRAIN; if ("RE".equals(ucType)) // RegionalExpress return Product.REGIONAL_TRAIN; + if ("DB".equals(ucType)) + return Product.REGIONAL_TRAIN; if ("IR".equals(ucType)) // Interregio return Product.REGIONAL_TRAIN; if ("IRE".equals(ucType)) // Interregio Express diff --git a/enabler/src/de/schildbach/pte/KvvProvider.java b/enabler/src/de/schildbach/pte/KvvProvider.java index a0a713e8..12249f2d 100644 --- a/enabler/src/de/schildbach/pte/KvvProvider.java +++ b/enabler/src/de/schildbach/pte/KvvProvider.java @@ -51,19 +51,32 @@ public class KvvProvider extends AbstractEfaProvider private static final Pattern P_LINE = Pattern.compile("(.*?)\\s+\\([\\w/]+\\)", Pattern.CASE_INSENSITIVE); @Override - protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, final @Nullable String symbol, - final @Nullable String name, final @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, + protected Line parseLine(final @Nullable String id, final @Nullable String network, final @Nullable String mot, @Nullable String symbol, + @Nullable String name, @Nullable String longName, final @Nullable String trainType, final @Nullable String trainNum, final @Nullable String trainName) { + if (symbol != null) + { + final Matcher m = P_LINE.matcher(symbol); + if (m.matches()) + symbol = m.group(1); + } + if (name != null) { final Matcher m = P_LINE.matcher(name); if (m.matches()) - return super.parseLine(id, network, mot, symbol, m.group(1), longName, trainType, trainNum, trainName); + name = m.group(1); + } + + if (longName != null) + { + final Matcher m = P_LINE.matcher(longName); + if (m.matches()) + longName = m.group(1); } return super.parseLine(id, network, mot, symbol, name, longName, trainType, trainNum, trainName); - // TODO check for " (Ersatzverkehr)" } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/PlProvider.java b/enabler/src/de/schildbach/pte/PlProvider.java index e9df8a9d..6951de95 100644 --- a/enabler/src/de/schildbach/pte/PlProvider.java +++ b/enabler/src/de/schildbach/pte/PlProvider.java @@ -87,8 +87,6 @@ public class PlProvider extends AbstractHafasProvider return Product.REGIONAL_TRAIN; if ("KS".equals(ucType)) // Koleje Śląskie return Product.REGIONAL_TRAIN; - if ("DB".equals(ucType)) - return Product.REGIONAL_TRAIN; if ("REG".equals(ucType)) return Product.REGIONAL_TRAIN; diff --git a/enabler/src/de/schildbach/pte/SydneyProvider.java b/enabler/src/de/schildbach/pte/SydneyProvider.java index f555164d..70b0fe54 100644 --- a/enabler/src/de/schildbach/pte/SydneyProvider.java +++ b/enabler/src/de/schildbach/pte/SydneyProvider.java @@ -162,6 +162,8 @@ public class SydneyProvider extends AbstractEfaProvider return new Line(id, network, Product.FERRY, "MFF"); if ("LneCv".equals(symbol) || "Lane Cove Ferry".equals(name)) return new Line(id, network, Product.FERRY, "LneCv"); + if ("EmpBa".equals(symbol) || "Woy Woy to Empire Bay Ferry".equals(name)) + return new Line(id, network, Product.FERRY, "EmpBa"); throw new IllegalStateException("cannot normalize mot='" + mot + "' symbol='" + symbol + "' name='" + name + "' long='" + longName + "' trainType='" + trainType + "' trainNum='" + trainNum + "' trainName='" + trainName + "'");