From 9bef5804341d1396c0c1866b251a8b6b87d342b4 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Tue, 16 Jun 2015 14:32:50 +0200 Subject: [PATCH] Hafas: Fix handling of lines with unknown product. --- enabler/src/de/schildbach/pte/AbstractHafasProvider.java | 6 ++---- enabler/src/de/schildbach/pte/BahnProvider.java | 2 +- enabler/src/de/schildbach/pte/EireannProvider.java | 3 ++- enabler/src/de/schildbach/pte/InvgProvider.java | 3 ++- enabler/src/de/schildbach/pte/NriProvider.java | 3 ++- enabler/src/de/schildbach/pte/SeptaProvider.java | 5 ++--- enabler/src/de/schildbach/pte/StockholmProvider.java | 3 ++- 7 files changed, 13 insertions(+), 12 deletions(-) diff --git a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java index 63ac6c86..e6e15b29 100644 --- a/enabler/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractHafasProvider.java @@ -3042,8 +3042,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider } final Product normalizedType = normalizeType(type); - if (normalizedType == null) - throw new IllegalStateException("cannot normalize type '" + type + "' line '" + normalizedName + "'"); final Line.Attr[] attrs; if (wheelchairAccess) @@ -3105,9 +3103,9 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider if (mTram.matches()) return newLine(Product.TRAM, mTram.group(1), null); } - - return newLine(normalizedType, number.replaceAll("\\s+", ""), null); } + + return newLine(normalizedType, number.replaceAll("\\s+", ""), null); } throw new IllegalStateException("cannot normalize type '" + type + "' number '" + number + "' line#type '" + lineAndType + "'"); diff --git a/enabler/src/de/schildbach/pte/BahnProvider.java b/enabler/src/de/schildbach/pte/BahnProvider.java index 428af38c..4f7d3c2c 100644 --- a/enabler/src/de/schildbach/pte/BahnProvider.java +++ b/enabler/src/de/schildbach/pte/BahnProvider.java @@ -163,7 +163,7 @@ public final class BahnProvider extends AbstractHafasProvider } @Override - protected Product normalizeType(String type) + protected Product normalizeType(final String type) { final String ucType = type.toUpperCase(); diff --git a/enabler/src/de/schildbach/pte/EireannProvider.java b/enabler/src/de/schildbach/pte/EireannProvider.java index 06bb08cb..84b27f0a 100644 --- a/enabler/src/de/schildbach/pte/EireannProvider.java +++ b/enabler/src/de/schildbach/pte/EireannProvider.java @@ -120,6 +120,7 @@ public class EireannProvider extends AbstractHafasProvider if ("CIT".equals(ucType)) return Product.BUS; - return null; + // skip parsing of "common" lines + throw new IllegalStateException("cannot normalize type '" + type + "'"); } } diff --git a/enabler/src/de/schildbach/pte/InvgProvider.java b/enabler/src/de/schildbach/pte/InvgProvider.java index 54450648..5ca6e3f0 100644 --- a/enabler/src/de/schildbach/pte/InvgProvider.java +++ b/enabler/src/de/schildbach/pte/InvgProvider.java @@ -364,7 +364,8 @@ public class InvgProvider extends AbstractHafasProvider if ("1".equals(type)) return Product.BUS; - return null; + // skip parsing of "common" lines + throw new IllegalStateException("cannot normalize type '" + type + "'"); } private static final Map STYLES = new HashMap(); diff --git a/enabler/src/de/schildbach/pte/NriProvider.java b/enabler/src/de/schildbach/pte/NriProvider.java index 9d3118dd..809d0e48 100644 --- a/enabler/src/de/schildbach/pte/NriProvider.java +++ b/enabler/src/de/schildbach/pte/NriProvider.java @@ -178,6 +178,7 @@ public class NriProvider extends AbstractHafasProvider if ("SHI".equals(ucType)) return Product.FERRY; - return null; + // skip parsing of "common" lines + throw new IllegalStateException("cannot normalize type '" + type + "'"); } } diff --git a/enabler/src/de/schildbach/pte/SeptaProvider.java b/enabler/src/de/schildbach/pte/SeptaProvider.java index b26e857d..f942dfa5 100644 --- a/enabler/src/de/schildbach/pte/SeptaProvider.java +++ b/enabler/src/de/schildbach/pte/SeptaProvider.java @@ -309,8 +309,6 @@ public class SeptaProvider extends AbstractHafasProvider { final String ucType = type.toUpperCase(); - // skip parsing of "common" lines, because this is America - // Regional if (ucType.equals("RAI")) return Product.REGIONAL_TRAIN; @@ -346,6 +344,7 @@ public class SeptaProvider extends AbstractHafasProvider if (ucType.equals("TROLLEY")) return Product.BUS; - return null; + // skip parsing of "common" lines, because this is America + throw new IllegalStateException("cannot normalize type '" + type + "'"); } } diff --git a/enabler/src/de/schildbach/pte/StockholmProvider.java b/enabler/src/de/schildbach/pte/StockholmProvider.java index 0a429ccd..952c89ac 100644 --- a/enabler/src/de/schildbach/pte/StockholmProvider.java +++ b/enabler/src/de/schildbach/pte/StockholmProvider.java @@ -195,7 +195,8 @@ public class StockholmProvider extends AbstractHafasProvider if ("FÄRJA".equals(ucType)) return Product.FERRY; - return null; + // skip parsing of "common" lines + throw new IllegalStateException("cannot normalize type '" + type + "'"); } private static final Map STYLES = new HashMap();