From 36059cc37e9f0ce1d4501fec0bb5bc4d12998d5f Mon Sep 17 00:00:00 2001 From: "andreas.schildbach@gmail.com" Date: Fri, 29 Apr 2011 12:15:14 +0000 Subject: [PATCH] moved 'canAcceptPoiID' from redundant code to provider parameter git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@579 0924bc21-9374-b0fa-ee44-9ff1593b38f0 --- .../schildbach/pte/AbstractEfaProvider.java | 24 ++++++++++++++----- src/de/schildbach/pte/MvvProvider.java | 2 +- src/de/schildbach/pte/VmvProvider.java | 14 ----------- src/de/schildbach/pte/VrrProvider.java | 2 +- src/de/schildbach/pte/VvsProvider.java | 16 +------------ 5 files changed, 21 insertions(+), 37 deletions(-) diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index 2e605384..cbc5581d 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -67,6 +67,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider { private final String apiBase; private final String additionalQueryParameter; + private final boolean canAcceptPoiID; private final XmlPullParserFactory parserFactory; public AbstractEfaProvider() @@ -75,6 +76,11 @@ public abstract class AbstractEfaProvider implements NetworkProvider } public AbstractEfaProvider(final String apiBase, final String additionalQueryParameter) + { + this(apiBase, additionalQueryParameter, false); + } + + public AbstractEfaProvider(final String apiBase, final String additionalQueryParameter, final boolean canAcceptPoiID) { try { @@ -87,6 +93,7 @@ public abstract class AbstractEfaProvider implements NetworkProvider this.apiBase = apiBase; this.additionalQueryParameter = additionalQueryParameter; + this.canAcceptPoiID = canAcceptPoiID; } protected TimeZone timeZone() @@ -410,16 +417,16 @@ public abstract class AbstractEfaProvider implements NetworkProvider type = LocationType.STATION; id = Integer.parseInt(stopIdStr); } - else if (stopIdStr == null && idStr == null && (lat != 0 || lon != 0)) - { - type = LocationType.ADDRESS; - id = 0; - } else if (poiIdStr != null) { type = LocationType.POI; id = Integer.parseInt(poiIdStr); } + else if (stopIdStr == null && idStr == null && (lat != 0 || lon != 0)) + { + type = LocationType.ADDRESS; + id = 0; + } else if (streetIdStr != null) { type = LocationType.ADDRESS; @@ -1888,7 +1895,12 @@ public abstract class AbstractEfaProvider implements NetworkProvider protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix) { - if ((location.type == LocationType.POI || location.type == LocationType.ADDRESS) && location.hasLocation()) + if (canAcceptPoiID && location.type == LocationType.POI && location.hasId()) + { + uri.append("&type_").append(paramSuffix).append("=poiID"); + uri.append("&name_").append(paramSuffix).append("=").append(location.id); + } + else if ((location.type == LocationType.POI || location.type == LocationType.ADDRESS) && location.hasLocation()) { uri.append("&type_").append(paramSuffix).append("=coord"); uri.append("&name_").append(paramSuffix).append("=") diff --git a/src/de/schildbach/pte/MvvProvider.java b/src/de/schildbach/pte/MvvProvider.java index 5bff8a71..14d3168c 100644 --- a/src/de/schildbach/pte/MvvProvider.java +++ b/src/de/schildbach/pte/MvvProvider.java @@ -38,7 +38,7 @@ public class MvvProvider extends AbstractEfaProvider public MvvProvider() { - super(API_BASE, null); + super(API_BASE, null, false); } public NetworkId id() diff --git a/src/de/schildbach/pte/VmvProvider.java b/src/de/schildbach/pte/VmvProvider.java index d50e507e..19412f5c 100644 --- a/src/de/schildbach/pte/VmvProvider.java +++ b/src/de/schildbach/pte/VmvProvider.java @@ -67,18 +67,4 @@ public class VmvProvider extends AbstractEfaProvider { return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId, "ISO-8859-1")); } - - @Override - protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix) - { - if (location.type == LocationType.POI && location.hasId()) - { - uri.append("&type_").append(paramSuffix).append("=poiID"); - uri.append("&name_").append(paramSuffix).append("=").append(location.id); - } - else - { - super.appendLocation(uri, location, paramSuffix); - } - } } diff --git a/src/de/schildbach/pte/VrrProvider.java b/src/de/schildbach/pte/VrrProvider.java index 1ea4907f..330b8985 100644 --- a/src/de/schildbach/pte/VrrProvider.java +++ b/src/de/schildbach/pte/VrrProvider.java @@ -38,7 +38,7 @@ public class VrrProvider extends AbstractEfaProvider public VrrProvider() { - super(API_BASE, null); + super(API_BASE, null, false); } public NetworkId id() diff --git a/src/de/schildbach/pte/VvsProvider.java b/src/de/schildbach/pte/VvsProvider.java index 6663de7c..9ab330f3 100644 --- a/src/de/schildbach/pte/VvsProvider.java +++ b/src/de/schildbach/pte/VvsProvider.java @@ -35,7 +35,7 @@ public class VvsProvider extends AbstractEfaProvider public VvsProvider() { - super(API_BASE, null); + super(API_BASE, null, true); } public NetworkId id() @@ -67,18 +67,4 @@ public class VvsProvider extends AbstractEfaProvider { return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId, "ISO-8859-1")); } - - @Override - protected void appendLocation(final StringBuilder uri, final Location location, final String paramSuffix) - { - if (location.type == LocationType.POI && location.hasId()) - { - uri.append("&type_").append(paramSuffix).append("=poiID"); - uri.append("&name_").append(paramSuffix).append("=").append(location.id); - } - else - { - super.appendLocation(uri, location, paramSuffix); - } - } }