split api base for Wien

This commit is contained in:
Andreas Schildbach 2012-11-08 13:00:27 +01:00
parent e71b71ff7c
commit 10d393f1c9
6 changed files with 50 additions and 27 deletions

View file

@ -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<Location> 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<Location> 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);

View file

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

View file

@ -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);
}

View file

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

View file

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

View file

@ -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);
}
}