Refactor hasCapability() implementations to use internal arrays of capabilities.

This commit is contained in:
ialokim 2020-09-15 19:29:30 +02:00 committed by Andreas Schildbach
parent 949b69a443
commit 30e6971a61
5 changed files with 47 additions and 28 deletions

View file

@ -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) {

View file

@ -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<Product> products) {

View file

@ -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

View file

@ -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<Product> 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

View file

@ -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