From 4a657964011b50141c8113a587b20ac5ba1a9af6 Mon Sep 17 00:00:00 2001 From: Andreas Schildbach Date: Fri, 15 Mar 2013 10:52:00 +0100 Subject: [PATCH] new interface method to determine typical products of a network --- .../schildbach/pte/AbstractNetworkProvider.java | 16 ++++++++++++++++ enabler/src/de/schildbach/pte/BahnProvider.java | 6 ++++++ enabler/src/de/schildbach/pte/DsbProvider.java | 7 +++++++ .../src/de/schildbach/pte/NetworkProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/NriProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/NsProvider.java | 6 ++++++ enabler/src/de/schildbach/pte/OebbProvider.java | 6 ++++++ enabler/src/de/schildbach/pte/PlProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/RtProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/SbbProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/SeProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/SncbProvider.java | 7 +++++++ enabler/src/de/schildbach/pte/TfiProvider.java | 9 +++++++++ enabler/src/de/schildbach/pte/TlemProvider.java | 8 ++++++++ enabler/src/de/schildbach/pte/TlswProvider.java | 8 ++++++++ enabler/src/de/schildbach/pte/TlwmProvider.java | 9 +++++++++ 16 files changed, 124 insertions(+) diff --git a/enabler/src/de/schildbach/pte/AbstractNetworkProvider.java b/enabler/src/de/schildbach/pte/AbstractNetworkProvider.java index 43606d16..9493d41a 100644 --- a/enabler/src/de/schildbach/pte/AbstractNetworkProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractNetworkProvider.java @@ -18,8 +18,12 @@ package de.schildbach.pte; import java.nio.charset.Charset; +import java.util.Collection; +import java.util.HashSet; +import java.util.Set; import de.schildbach.pte.dto.Point; +import de.schildbach.pte.dto.Product; import de.schildbach.pte.dto.Style; /** @@ -29,6 +33,18 @@ public abstract class AbstractNetworkProvider implements NetworkProvider { protected static final Charset UTF_8 = Charset.forName("UTF-8"); protected static final Charset ISO_8859_1 = Charset.forName("ISO-8859-1"); + protected static final Set ALL_EXCEPT_HIGHSPEED; + + static + { + ALL_EXCEPT_HIGHSPEED = new HashSet(Product.ALL); + ALL_EXCEPT_HIGHSPEED.remove(Product.HIGH_SPEED_TRAIN); + } + + public Collection defaultProducts() + { + return ALL_EXCEPT_HIGHSPEED; + } public Style lineStyle(final String line) { diff --git a/enabler/src/de/schildbach/pte/BahnProvider.java b/enabler/src/de/schildbach/pte/BahnProvider.java index 8f8e64af..70381ca8 100644 --- a/enabler/src/de/schildbach/pte/BahnProvider.java +++ b/enabler/src/de/schildbach/pte/BahnProvider.java @@ -213,6 +213,12 @@ public final class BahnProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri) { diff --git a/enabler/src/de/schildbach/pte/DsbProvider.java b/enabler/src/de/schildbach/pte/DsbProvider.java index 3fe65c47..8e48a5b6 100644 --- a/enabler/src/de/schildbach/pte/DsbProvider.java +++ b/enabler/src/de/schildbach/pte/DsbProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Locale; @@ -164,6 +165,12 @@ public class DsbProvider extends AbstractHafasProvider return xmlLocationList(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected char normalizeType(final String type) { diff --git a/enabler/src/de/schildbach/pte/NetworkProvider.java b/enabler/src/de/schildbach/pte/NetworkProvider.java index 3bfe3500..76424010 100644 --- a/enabler/src/de/schildbach/pte/NetworkProvider.java +++ b/enabler/src/de/schildbach/pte/NetworkProvider.java @@ -108,6 +108,13 @@ public interface NetworkProvider */ List autocompleteStations(CharSequence constraint) throws IOException; + /** + * Typical products for a network + * + * @return products + */ + Collection defaultProducts(); + /** * Query connections, asking for any ambiguousnesses * diff --git a/enabler/src/de/schildbach/pte/NriProvider.java b/enabler/src/de/schildbach/pte/NriProvider.java index 80718e88..2401f22c 100644 --- a/enabler/src/de/schildbach/pte/NriProvider.java +++ b/enabler/src/de/schildbach/pte/NriProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Locale; @@ -188,6 +189,12 @@ public class NriProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected char normalizeType(final String type) { diff --git a/enabler/src/de/schildbach/pte/NsProvider.java b/enabler/src/de/schildbach/pte/NsProvider.java index 01426deb..9eba87e9 100644 --- a/enabler/src/de/schildbach/pte/NsProvider.java +++ b/enabler/src/de/schildbach/pte/NsProvider.java @@ -143,6 +143,12 @@ public class NsProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri) { diff --git a/enabler/src/de/schildbach/pte/OebbProvider.java b/enabler/src/de/schildbach/pte/OebbProvider.java index ddab060c..7280ecf9 100644 --- a/enabler/src/de/schildbach/pte/OebbProvider.java +++ b/enabler/src/de/schildbach/pte/OebbProvider.java @@ -200,6 +200,12 @@ public class OebbProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected void appendCustomConnectionsQueryBinaryUri(final StringBuilder uri) { diff --git a/enabler/src/de/schildbach/pte/PlProvider.java b/enabler/src/de/schildbach/pte/PlProvider.java index 4718f500..8612b6f4 100644 --- a/enabler/src/de/schildbach/pte/PlProvider.java +++ b/enabler/src/de/schildbach/pte/PlProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import de.schildbach.pte.dto.Location; @@ -195,6 +196,12 @@ public class PlProvider extends AbstractHafasProvider return xmlMLcReq(constraint); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected char normalizeType(final String type) { diff --git a/enabler/src/de/schildbach/pte/RtProvider.java b/enabler/src/de/schildbach/pte/RtProvider.java index 7ba4cddb..a63bcdba 100644 --- a/enabler/src/de/schildbach/pte/RtProvider.java +++ b/enabler/src/de/schildbach/pte/RtProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Locale; @@ -158,6 +159,12 @@ public class RtProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected char normalizeType(final String type) { diff --git a/enabler/src/de/schildbach/pte/SbbProvider.java b/enabler/src/de/schildbach/pte/SbbProvider.java index 4dbe0a7e..34004c1e 100644 --- a/enabler/src/de/schildbach/pte/SbbProvider.java +++ b/enabler/src/de/schildbach/pte/SbbProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Locale; @@ -153,6 +154,12 @@ public class SbbProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected char normalizeType(final String type) { diff --git a/enabler/src/de/schildbach/pte/SeProvider.java b/enabler/src/de/schildbach/pte/SeProvider.java index 402c3869..14b67e65 100644 --- a/enabler/src/de/schildbach/pte/SeProvider.java +++ b/enabler/src/de/schildbach/pte/SeProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Locale; import java.util.regex.Matcher; @@ -201,6 +202,12 @@ public class SeProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + private static final Pattern P_NORMALIZE_LINE_BUS = Pattern.compile("Buss\\s*(.*)"); private static final Pattern P_NORMALIZE_LINE_SUBWAY = Pattern.compile("Tunnelbana\\s*(.*)"); diff --git a/enabler/src/de/schildbach/pte/SncbProvider.java b/enabler/src/de/schildbach/pte/SncbProvider.java index cd0d73ca..af0cf136 100644 --- a/enabler/src/de/schildbach/pte/SncbProvider.java +++ b/enabler/src/de/schildbach/pte/SncbProvider.java @@ -18,6 +18,7 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.Locale; @@ -143,6 +144,12 @@ public class SncbProvider extends AbstractHafasProvider return jsonGetStops(uri); } + @Override + public Collection defaultProducts() + { + return Product.ALL; + } + @Override protected char normalizeType(final String type) { diff --git a/enabler/src/de/schildbach/pte/TfiProvider.java b/enabler/src/de/schildbach/pte/TfiProvider.java index ba67b379..9d13d8a0 100644 --- a/enabler/src/de/schildbach/pte/TfiProvider.java +++ b/enabler/src/de/schildbach/pte/TfiProvider.java @@ -17,8 +17,11 @@ package de.schildbach.pte; +import java.util.Collection; import java.util.TimeZone; +import de.schildbach.pte.dto.Product; + /** * @author Andreas Schildbach */ @@ -51,4 +54,10 @@ public class TfiProvider extends AbstractEfaProvider return false; } + + @Override + public Collection defaultProducts() + { + return Product.ALL; + } } diff --git a/enabler/src/de/schildbach/pte/TlemProvider.java b/enabler/src/de/schildbach/pte/TlemProvider.java index f97523f2..e9ec1969 100644 --- a/enabler/src/de/schildbach/pte/TlemProvider.java +++ b/enabler/src/de/schildbach/pte/TlemProvider.java @@ -18,11 +18,13 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; +import de.schildbach.pte.dto.Product; /** * @author Andreas Schildbach @@ -64,4 +66,10 @@ public class TlemProvider extends AbstractEfaProvider { return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } + + @Override + public Collection defaultProducts() + { + return Product.ALL; + } } diff --git a/enabler/src/de/schildbach/pte/TlswProvider.java b/enabler/src/de/schildbach/pte/TlswProvider.java index 3b62e24c..294995d5 100644 --- a/enabler/src/de/schildbach/pte/TlswProvider.java +++ b/enabler/src/de/schildbach/pte/TlswProvider.java @@ -18,11 +18,13 @@ package de.schildbach.pte; import java.io.IOException; +import java.util.Collection; import java.util.List; import java.util.TimeZone; import de.schildbach.pte.dto.Location; import de.schildbach.pte.dto.LocationType; +import de.schildbach.pte.dto.Product; /** * @author Andreas Schildbach @@ -64,4 +66,10 @@ public class TlswProvider extends AbstractEfaProvider { return xmlStopfinderRequest(new Location(LocationType.ANY, 0, null, constraint.toString())); } + + @Override + public Collection defaultProducts() + { + return Product.ALL; + } } diff --git a/enabler/src/de/schildbach/pte/TlwmProvider.java b/enabler/src/de/schildbach/pte/TlwmProvider.java index 7237057d..03ee997b 100644 --- a/enabler/src/de/schildbach/pte/TlwmProvider.java +++ b/enabler/src/de/schildbach/pte/TlwmProvider.java @@ -17,8 +17,11 @@ package de.schildbach.pte; +import java.util.Collection; import java.util.TimeZone; +import de.schildbach.pte.dto.Product; + /** * @author Andreas Schildbach */ @@ -52,4 +55,10 @@ public class TlwmProvider extends AbstractEfaProvider return false; } + + @Override + public Collection defaultProducts() + { + return Product.ALL; + } }