mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-07 19:48:49 +00:00
remove superfluous departureQueryUri() method from interface
git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@304 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
parent
1e49dd0e46
commit
4d4355ac4f
36 changed files with 126 additions and 128 deletions
|
@ -634,8 +634,12 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
||||||
throw new IllegalStateException("cannot normalize mot '" + mot + "' name '" + name + "' long '" + longName + "'");
|
throw new IllegalStateException("cannot normalize mot '" + mot + "' name '" + name + "' long '" + longName + "'");
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
protected abstract String departuresQueryUri(String stationId, int maxDepartures);
|
||||||
|
|
||||||
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
|
final String uri = departuresQueryUri(stationId, maxDepartures);
|
||||||
|
|
||||||
InputStream is = null;
|
InputStream is = null;
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
@ -691,11 +695,11 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
||||||
XmlPullUtil.skipRestOfTree(pp);
|
XmlPullUtil.skipRestOfTree(pp);
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, locationId, location, departures);
|
return new QueryDeparturesResult(locationId, location, departures);
|
||||||
}
|
}
|
||||||
else if ("notidentified".equals(nameState))
|
else if ("notidentified".equals(nameState))
|
||||||
{
|
{
|
||||||
return new QueryDeparturesResult(uri, QueryDeparturesResult.Status.INVALID_STATION);
|
return new QueryDeparturesResult(QueryDeparturesResult.Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
@ -708,11 +712,11 @@ public abstract class AbstractEfaProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
catch (final FileNotFoundException x)
|
catch (final FileNotFoundException x)
|
||||||
{
|
{
|
||||||
return new QueryDeparturesResult(uri, QueryDeparturesResult.Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(QueryDeparturesResult.Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
}
|
}
|
||||||
catch (final SocketTimeoutException x)
|
catch (final SocketTimeoutException x)
|
||||||
{
|
{
|
||||||
return new QueryDeparturesResult(uri, QueryDeparturesResult.Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(QueryDeparturesResult.Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class AvvProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -432,7 +432,7 @@ public final class BahnProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("bhftafel.exe/dn");
|
uri.append(API_BASE).append("bhftafel.exe/dn");
|
||||||
|
@ -459,9 +459,9 @@ public final class BahnProvider implements NetworkProvider
|
||||||
);
|
);
|
||||||
private static final Pattern P_DEPARTURES_MESSAGES = Pattern.compile("<Err code=\"([^\"]*)\" text=\"([^\"]*)\"");
|
private static final Pattern P_DEPARTURES_MESSAGES = Pattern.compile("<Err code=\"([^\"]*)\" text=\"([^\"]*)\"");
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
final Matcher mMessage = P_DEPARTURES_MESSAGES.matcher(page);
|
final Matcher mMessage = P_DEPARTURES_MESSAGES.matcher(page);
|
||||||
if (mMessage.find())
|
if (mMessage.find())
|
||||||
|
@ -470,9 +470,9 @@ public final class BahnProvider implements NetworkProvider
|
||||||
final String text = mMessage.group(2);
|
final String text = mMessage.group(2);
|
||||||
|
|
||||||
if (code.equals("H730")) // Your input is not valid
|
if (code.equals("H730")) // Your input is not valid
|
||||||
return new QueryDeparturesResult(uri, QueryDeparturesResult.Status.INVALID_STATION);
|
return new QueryDeparturesResult(QueryDeparturesResult.Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
if (code.equals("H890")) // No trains in result
|
if (code.equals("H890")) // No trains in result
|
||||||
return new QueryDeparturesResult(uri, QueryDeparturesResult.Status.NO_INFO);
|
return new QueryDeparturesResult(QueryDeparturesResult.Status.NO_INFO, Integer.parseInt(stationId));
|
||||||
throw new IllegalArgumentException("unknown error " + code + ", " + text);
|
throw new IllegalArgumentException("unknown error " + code + ", " + text);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -512,11 +512,11 @@ public final class BahnProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, 0, null, departures);
|
return new QueryDeparturesResult(Integer.parseInt(stationId), null, departures);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static final Pattern P_NORMALIZE_LINE_NUMBER = Pattern.compile("\\d{2,5}");
|
private static final Pattern P_NORMALIZE_LINE_NUMBER = Pattern.compile("\\d{2,5}");
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class BvbProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class GvhProvider extends AbstractEfaProvider
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(String stationId, int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(String stationId, int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class IvbProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -70,7 +70,8 @@ public class LinzProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, stationId);
|
return String.format(NEARBY_STATION_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -124,7 +124,8 @@ public class MvvProvider extends AbstractEfaProvider
|
||||||
return new NearbyStationsResult(uri, stations.subList(0, maxStations));
|
return new NearbyStationsResult(uri, stations.subList(0, maxStations));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class NasaProvider extends AbstractHafasProvider
|
||||||
return String.format(NEARBY_URI, stationId);
|
return String.format(NEARBY_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||||
|
@ -124,10 +124,10 @@ public class NasaProvider extends AbstractHafasProvider
|
||||||
+ "(?:<td class=\"center sepline top\">\n(" + ParserUtils.P_PLATFORM + ").*?)?" // position
|
+ "(?:<td class=\"center sepline top\">\n(" + ParserUtils.P_PLATFORM + ").*?)?" // position
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
// scrape page
|
// scrape page
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
||||||
|
@ -135,11 +135,11 @@ public class NasaProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
// messages
|
// messages
|
||||||
if (mHeadCoarse.group(3) != null)
|
if (mHeadCoarse.group(3) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.NO_INFO);
|
return new QueryDeparturesResult(Status.NO_INFO, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(4) != null)
|
else if (mHeadCoarse.group(4) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.INVALID_STATION);
|
return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(5) != null)
|
else if (mHeadCoarse.group(5) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
|
|
||||||
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
||||||
if (mHeadFine.matches())
|
if (mHeadFine.matches())
|
||||||
|
@ -202,20 +202,20 @@ public class NasaProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(2) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(2) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, 0, location, departures);
|
return new QueryDeparturesResult(Integer.parseInt(stationId), location, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + page + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + page + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -120,25 +120,16 @@ public interface NetworkProvider
|
||||||
GetConnectionDetailsResult getConnectionDetails(String connectionUri) throws IOException;
|
GetConnectionDetailsResult getConnectionDetails(String connectionUri) throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct an Uri for getting departures
|
* Get departures at a given station, probably live
|
||||||
*
|
*
|
||||||
* @param stationId
|
* @param stationId
|
||||||
* id of the station
|
* id of the station
|
||||||
* @param maxDepartures
|
* @param maxDepartures
|
||||||
* maximum number of departures to get or {@code 0}
|
* maximum number of departures to get or {@code 0}
|
||||||
* @return uri for getting departures
|
|
||||||
*/
|
|
||||||
String departuresQueryUri(String stationId, int maxDepartures);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get departures at a given station, probably live
|
|
||||||
*
|
|
||||||
* @param queryUri
|
|
||||||
* uri constructed by {@link NetworkProvider#departuresQueryUri}
|
|
||||||
* @return result object containing the departures
|
* @return result object containing the departures
|
||||||
* @throws IOException
|
* @throws IOException
|
||||||
*/
|
*/
|
||||||
QueryDeparturesResult queryDepartures(String queryUri) throws IOException;
|
QueryDeparturesResult queryDepartures(String stationId, int maxDepartures) throws IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get colors of line
|
* Get colors of line
|
||||||
|
|
|
@ -491,7 +491,7 @@ public class OebbProvider extends AbstractHafasProvider
|
||||||
throw new UnsupportedOperationException();
|
throw new UnsupportedOperationException();
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||||
final Date now = new Date();
|
final Date now = new Date();
|
||||||
|
@ -518,16 +518,16 @@ public class OebbProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
private static final Pattern P_DEPARTURES_ERROR = Pattern.compile("(Verbindung zum Server konnte leider nicht hergestellt werden)");
|
private static final Pattern P_DEPARTURES_ERROR = Pattern.compile("(Verbindung zum Server konnte leider nicht hergestellt werden)");
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
// scrape page
|
// scrape page
|
||||||
final String page = ParserUtils.scrape(uri).toString().substring(14);
|
final String page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures)).toString().substring(14);
|
||||||
|
|
||||||
final Matcher mError = P_DEPARTURES_ERROR.matcher(page);
|
final Matcher mError = P_DEPARTURES_ERROR.matcher(page);
|
||||||
if (mError.find())
|
if (mError.find())
|
||||||
{
|
{
|
||||||
if (mError.group(1) != null)
|
if (mError.group(1) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
|
@ -537,7 +537,7 @@ public class OebbProvider extends AbstractHafasProvider
|
||||||
final int locationId = head.optInt("stationEvaId", -1);
|
final int locationId = head.optInt("stationEvaId", -1);
|
||||||
// final boolean rt = head.optBoolean("rtInfo");
|
// final boolean rt = head.optBoolean("rtInfo");
|
||||||
if (locationId == -1)
|
if (locationId == -1)
|
||||||
return new QueryDeparturesResult(uri, Status.INVALID_STATION);
|
return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
|
|
||||||
final List<Departure> departures = new ArrayList<Departure>(8);
|
final List<Departure> departures = new ArrayList<Departure>(8);
|
||||||
|
|
||||||
|
@ -565,11 +565,11 @@ public class OebbProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, locationId, location, departures);
|
return new QueryDeparturesResult(locationId, location, departures);
|
||||||
}
|
}
|
||||||
catch (final JSONException x)
|
catch (final JSONException x)
|
||||||
{
|
{
|
||||||
throw new RuntimeException("cannot parse: '" + page + "' on " + uri, x);
|
throw new RuntimeException("cannot parse: '" + page + "' on " + stationId, x);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -427,7 +427,7 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
return time;
|
return time;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||||
|
@ -473,9 +473,9 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
+ "(?:<img src=\".+?\" alt=\"\" />\n<b>[^<]*</b>\n<br />\n)*" // (messages)
|
+ "(?:<img src=\".+?\" alt=\"\" />\n<b>[^<]*</b>\n<br />\n)*" // (messages)
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
||||||
|
@ -483,11 +483,11 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
// messages
|
// messages
|
||||||
if (mHeadCoarse.group(4) != null)
|
if (mHeadCoarse.group(4) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.INVALID_STATION);
|
return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(5) != null)
|
else if (mHeadCoarse.group(5) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
|
|
||||||
final int stationId = Integer.parseInt(mHeadCoarse.group(3));
|
final int locationId = Integer.parseInt(mHeadCoarse.group(3));
|
||||||
|
|
||||||
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
||||||
if (mHeadFine.matches())
|
if (mHeadFine.matches())
|
||||||
|
@ -541,20 +541,20 @@ public class RmvProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, stationId, location, departures);
|
return new QueryDeparturesResult(locationId, location, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + page + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + page + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -367,7 +367,7 @@ public class SbbProvider extends AbstractHafasProvider
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("bhftafel.exe/dox");
|
uri.append(API_BASE).append("bhftafel.exe/dox");
|
||||||
|
@ -407,9 +407,9 @@ public class SbbProvider extends AbstractHafasProvider
|
||||||
+ ".*?" //
|
+ ".*?" //
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
||||||
|
@ -417,11 +417,11 @@ public class SbbProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
// messages
|
// messages
|
||||||
if (mHeadCoarse.group(3) != null)
|
if (mHeadCoarse.group(3) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.NO_INFO);
|
return new QueryDeparturesResult( Status.NO_INFO, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(5) != null)
|
else if (mHeadCoarse.group(5) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.INVALID_STATION);
|
return new QueryDeparturesResult( Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(6) != null)
|
else if (mHeadCoarse.group(6) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult( Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
|
|
||||||
final String head = mHeadCoarse.group(1) + mHeadCoarse.group(4);
|
final String head = mHeadCoarse.group(1) + mHeadCoarse.group(4);
|
||||||
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(head);
|
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(head);
|
||||||
|
@ -469,20 +469,20 @@ public class SbbProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, locationId, location, departures);
|
return new QueryDeparturesResult(locationId, location, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + head + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + head + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + page + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + page + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -64,7 +64,7 @@ public class SncbProvider extends AbstractHafasProvider
|
||||||
return String.format(NEARBY_URI, stationId);
|
return String.format(NEARBY_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append("http://hari.b-rail.be/hari3/webserver1/bin/stboard.exe/dox");
|
uri.append("http://hari.b-rail.be/hari3/webserver1/bin/stboard.exe/dox");
|
||||||
|
@ -99,9 +99,9 @@ public class SncbProvider extends AbstractHafasProvider
|
||||||
+ "(?:<span class=\"delay\">([+-]?\\d+|Ausfall)</span>\r\n)?" // delay
|
+ "(?:<span class=\"delay\">([+-]?\\d+|Ausfall)</span>\r\n)?" // delay
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
||||||
|
@ -109,9 +109,9 @@ public class SncbProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
// messages
|
// messages
|
||||||
if (mHeadCoarse.group(3) != null)
|
if (mHeadCoarse.group(3) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.INVALID_STATION);
|
return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(4) != null)
|
else if (mHeadCoarse.group(4) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
|
|
||||||
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
||||||
if (mHeadFine.matches())
|
if (mHeadFine.matches())
|
||||||
|
@ -150,20 +150,20 @@ public class SncbProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, 0, location, departures);
|
return new QueryDeparturesResult(Integer.parseInt(stationId), location, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + page + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + page + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class SvvProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -72,7 +72,8 @@ public class TflProvider extends AbstractEfaProvider
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -277,8 +277,8 @@ public final class VbbProvider implements NetworkProvider
|
||||||
if (departureTime.after(arrivalTime))
|
if (departureTime.after(arrivalTime))
|
||||||
arrivalTime = ParserUtils.addDays(arrivalTime, 1);
|
arrivalTime = ParserUtils.addDays(arrivalTime, 1);
|
||||||
final String line = normalizeLine(ParserUtils.resolveEntities(mConFine.group(4)));
|
final String line = normalizeLine(ParserUtils.resolveEntities(mConFine.group(4)));
|
||||||
final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, departureTime, arrivalTime, line,
|
final Connection connection = new Connection(AbstractHafasProvider.extractConnectionId(link), link, departureTime, arrivalTime,
|
||||||
line != null ? LINES.get(line.charAt(0)) : null, 0, from.name, 0, to.name, null);
|
line, line != null ? LINES.get(line.charAt(0)) : null, 0, from.name, 0, to.name, null);
|
||||||
connections.add(connection);
|
connections.add(connection);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -424,8 +424,8 @@ public final class VbbProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
|
|
||||||
if (firstDepartureTime != null && lastArrivalTime != null)
|
if (firstDepartureTime != null && lastArrivalTime != null)
|
||||||
return new GetConnectionDetailsResult(currentDate, new Connection(AbstractHafasProvider.extractConnectionId(uri), uri, firstDepartureTime,
|
return new GetConnectionDetailsResult(currentDate, new Connection(AbstractHafasProvider.extractConnectionId(uri), uri,
|
||||||
lastArrivalTime, null, null, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts));
|
firstDepartureTime, lastArrivalTime, null, null, firstDepartureId, firstDeparture, lastArrivalId, lastArrival, parts));
|
||||||
else
|
else
|
||||||
return new GetConnectionDetailsResult(currentDate, null);
|
return new GetConnectionDetailsResult(currentDate, null);
|
||||||
}
|
}
|
||||||
|
@ -438,7 +438,7 @@ public final class VbbProvider implements NetworkProvider
|
||||||
private static final String DEPARTURE_URL_LIVE = "http://mobil.bvg.de/IstAbfahrtzeiten/index/mobil?";
|
private static final String DEPARTURE_URL_LIVE = "http://mobil.bvg.de/IstAbfahrtzeiten/index/mobil?";
|
||||||
private static final String DEPARTURE_URL_PLAN = "http://mobil.bvg.de/Fahrinfo/bin/stboard.bin/dox/dox?boardType=dep&start=yes&";
|
private static final String DEPARTURE_URL_PLAN = "http://mobil.bvg.de/Fahrinfo/bin/stboard.bin/dox/dox?boardType=dep&start=yes&";
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final boolean live = stationId.length() == 6;
|
final boolean live = stationId.length() == 6;
|
||||||
|
|
||||||
|
@ -469,19 +469,13 @@ public final class VbbProvider implements NetworkProvider
|
||||||
+ "\\s*(.*?)\\s*</a>.*?" // destination
|
+ "\\s*(.*?)\\s*</a>.*?" // destination
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
private static final Pattern P_DEPARTURES_SERVICE_DOWN = Pattern.compile("Wartungsarbeiten");
|
private static final Pattern P_DEPARTURES_SERVICE_DOWN = Pattern.compile("Wartungsarbeiten");
|
||||||
private static final Pattern P_DEPARTURES_URI_STATION_ID = Pattern.compile("input=(\\d+)");
|
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
final Matcher mStationId = P_DEPARTURES_URI_STATION_ID.matcher(uri);
|
|
||||||
if (!mStationId.find())
|
|
||||||
throw new IllegalStateException(uri);
|
|
||||||
final int stationId = Integer.parseInt(mStationId.group(1));
|
|
||||||
|
|
||||||
if (P_DEPARTURES_SERVICE_DOWN.matcher(page).find())
|
if (P_DEPARTURES_SERVICE_DOWN.matcher(page).find())
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
final Matcher mHead = P_DEPARTURES_HEAD.matcher(page);
|
||||||
|
@ -495,7 +489,7 @@ public final class VbbProvider implements NetworkProvider
|
||||||
final Matcher mDepCoarse = P_DEPARTURES_COARSE.matcher(page);
|
final Matcher mDepCoarse = P_DEPARTURES_COARSE.matcher(page);
|
||||||
while (mDepCoarse.find())
|
while (mDepCoarse.find())
|
||||||
{
|
{
|
||||||
final boolean live = uri.contains("IstAbfahrtzeiten");
|
final boolean live = stationId.length() == 6;
|
||||||
final Matcher mDepFine = (live ? P_DEPARTURES_LIVE_FINE : P_DEPARTURES_PLAN_FINE).matcher(mDepCoarse.group(1));
|
final Matcher mDepFine = (live ? P_DEPARTURES_LIVE_FINE : P_DEPARTURES_PLAN_FINE).matcher(mDepCoarse.group(1));
|
||||||
if (mDepFine.matches())
|
if (mDepFine.matches())
|
||||||
{
|
{
|
||||||
|
@ -533,15 +527,15 @@ public final class VbbProvider implements NetworkProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, stationId, location, departures);
|
return new QueryDeparturesResult(Integer.parseInt(stationId), location, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return new QueryDeparturesResult(uri, Status.NO_INFO);
|
return new QueryDeparturesResult(Status.NO_INFO, Integer.parseInt(stationId));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class VgsProvider extends AbstractHafasProvider
|
||||||
return String.format(NEARBY_URI, stationId);
|
return String.format(NEARBY_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
private String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
final DateFormat DATE_FORMAT = new SimpleDateFormat("dd.MM.yy");
|
||||||
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
final DateFormat TIME_FORMAT = new SimpleDateFormat("HH:mm");
|
||||||
|
@ -124,10 +124,10 @@ public class VgsProvider extends AbstractHafasProvider
|
||||||
+ "(?:<td class=\"center sepline top\">\n(" + ParserUtils.P_PLATFORM + ").*?)?" // position
|
+ "(?:<td class=\"center sepline top\">\n(" + ParserUtils.P_PLATFORM + ").*?)?" // position
|
||||||
, Pattern.DOTALL);
|
, Pattern.DOTALL);
|
||||||
|
|
||||||
public QueryDeparturesResult queryDepartures(final String uri) throws IOException
|
public QueryDeparturesResult queryDepartures(final String stationId, final int maxDepartures) throws IOException
|
||||||
{
|
{
|
||||||
// scrape page
|
// scrape page
|
||||||
final CharSequence page = ParserUtils.scrape(uri);
|
final CharSequence page = ParserUtils.scrape(departuresQueryUri(stationId, maxDepartures));
|
||||||
|
|
||||||
// parse page
|
// parse page
|
||||||
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
final Matcher mHeadCoarse = P_DEPARTURES_HEAD_COARSE.matcher(page);
|
||||||
|
@ -135,11 +135,11 @@ public class VgsProvider extends AbstractHafasProvider
|
||||||
{
|
{
|
||||||
// messages
|
// messages
|
||||||
if (mHeadCoarse.group(3) != null)
|
if (mHeadCoarse.group(3) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.NO_INFO);
|
return new QueryDeparturesResult(Status.NO_INFO, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(4) != null)
|
else if (mHeadCoarse.group(4) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.INVALID_STATION);
|
return new QueryDeparturesResult(Status.INVALID_STATION, Integer.parseInt(stationId));
|
||||||
else if (mHeadCoarse.group(5) != null)
|
else if (mHeadCoarse.group(5) != null)
|
||||||
return new QueryDeparturesResult(uri, Status.SERVICE_DOWN);
|
return new QueryDeparturesResult(Status.SERVICE_DOWN, Integer.parseInt(stationId));
|
||||||
|
|
||||||
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
final Matcher mHeadFine = P_DEPARTURES_HEAD_FINE.matcher(mHeadCoarse.group(1));
|
||||||
if (mHeadFine.matches())
|
if (mHeadFine.matches())
|
||||||
|
@ -202,20 +202,20 @@ public class VgsProvider extends AbstractHafasProvider
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(2) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mDepCoarse.group(2) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return new QueryDeparturesResult(uri, 0, location, departures);
|
return new QueryDeparturesResult(Integer.parseInt(stationId), location, departures);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + mHeadCoarse.group(1) + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
throw new IllegalArgumentException("cannot parse '" + page + "' on " + uri);
|
throw new IllegalArgumentException("cannot parse '" + page + "' on " + stationId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class VrnProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, stationId);
|
return String.format(NEARBY_STATION_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class VrrProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, stationId);
|
return String.format(NEARBY_STATION_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -65,7 +65,8 @@ public class VvoProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
return String.format(NEARBY_STATION_URI, ParserUtils.urlEncode(stationId));
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -66,7 +66,8 @@ public class VvsProvider extends AbstractEfaProvider
|
||||||
return String.format(NEARBY_STATION_URI, stationId);
|
return String.format(NEARBY_STATION_URI, stationId);
|
||||||
}
|
}
|
||||||
|
|
||||||
public String departuresQueryUri(final String stationId, final int maxDepartures)
|
@Override
|
||||||
|
protected String departuresQueryUri(final String stationId, final int maxDepartures)
|
||||||
{
|
{
|
||||||
final StringBuilder uri = new StringBuilder();
|
final StringBuilder uri = new StringBuilder();
|
||||||
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
uri.append(API_BASE).append("XSLT_DM_REQUEST");
|
||||||
|
|
|
@ -29,26 +29,23 @@ public final class QueryDeparturesResult
|
||||||
OK, NO_INFO, INVALID_STATION, SERVICE_DOWN
|
OK, NO_INFO, INVALID_STATION, SERVICE_DOWN
|
||||||
}
|
}
|
||||||
|
|
||||||
public final String uri;
|
|
||||||
public final Status status;
|
public final Status status;
|
||||||
public final int locationId;
|
public final int locationId;
|
||||||
public final String location;
|
public final String location;
|
||||||
public final List<Departure> departures;
|
public final List<Departure> departures;
|
||||||
|
|
||||||
public QueryDeparturesResult(final String uri, final int locationId, final String location, final List<Departure> departures)
|
public QueryDeparturesResult(final int locationId, final String location, final List<Departure> departures)
|
||||||
{
|
{
|
||||||
this.uri = uri;
|
|
||||||
this.status = Status.OK;
|
this.status = Status.OK;
|
||||||
this.locationId = locationId;
|
this.locationId = locationId;
|
||||||
this.location = location;
|
this.location = location;
|
||||||
this.departures = departures;
|
this.departures = departures;
|
||||||
}
|
}
|
||||||
|
|
||||||
public QueryDeparturesResult(final String uri, final Status status)
|
public QueryDeparturesResult(final Status status, final int locationId)
|
||||||
{
|
{
|
||||||
this.uri = uri;
|
|
||||||
this.status = status;
|
this.status = status;
|
||||||
this.locationId = 0;
|
this.locationId = locationId;
|
||||||
this.location = null;
|
this.location = null;
|
||||||
this.departures = null;
|
this.departures = null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class AvvProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("100", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("100", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class BahnProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void departures() throws Exception
|
public void departures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult queryDepartures = provider.queryDepartures(provider.departuresQueryUri("692991", 0));
|
final QueryDeparturesResult queryDepartures = provider.queryDepartures("692991", 0);
|
||||||
System.out.println(queryDepartures.departures);
|
System.out.println(queryDepartures.departures);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class BvbProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("10000", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("10000", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ public class LinzProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("60501720", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("60501720", 0);
|
||||||
System.out.println(result);
|
System.out.println(result);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class NasaProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("13000", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("13000", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class SbbProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("8500010", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("8500010", 0);
|
||||||
|
|
||||||
System.out.println(result.status + " " + result.departures.size() + " " + result.departures);
|
System.out.println(result.status + " " + result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class SvvProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("60650002", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("60650002", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class TflProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("1000086", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("1000086", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class VgsProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("8000244", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("8000244", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -83,7 +83,7 @@ public class VrnProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void departures() throws Exception
|
public void departures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("6032236", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("6032236", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,7 +75,7 @@ public class VrrProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void departures() throws Exception
|
public void departures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("1007258", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("1007258", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class VvoProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("100", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("100", 0);
|
||||||
|
|
||||||
System.out.println(result.status + " " + result.departures.size() + " " + result.departures);
|
System.out.println(result.status + " " + result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class VvsProviderLiveTest
|
||||||
@Test
|
@Test
|
||||||
public void queryDepartures() throws Exception
|
public void queryDepartures() throws Exception
|
||||||
{
|
{
|
||||||
final QueryDeparturesResult result = provider.queryDepartures(provider.departuresQueryUri("6118", 0));
|
final QueryDeparturesResult result = provider.queryDepartures("6118", 0);
|
||||||
|
|
||||||
System.out.println(result.departures.size() + " " + result.departures);
|
System.out.println(result.departures.size() + " " + result.departures);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue