diff --git a/src/de/schildbach/pte/AbstractEfaProvider.java b/src/de/schildbach/pte/AbstractEfaProvider.java index 9f9c2906..1d89a007 100644 --- a/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/src/de/schildbach/pte/AbstractEfaProvider.java @@ -23,6 +23,7 @@ import static com.google.common.base.Preconditions.checkState; import java.io.IOException; import java.io.Reader; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Currency; import java.util.Date; @@ -96,6 +97,13 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { protected static final String COORD_FORMAT = "WGS84[DD.ddddd]"; protected static final int COORD_FORMAT_TAIL = 7; + private final List CAPABILITIES = Arrays.asList( + Capability.SUGGEST_LOCATIONS, + Capability.NEARBY_LOCATIONS, + Capability.DEPARTURES, + Capability.TRIPS + ); + private final HttpUrl departureMonitorEndpoint; private final HttpUrl tripEndpoint; private final HttpUrl stopFinderEndpoint; @@ -228,9 +236,10 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { return this; } + // this should be overridden by networks not providing one of the default capabilities @Override protected boolean hasCapability(final Capability capability) { - return true; + return CAPABILITIES.contains(capability); } private final void appendCommonRequestParams(final HttpUrl.Builder url, final String outputFormat) { diff --git a/src/de/schildbach/pte/AbstractHafasProvider.java b/src/de/schildbach/pte/AbstractHafasProvider.java index 99a67fb0..123f0748 100644 --- a/src/de/schildbach/pte/AbstractHafasProvider.java +++ b/src/de/schildbach/pte/AbstractHafasProvider.java @@ -20,6 +20,7 @@ package de.schildbach.pte; import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkState; +import java.util.Arrays; import java.util.EnumSet; import java.util.List; import java.util.Set; @@ -43,6 +44,13 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider { protected static final int DEFAULT_MAX_LOCATIONS = 50; protected static final int DEFAULT_MAX_DISTANCE = 20000; + private final List CAPABILITIES = Arrays.asList( + Capability.SUGGEST_LOCATIONS, + Capability.NEARBY_LOCATIONS, + Capability.DEPARTURES, + Capability.TRIPS + ); + protected static final Logger log = LoggerFactory.getLogger(AbstractHafasProvider.class); private Product[] productsMap; @@ -52,9 +60,10 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider { this.productsMap = productsMap; } + // this should be overridden by networks not providing one of the default capabilities @Override protected boolean hasCapability(final Capability capability) { - return true; + return CAPABILITIES.contains(capability); } protected final CharSequence productsString(final Set products) { diff --git a/src/de/schildbach/pte/AbstractNavitiaProvider.java b/src/de/schildbach/pte/AbstractNavitiaProvider.java index d257677d..73c12732 100644 --- a/src/de/schildbach/pte/AbstractNavitiaProvider.java +++ b/src/de/schildbach/pte/AbstractNavitiaProvider.java @@ -24,6 +24,7 @@ import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Date; import java.util.EnumSet; import java.util.LinkedList; @@ -78,6 +79,13 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider { protected final static String SERVER_PRODUCT = "navitia"; protected final static String SERVER_VERSION = "v1"; + private final List CAPABILITIES = Arrays.asList( + Capability.SUGGEST_LOCATIONS, + Capability.NEARBY_LOCATIONS, + Capability.DEPARTURES, + Capability.TRIPS + ); + protected HttpUrl apiBase = HttpUrl.parse("https://api.navitia.io/").newBuilder().addPathSegment(SERVER_VERSION) .build(); @@ -680,13 +688,10 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider { } } + // this should be overridden by networks not providing one of the default capabilities @Override protected boolean hasCapability(final Capability capability) { - if (capability == Capability.SUGGEST_LOCATIONS || capability == Capability.NEARBY_LOCATIONS - || capability == Capability.DEPARTURES || capability == Capability.TRIPS) - return true; - else - return false; + return CAPABILITIES.contains(capability); } @Override diff --git a/src/de/schildbach/pte/NegentweeProvider.java b/src/de/schildbach/pte/NegentweeProvider.java index 281bcd97..55b9487f 100644 --- a/src/de/schildbach/pte/NegentweeProvider.java +++ b/src/de/schildbach/pte/NegentweeProvider.java @@ -80,6 +80,13 @@ public class NegentweeProvider extends AbstractNetworkProvider { private static final TimeZone API_TIMEZONE = TimeZone.getTimeZone("Europe/Amsterdam"); private static final int DEFAULT_MAX_LOCATIONS = 50; + private final List CAPABILITIES = Arrays.asList( + Capability.SUGGEST_LOCATIONS, + Capability.NEARBY_LOCATIONS, + Capability.DEPARTURES, + Capability.TRIPS + ); + private static final EnumSet trainProducts = EnumSet.of(Product.HIGH_SPEED_TRAIN, Product.REGIONAL_TRAIN, Product.SUBURBAN_TRAIN); @@ -698,15 +705,7 @@ public class NegentweeProvider extends AbstractNetworkProvider { @Override protected boolean hasCapability(Capability capability) { - switch (capability) { - case SUGGEST_LOCATIONS: - case NEARBY_LOCATIONS: - case DEPARTURES: - case TRIPS: - return true; - default: - return false; - } + return CAPABILITIES.contains(capability); } @Override diff --git a/src/de/schildbach/pte/VrsProvider.java b/src/de/schildbach/pte/VrsProvider.java index d27eb782..fc587d35 100644 --- a/src/de/schildbach/pte/VrsProvider.java +++ b/src/de/schildbach/pte/VrsProvider.java @@ -23,6 +23,7 @@ import java.io.IOException; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import java.util.Collections; import java.util.Comparator; @@ -81,6 +82,13 @@ import okhttp3.HttpUrl; */ public class VrsProvider extends AbstractNetworkProvider { + private final List CAPABILITIES = Arrays.asList( + Capability.SUGGEST_LOCATIONS, + Capability.NEARBY_LOCATIONS, + Capability.DEPARTURES, + Capability.TRIPS + ); + private static final Logger log = LoggerFactory.getLogger(VrsProvider.class); @SuppressWarnings("serial") @@ -342,18 +350,7 @@ public class VrsProvider extends AbstractNetworkProvider { @Override protected boolean hasCapability(Capability capability) { - switch (capability) { - case DEPARTURES: - return true; - case NEARBY_LOCATIONS: - return true; - case SUGGEST_LOCATIONS: - return true; - case TRIPS: - return true; - default: - return false; - } + return CAPABILITIES.contains(capability); } // only stations supported