From 03884663204d30eeb3318e823b3438c0600bbd4e Mon Sep 17 00:00:00 2001 From: "andreas.schildbach" Date: Thu, 15 Jul 2010 11:07:45 +0000 Subject: [PATCH] moved product filter from network providers to task git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@10 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- src/de/schildbach/pte/BahnProvider.java | 18 +++--------------- src/de/schildbach/pte/MvvProvider.java | 2 +- src/de/schildbach/pte/NetworkProvider.java | 4 +--- src/de/schildbach/pte/RmvProvider.java | 18 +++--------------- src/de/schildbach/pte/VbbProvider.java | 18 +++--------------- 5 files changed, 11 insertions(+), 49 deletions(-) diff --git a/src/de/schildbach/pte/BahnProvider.java b/src/de/schildbach/pte/BahnProvider.java index b0c6b0bd..e7d109a8 100644 --- a/src/de/schildbach/pte/BahnProvider.java +++ b/src/de/schildbach/pte/BahnProvider.java @@ -414,7 +414,7 @@ public final class BahnProvider implements NetworkProvider private static final Pattern P_DEPARTURES_FINE = Pattern.compile(".*?(.*?).*?" + ">>\\n?\\s*(.+?)\\s*\\n?
\\n?(\\d+:\\d+).*?", Pattern.DOTALL); - public QueryDeparturesResult queryDepartures(final String uri, final Product[] products, final int maxDepartures) throws IOException + public QueryDeparturesResult queryDepartures(final String uri, final int maxDepartures) throws IOException { final CharSequence page = ParserUtils.scrape(uri); @@ -434,9 +434,8 @@ public final class BahnProvider implements NetworkProvider if (mDepFine.matches()) { final Departure dep = parseDeparture(mDepFine, currentTime); - if (products == null || filter(dep.line.charAt(0), products)) - if (!departures.contains(dep)) - departures.add(dep); + if (!departures.contains(dep)) + departures.add(dep); } else { @@ -477,17 +476,6 @@ public final class BahnProvider implements NetworkProvider return new Departure(parsed.getTime(), line, lineColors, destination); } - private boolean filter(final char line, final Product[] products) - { - final Product lineProduct = Product.fromCode(line); - - for (final Product p : products) - if (lineProduct == p) - return true; - - return false; - } - private static final Pattern P_NORMALIZE_LINE = Pattern.compile("([A-Za-zÄÖÜäöüß]+)[\\s-]*(.*)"); private static final Pattern P_NORMALIZE_LINE_SBAHN = Pattern.compile("S\\w*\\d+"); private static final Pattern P_NORMALIZE_LINE_NUMBER = Pattern.compile("\\d{4,5}"); diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index e623a439..9989126c 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -473,7 +473,7 @@ public class MvvProvider implements NetworkProvider + "
\\s*(.*?)\\s*
.*?" // destination + ".*?", Pattern.DOTALL); - public QueryDeparturesResult queryDepartures(final String uri, final Product[] products, final int maxDepartures) throws IOException + public QueryDeparturesResult queryDepartures(final String uri, final int maxDepartures) throws IOException { final CharSequence page = ParserUtils.scrape(uri); diff --git a/src/de/schildbach/pte/NetworkProvider.java b/src/de/schildbach/pte/NetworkProvider.java index c606ac92..80b95a39 100644 --- a/src/de/schildbach/pte/NetworkProvider.java +++ b/src/de/schildbach/pte/NetworkProvider.java @@ -125,12 +125,10 @@ public interface NetworkProvider * * @param queryUri * uri constructed by {@link NetworkProvider#departuresQueryUri} - * @param products - * products to filter or {@code null} to return all products * @param maxDepartures * maximum number of departures to return or {@code 0} * @return result object containing the departures * @throws IOException */ - QueryDeparturesResult queryDepartures(String queryUri, Product[] products, int maxDepartures) throws IOException; + QueryDeparturesResult queryDepartures(String queryUri, int maxDepartures) throws IOException; } diff --git a/src/de/schildbach/pte/RmvProvider.java b/src/de/schildbach/pte/RmvProvider.java index 2ac3d2cf..33b01f3b 100644 --- a/src/de/schildbach/pte/RmvProvider.java +++ b/src/de/schildbach/pte/RmvProvider.java @@ -388,7 +388,7 @@ public class RmvProvider implements NetworkProvider + "(\\d+:\\d+).*?" // time + "(?:Gl\\. (\\d+)
.*?)?", Pattern.DOTALL); - public QueryDeparturesResult queryDepartures(final String uri, final Product[] products, final int maxDepartures) throws IOException + public QueryDeparturesResult queryDepartures(final String uri, final int maxDepartures) throws IOException { final CharSequence page = ParserUtils.scrape(uri); @@ -408,9 +408,8 @@ public class RmvProvider implements NetworkProvider if (mDepFine.matches()) { final Departure dep = parseDeparture(mDepFine, currentTime); - if (products == null || filter(dep.line.charAt(0), products)) - if (!departures.contains(dep)) - departures.add(dep); + if (!departures.contains(dep)) + departures.add(dep); } else { @@ -451,17 +450,6 @@ public class RmvProvider implements NetworkProvider return new Departure(parsed.getTime(), line, lineColors, destination); } - private static boolean filter(final char line, final Product[] products) - { - final Product lineProduct = Product.fromCode(line); - - for (final Product p : products) - if (lineProduct == p) - return true; - - return false; - } - private static final Pattern P_NORMALIZE_LINE = Pattern.compile("([A-Za-zÄÖÜäöüß]+)[\\s-]*(.*)"); private static String normalizeLine(final String line) diff --git a/src/de/schildbach/pte/VbbProvider.java b/src/de/schildbach/pte/VbbProvider.java index 9251b867..c83f5958 100644 --- a/src/de/schildbach/pte/VbbProvider.java +++ b/src/de/schildbach/pte/VbbProvider.java @@ -377,7 +377,7 @@ public final class VbbProvider implements NetworkProvider + "\\s*\\s*(.*?)\\s*\\s*", Pattern.DOTALL); private static final Pattern P_DEPARTURES_SERVICE_DOWN = Pattern.compile("Wartungsarbeiten"); - public QueryDeparturesResult queryDepartures(final String uri, final Product[] products, final int maxDepartures) throws IOException + public QueryDeparturesResult queryDepartures(final String uri, final int maxDepartures) throws IOException { final CharSequence page = ParserUtils.scrape(uri); @@ -401,9 +401,8 @@ public final class VbbProvider implements NetworkProvider if (mDepFine.matches()) { final Departure dep = parseDeparture(mDepFine, currentTime); - if (products == null || filter(dep.line.charAt(0), products)) - if (!departures.contains(dep)) - departures.add(dep); + if (!departures.contains(dep)) + departures.add(dep); } else { @@ -460,17 +459,6 @@ public final class VbbProvider implements NetworkProvider } } - private boolean filter(final char line, final Product[] products) - { - final Product lineProduct = Product.fromCode(line); - - for (final Product p : products) - if (lineProduct == p) - return true; - - return false; - } - private static final Pattern P_NORMALIZE_LINE = Pattern.compile("([A-Za-zÄÖÜäöüß]+)[\\s-]*(.*)"); private static final Pattern P_NORMALIZE_LINE_SPECIAL_NUMBER = Pattern.compile("\\d{4,}"); private static final Pattern P_NORMALIZE_LINE_SPECIAL_BUS = Pattern.compile("Bus[A-Z]");