diff --git a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java index 03bb024a..452b1c35 100644 --- a/enabler/src/de/schildbach/pte/AbstractEfaProvider.java +++ b/enabler/src/de/schildbach/pte/AbstractEfaProvider.java @@ -76,12 +76,18 @@ import de.schildbach.pte.util.XmlPullUtil; */ public abstract class AbstractEfaProvider extends AbstractNetworkProvider { - protected final static String SERVER_PRODUCT = "efa"; + protected static final String DEFAULT_DEPARTURE_MONITOR_ENDPOINT = "XSLT_DM_REQUEST"; + protected static final String DEFAULT_TRIP_ENDPOINT = "XSLT_TRIP_REQUEST2"; + protected static final String DEFAULT_STOPFINDER_ENDPOINT = "XML_STOPFINDER_REQUEST"; + protected static final String DEFAULT_COORD_ENDPOINT = "XML_COORD_REQUEST"; + + protected static final String SERVER_PRODUCT = "efa"; - private final String apiBase; private final String departureMonitorEndpoint; private final String tripEndpoint; private final String stopFinderEndpoint; + private final String coordEndpoint; + private final String additionalQueryParameter; private final boolean canAcceptPoiID; private final boolean needsSpEncId; @@ -130,11 +136,22 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider public AbstractEfaProvider(final String apiBase, final String additionalQueryParameter, final boolean canAcceptPoiID) { - this(apiBase, null, null, null, additionalQueryParameter, false, false); + this(apiBase, null, null, null, null, additionalQueryParameter, false, false); } public AbstractEfaProvider(final String apiBase, final String departureMonitorEndpoint, final String tripEndpoint, - final String stopFinderEndpoint, final String additionalQueryParameter, final boolean canAcceptPoiID, final boolean needsSpEncId) + final String stopFinderEndpoint, final String coordEndpoint, final String additionalQueryParameter, final boolean canAcceptPoiID, + final boolean needsSpEncId) + { + this(apiBase + (departureMonitorEndpoint != null ? departureMonitorEndpoint : DEFAULT_DEPARTURE_MONITOR_ENDPOINT), // + apiBase + (tripEndpoint != null ? tripEndpoint : DEFAULT_TRIP_ENDPOINT), // + apiBase + (stopFinderEndpoint != null ? stopFinderEndpoint : DEFAULT_STOPFINDER_ENDPOINT), // + apiBase + (coordEndpoint != null ? coordEndpoint : DEFAULT_COORD_ENDPOINT), // + additionalQueryParameter, canAcceptPoiID, needsSpEncId); + } + + public AbstractEfaProvider(final String departureMonitorEndpoint, final String tripEndpoint, final String stopFinderEndpoint, + final String coordEndpoint, final String additionalQueryParameter, final boolean canAcceptPoiID, final boolean needsSpEncId) { try { @@ -145,10 +162,11 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider throw new RuntimeException(x); } - this.apiBase = apiBase; - this.departureMonitorEndpoint = departureMonitorEndpoint != null ? departureMonitorEndpoint : "XSLT_DM_REQUEST"; - this.tripEndpoint = tripEndpoint != null ? tripEndpoint : "XSLT_TRIP_REQUEST2"; - this.stopFinderEndpoint = stopFinderEndpoint != null ? stopFinderEndpoint : "XML_STOPFINDER_REQUEST"; + this.departureMonitorEndpoint = departureMonitorEndpoint; + this.tripEndpoint = tripEndpoint; + this.stopFinderEndpoint = stopFinderEndpoint; + this.coordEndpoint = coordEndpoint; + this.additionalQueryParameter = additionalQueryParameter; this.canAcceptPoiID = canAcceptPoiID; this.needsSpEncId = needsSpEncId; @@ -194,8 +212,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider protected List jsonStopfinderRequest(final Location constraint) throws IOException { - final StringBuilder uri = new StringBuilder(apiBase); - uri.append(stopFinderEndpoint); + final StringBuilder uri = new StringBuilder(stopFinderEndpoint); appendCommonRequestParams(uri, "JSON"); uri.append("&locationServerActive=1"); if (includeRegionId) @@ -266,8 +283,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider protected List xmlStopfinderRequest(final Location constraint) throws IOException { - final StringBuilder uri = new StringBuilder(apiBase); - uri.append(stopFinderEndpoint); + final StringBuilder uri = new StringBuilder(stopFinderEndpoint); appendCommonRequestParams(uri, "XML"); uri.append("&locationServerActive=1"); if (includeRegionId) @@ -348,8 +364,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider protected NearbyStationsResult xmlCoordRequest(final int lat, final int lon, final int maxDistance, final int maxStations) throws IOException { - final StringBuilder uri = new StringBuilder(apiBase); - uri.append("XML_COORD_REQUEST"); + final StringBuilder uri = new StringBuilder(coordEndpoint); appendCommonRequestParams(uri, "XML"); uri.append("&coord=").append(String.format(Locale.ENGLISH, "%2.6f:%2.6f:WGS84", latLonToDouble(lon), latLonToDouble(lat))); uri.append("&coordListOutputFormat=STRING"); @@ -552,8 +567,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider private NearbyStationsResult nearbyStationsRequest(final int stationId, final int maxStations) throws IOException { - final StringBuilder uri = new StringBuilder(apiBase); - uri.append(departureMonitorEndpoint); + final StringBuilder uri = new StringBuilder(departureMonitorEndpoint); appendCommonRequestParams(uri, "XML"); uri.append("&type_dm=stop&name_dm=").append(stationId); uri.append("&itOptionsActive=1"); @@ -1326,8 +1340,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider public QueryDeparturesResult queryDepartures(final int stationId, final int maxDepartures, final boolean equivs) throws IOException { - final StringBuilder uri = new StringBuilder(apiBase); - uri.append(departureMonitorEndpoint); + final StringBuilder uri = new StringBuilder(departureMonitorEndpoint); appendCommonRequestParams(uri, "XML"); uri.append("&type_dm=stop"); uri.append("&name_dm=").append(stationId); @@ -1654,8 +1667,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider final DateFormat DATE_FORMAT = new SimpleDateFormat("yyyyMMdd"); final DateFormat TIME_FORMAT = new SimpleDateFormat("HHmm"); - final StringBuilder uri = new StringBuilder(apiBase); - uri.append(tripEndpoint); + final StringBuilder uri = new StringBuilder(tripEndpoint); appendCommonRequestParams(uri, "XML"); uri.append("&sessionID=0"); @@ -1740,8 +1752,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider private String commandLink(final String sessionId, final String requestId) { - final StringBuilder uri = new StringBuilder(apiBase); - uri.append(tripEndpoint); + final StringBuilder uri = new StringBuilder(tripEndpoint); uri.append("?sessionID=").append(sessionId); uri.append("&requestID=").append(requestId); diff --git a/enabler/src/de/schildbach/pte/VgnProvider.java b/enabler/src/de/schildbach/pte/VgnProvider.java index 5d557540..c651cd98 100644 --- a/enabler/src/de/schildbach/pte/VgnProvider.java +++ b/enabler/src/de/schildbach/pte/VgnProvider.java @@ -33,7 +33,7 @@ public class VgnProvider extends AbstractEfaProvider public VgnProvider(final String apiBase) { - super(apiBase, DEPARTURE_MONITOR_ENDPOINT, TRIP_ENDPOINT, null, null, false, false); + super(apiBase, DEPARTURE_MONITOR_ENDPOINT, TRIP_ENDPOINT, null, null, null, false, false); } public NetworkId id() diff --git a/enabler/src/de/schildbach/pte/VorProvider.java b/enabler/src/de/schildbach/pte/VorProvider.java index b47d6af3..ef863685 100644 --- a/enabler/src/de/schildbach/pte/VorProvider.java +++ b/enabler/src/de/schildbach/pte/VorProvider.java @@ -28,11 +28,13 @@ import de.schildbach.pte.dto.Style; public class VorProvider extends AbstractEfaProvider { public static final NetworkId NETWORK_ID = NetworkId.VOR; - private final static String API_BASE = "http://depmon.vor.at:8380/vorrbl/"; // http://efa.vor.at/wvb/ + private final static String EFA_API_BASE = "http://efa.vor.at/wvb/"; + private final static String RBL_API_BASE = "http://depmon.vor.at:8380/vorrbl/"; public VorProvider() { - super(API_BASE, null); + super(RBL_API_BASE + DEFAULT_DEPARTURE_MONITOR_ENDPOINT, EFA_API_BASE + DEFAULT_TRIP_ENDPOINT, EFA_API_BASE + DEFAULT_STOPFINDER_ENDPOINT, + RBL_API_BASE + DEFAULT_COORD_ENDPOINT, null, false, false); setIncludeRegionId(false); } diff --git a/enabler/src/de/schildbach/pte/VrrProvider.java b/enabler/src/de/schildbach/pte/VrrProvider.java index eb07c4b5..946b394b 100644 --- a/enabler/src/de/schildbach/pte/VrrProvider.java +++ b/enabler/src/de/schildbach/pte/VrrProvider.java @@ -36,7 +36,7 @@ public class VrrProvider extends AbstractEfaProvider public VrrProvider() { - super(API_BASE, null, null, null, null, false, true); + super(API_BASE, null, null, null, null, null, false, true); } public NetworkId id() diff --git a/enabler/src/de/schildbach/pte/VvmProvider.java b/enabler/src/de/schildbach/pte/VvmProvider.java index 37661fa6..c5b78cef 100644 --- a/enabler/src/de/schildbach/pte/VvmProvider.java +++ b/enabler/src/de/schildbach/pte/VvmProvider.java @@ -33,7 +33,7 @@ public class VvmProvider extends AbstractEfaProvider public VvmProvider() { - super(API_BASE, null, null, null, null, false, true); + super(API_BASE, null, null, null, null, null, false, true); } public NetworkId id() diff --git a/enabler/test/de/schildbach/pte/live/VorProviderLiveTest.java b/enabler/test/de/schildbach/pte/live/VorProviderLiveTest.java index 322bb1e8..0122f278 100644 --- a/enabler/test/de/schildbach/pte/live/VorProviderLiveTest.java +++ b/enabler/test/de/schildbach/pte/live/VorProviderLiveTest.java @@ -112,4 +112,14 @@ public class VorProviderLiveTest extends AbstractProviderLiveTest final QueryConnectionsResult earlierResult = queryMoreConnections(later2Result.context, false); System.out.println(earlierResult); } + + @Test + public void connectionBetweenCoordinates() throws Exception + { + final QueryConnectionsResult result = queryConnections(new Location(LocationType.ADDRESS, 0, 48180281, 16333551), null, new Location( + LocationType.ADDRESS, 0, 48240452, 16444788), new Date(), true, ALL_PRODUCTS, WalkSpeed.NORMAL, Accessibility.NEUTRAL); + System.out.println(result); + final QueryConnectionsResult laterResult = queryMoreConnections(result.context, true); + System.out.println(laterResult); + } }