Hafas: Set up default API endpoints in the constructor.

This commit is contained in:
Andreas Schildbach 2015-09-04 17:07:29 +02:00
parent 10d04bcb39
commit 8b93e6135a
27 changed files with 58 additions and 42 deletions

View file

@ -92,9 +92,10 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
private static final String REQC_PROD = "hafas"; private static final String REQC_PROD = "hafas";
protected static final int DEFAULT_MAX_DEPARTURES = 100; protected static final int DEFAULT_MAX_DEPARTURES = 100;
protected final String stationBoardEndpoint; protected String stationBoardEndpoint;
protected final String getStopEndpoint; protected String getStopEndpoint;
protected final String queryEndpoint; protected String queryEndpoint;
private @Nullable String extXmlEndpoint = null;
private Product[] productsMap; private Product[] productsMap;
private @Nullable String accessId = null; private @Nullable String accessId = null;
private @Nullable String clientType = "ANDROID"; private @Nullable String clientType = "ANDROID";
@ -103,7 +104,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
private Charset jsonNearbyLocationsEncoding = Charsets.ISO_8859_1; private Charset jsonNearbyLocationsEncoding = Charsets.ISO_8859_1;
private boolean dominantPlanStopTime = false; private boolean dominantPlanStopTime = false;
private boolean useIso8601 = false; private boolean useIso8601 = false;
private @Nullable String extXmlEndpoint = null;
private boolean stationBoardHasStationTable = true; private boolean stationBoardHasStationTable = true;
private boolean stationBoardHasLocation = false; private boolean stationBoardHasLocation = false;
private boolean stationBoardCanDoEquivs = true; private boolean stationBoardCanDoEquivs = true;
@ -162,17 +162,36 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
} }
} }
public AbstractHafasProvider(final NetworkId network, final String stationBoardEndpoint, final String getStopEndpoint, final String queryEndpoint, public AbstractHafasProvider(final NetworkId network, final String apiBase, final String apiLanguage, final Product[] productsMap)
final Product[] productsMap)
{ {
super(network); super(network);
this.stationBoardEndpoint = stationBoardEndpoint; this.stationBoardEndpoint = apiBase + "stboard.exe/" + apiLanguage;
this.getStopEndpoint = getStopEndpoint; this.getStopEndpoint = apiBase + "ajax-getstop.exe/" + apiLanguage;
this.queryEndpoint = queryEndpoint; this.queryEndpoint = apiBase + "query.exe/" + apiLanguage;
this.productsMap = productsMap; this.productsMap = productsMap;
} }
protected void setStationBoardEndpoint(final String stationBoardEndpoint)
{
this.stationBoardEndpoint = stationBoardEndpoint;
}
protected void setGetStopEndpoint(final String getStopEndpoint)
{
this.getStopEndpoint = getStopEndpoint;
}
protected void setQueryEndpoint(final String queryEndpoint)
{
this.queryEndpoint = queryEndpoint;
}
protected void setExtXmlEndpoint(final String extXmlEndpoint)
{
this.extXmlEndpoint = extXmlEndpoint;
}
protected void setClientType(final String clientType) protected void setClientType(final String clientType)
{ {
this.clientType = clientType; this.clientType = clientType;
@ -208,11 +227,6 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
this.useIso8601 = useIso8601; this.useIso8601 = useIso8601;
} }
protected void setExtXmlEndpoint(final String extXmlEndpoint)
{
this.extXmlEndpoint = extXmlEndpoint;
}
protected void setStationBoardHasStationTable(final boolean stationBoardHasStationTable) protected void setStationBoardHasStationTable(final boolean stationBoardHasStationTable)
{ {
this.stationBoardHasStationTable = stationBoardHasStationTable; this.stationBoardHasStationTable = stationBoardHasStationTable;

View file

@ -29,15 +29,15 @@ import de.schildbach.pte.dto.Product;
public final class BahnProvider extends AbstractHafasProvider public final class BahnProvider extends AbstractHafasProvider
{ {
private static final String API_BASE = "http://reiseauskunft.bahn.de/bin/"; private static final String API_BASE = "http://reiseauskunft.bahn.de/bin/";
private static final String API_BASE_STATION_BOARD = "http://mobile.bahn.de/bin/mobil/";
private static final Product[] PRODUCTS_MAP = { Product.HIGH_SPEED_TRAIN, Product.HIGH_SPEED_TRAIN, Product.REGIONAL_TRAIN, private static final Product[] PRODUCTS_MAP = { Product.HIGH_SPEED_TRAIN, Product.HIGH_SPEED_TRAIN, Product.REGIONAL_TRAIN,
Product.REGIONAL_TRAIN, Product.SUBURBAN_TRAIN, Product.BUS, Product.FERRY, Product.SUBWAY, Product.TRAM, Product.ON_DEMAND, null, null, Product.REGIONAL_TRAIN, Product.SUBURBAN_TRAIN, Product.BUS, Product.FERRY, Product.SUBWAY, Product.TRAM, Product.ON_DEMAND, null, null,
null, null }; null, null };
public BahnProvider() public BahnProvider()
{ {
super(NetworkId.DB, API_BASE_STATION_BOARD + "bhftafel.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.DB, API_BASE, "dn", PRODUCTS_MAP);
setStationBoardEndpoint("http://mobile.bahn.de/bin/mobil/bhftafel.exe/dn");
setStationBoardHasStationTable(false); setStationBoardHasStationTable(false);
setJsonGetStopsUseWeight(false); setJsonGetStopsUseWeight(false);
} }

View file

@ -38,14 +38,16 @@ import de.schildbach.pte.geo.Berlin;
public final class BvgProvider extends AbstractHafasProvider public final class BvgProvider extends AbstractHafasProvider
{ {
private static final String API_BASE = "https://fahrinfo.bvg.de/Fahrinfo/bin/"; private static final String API_BASE = "https://fahrinfo.bvg.de/Fahrinfo/bin/";
private static final String API_BASE_STATION_BOARD = "http://bvg.hafas.de/bin/";
private static final Product[] PRODUCTS_MAP = { Product.SUBURBAN_TRAIN, Product.SUBWAY, Product.TRAM, Product.BUS, Product.FERRY, private static final Product[] PRODUCTS_MAP = { Product.SUBURBAN_TRAIN, Product.SUBWAY, Product.TRAM, Product.BUS, Product.FERRY,
Product.HIGH_SPEED_TRAIN, Product.REGIONAL_TRAIN, Product.ON_DEMAND }; Product.HIGH_SPEED_TRAIN, Product.REGIONAL_TRAIN, Product.ON_DEMAND };
public BvgProvider() public BvgProvider()
{ {
super(NetworkId.BVG, API_BASE_STATION_BOARD + "stboard.exe/dn", API_BASE + "ajax-getstop.bin/dny", API_BASE + "query.bin/dn", PRODUCTS_MAP); super(NetworkId.BVG, API_BASE, "dn", PRODUCTS_MAP);
setStationBoardEndpoint("http://bvg.hafas.de/bin/stboard.exe/dn");
setGetStopEndpoint(API_BASE + "ajax-getstop.bin/dn");
setQueryEndpoint(API_BASE + "query.bin/dn");
setJsonGetStopsUseWeight(false); setJsonGetStopsUseWeight(false);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -36,7 +36,7 @@ public class DsbProvider extends AbstractHafasProvider
public DsbProvider() public DsbProvider()
{ {
super(NetworkId.DSB, API_BASE + "stboard.exe/mn", API_BASE + "ajax-getstop.exe/mn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.DSB, API_BASE, "mn", PRODUCTS_MAP);
setStationBoardHasStationTable(false); setStationBoardHasStationTable(false);
} }

View file

@ -43,7 +43,7 @@ public class EireannProvider extends AbstractHafasProvider
public EireannProvider() public EireannProvider()
{ {
super(NetworkId.EIREANN, API_BASE + "stboard.exe/en", API_BASE + "ajax-getstop.exe/en", API_BASE + "query.exe/en", PRODUCTS_MAP); super(NetworkId.EIREANN, API_BASE, "en", PRODUCTS_MAP);
setStationBoardHasStationTable(false); setStationBoardHasStationTable(false);
} }

View file

@ -66,7 +66,7 @@ public class InvgProvider extends AbstractHafasProvider
public InvgProvider() public InvgProvider()
{ {
super(NetworkId.INVG, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.INVG, API_BASE, "dn", PRODUCTS_MAP);
setStationBoardCanDoEquivs(false); setStationBoardCanDoEquivs(false);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);

View file

@ -42,7 +42,7 @@ public class JetProvider extends AbstractHafasProvider
public JetProvider() public JetProvider()
{ {
super(NetworkId.JET, API_BASE + "stboard.bin/yn", API_BASE + "ajax-getstop.bin/yn", API_BASE + "query.bin/yn", PRODUCTS_MAP); super(NetworkId.JET, API_BASE, "yn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -34,7 +34,7 @@ public class LuProvider extends AbstractHafasProvider
public LuProvider() public LuProvider()
{ {
super(NetworkId.LU, API_BASE + "stboard.exe/fn", API_BASE + "ajax-getstop.exe/fn", API_BASE + "query.exe/fn", PRODUCTS_MAP); super(NetworkId.LU, API_BASE, "fn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -40,7 +40,7 @@ public class NasaProvider extends AbstractHafasProvider
public NasaProvider() public NasaProvider()
{ {
super(NetworkId.NASA, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.NASA, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -41,7 +41,7 @@ public class NriProvider extends AbstractHafasProvider
public NriProvider() public NriProvider()
{ {
super(NetworkId.NRI, API_BASE + "stboard.exe/on", API_BASE + "ajax-getstop.exe/ony", API_BASE + "query.exe/on", PRODUCTS_MAP); super(NetworkId.NRI, API_BASE, "on", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
} }

View file

@ -39,7 +39,7 @@ public class NsProvider extends AbstractHafasProvider
public NsProvider() public NsProvider()
{ {
super(NetworkId.NS, API_BASE + "stboard.exe/nn", API_BASE + "ajax-getstop.exe/nny", API_BASE + "query.exe/nn", PRODUCTS_MAP); super(NetworkId.NS, API_BASE, "nn", PRODUCTS_MAP);
setHtmlNearbyStationsPattern(HTML_NEARBY_STATIONS_PATTERN); setHtmlNearbyStationsPattern(HTML_NEARBY_STATIONS_PATTERN);
setStationBoardHasLocation(true); setStationBoardHasLocation(true);

View file

@ -41,7 +41,7 @@ public class NvvProvider extends AbstractHafasProvider
public NvvProvider() public NvvProvider()
{ {
super(NetworkId.NVV, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.NVV, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -41,7 +41,7 @@ public class OebbProvider extends AbstractHafasProvider
public OebbProvider() public OebbProvider()
{ {
super(NetworkId.OEBB, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dny", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.OEBB, API_BASE, "dn", PRODUCTS_MAP);
setDominantPlanStopTime(true); setDominantPlanStopTime(true);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);

View file

@ -35,7 +35,7 @@ public class PlProvider extends AbstractHafasProvider
public PlProvider() public PlProvider()
{ {
super(NetworkId.PL, API_BASE + "stboard.exe/pn", API_BASE + "ajax-getstop.exe/pn", API_BASE + "query.exe/pn", PRODUCTS_MAP); super(NetworkId.PL, API_BASE, "pn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -40,7 +40,7 @@ public class RsagProvider extends AbstractHafasProvider
public RsagProvider() public RsagProvider()
{ {
super(NetworkId.RSAG, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.RSAG, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -35,7 +35,7 @@ public class RtProvider extends AbstractHafasProvider
public RtProvider() public RtProvider()
{ {
super(NetworkId.RT, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.RT, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.ISO_8859_1); setJsonNearbyLocationsEncoding(Charsets.ISO_8859_1);

View file

@ -33,7 +33,7 @@ public class SbbProvider extends AbstractHafasProvider
public SbbProvider() public SbbProvider()
{ {
super(NetworkId.SBB, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.SBB, API_BASE, "dn", PRODUCTS_MAP);
setStationBoardHasStationTable(false); setStationBoardHasStationTable(false);
} }

View file

@ -40,7 +40,7 @@ public class SeProvider extends AbstractHafasProvider
public SeProvider() public SeProvider()
{ {
super(NetworkId.SE, API_BASE + "stboard.exe/sn", API_BASE + "ajax-getstop.exe/sny", API_BASE + "query.exe/sn", PRODUCTS_MAP); super(NetworkId.SE, API_BASE, "sn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -62,7 +62,7 @@ public class SeptaProvider extends AbstractHafasProvider
public SeptaProvider() public SeptaProvider()
{ {
super(NetworkId.SEPTA, API_BASE + "stboard.exe/en", API_BASE + "ajax-getstop.exe/dny", API_BASE + "query.exe/en", PRODUCTS_MAP); super(NetworkId.SEPTA, API_BASE, "en", PRODUCTS_MAP);
setStationBoardCanDoEquivs(false); setStationBoardCanDoEquivs(false);
setTimeZone("EST"); setTimeZone("EST");

View file

@ -36,7 +36,7 @@ public class ShProvider extends AbstractHafasProvider
public ShProvider() public ShProvider()
{ {
super(NetworkId.SH, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.SH, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -41,7 +41,7 @@ public class SncbProvider extends AbstractHafasProvider
public SncbProvider() public SncbProvider()
{ {
super(NetworkId.SNCB, API_BASE + "stboard.exe/nn", API_BASE + "ajax-getstop.exe/nny", API_BASE + "query.exe/nn", PRODUCTS_MAP); super(NetworkId.SNCB, API_BASE, "nn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -37,7 +37,7 @@ public class StockholmProvider extends AbstractHafasProvider
public StockholmProvider() public StockholmProvider()
{ {
super(NetworkId.STOCKHOLM, API_BASE + "stboard.exe/sn", API_BASE + "ajax-getstop.exe/sny", API_BASE + "query.exe/sn", PRODUCTS_MAP); super(NetworkId.STOCKHOLM, API_BASE, "sn", PRODUCTS_MAP);
setStyles(STYLES); setStyles(STYLES);
setStationBoardHasStationTable(false); setStationBoardHasStationTable(false);

View file

@ -40,7 +40,7 @@ public class VbbProvider extends AbstractHafasProvider
public VbbProvider() public VbbProvider()
{ {
super(NetworkId.VBB, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.VBB, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsUseWeight(false); setJsonGetStopsUseWeight(false);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);

View file

@ -32,7 +32,7 @@ public class VbnProvider extends AbstractHafasProvider
public VbnProvider() public VbnProvider()
{ {
super(NetworkId.VBN, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dny", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.VBN, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -38,7 +38,7 @@ public class VgsProvider extends AbstractHafasProvider
public VgsProvider() public VgsProvider()
{ {
super(NetworkId.VGS, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.VGS, API_BASE, "dn", PRODUCTS_MAP);
setStationBoardHasStationTable(false); setStationBoardHasStationTable(false);
} }

View file

@ -38,7 +38,7 @@ public class VsnProvider extends AbstractHafasProvider
public VsnProvider() public VsnProvider()
{ {
super(NetworkId.VSN, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.VSN, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);

View file

@ -39,7 +39,7 @@ public class ZvvProvider extends AbstractHafasProvider
public ZvvProvider() public ZvvProvider()
{ {
super(NetworkId.ZVV, API_BASE + "stboard.exe/dn", API_BASE + "ajax-getstop.exe/dn", API_BASE + "query.exe/dn", PRODUCTS_MAP); super(NetworkId.ZVV, API_BASE, "dn", PRODUCTS_MAP);
setJsonGetStopsEncoding(Charsets.UTF_8); setJsonGetStopsEncoding(Charsets.UTF_8);
setJsonNearbyLocationsEncoding(Charsets.UTF_8); setJsonNearbyLocationsEncoding(Charsets.UTF_8);