preparation for consolidation of connectionsQueryUri() and checkConnectionsQuery()

git-svn-id: https://public-transport-enabler.googlecode.com/svn/trunk@36 0924bc21-9374-b0fa-ee44-9ff1593b38f0
This commit is contained in:
andreas.schildbach 2010-07-29 08:12:40 +00:00
parent 8a67ce69dd
commit 8e2786cb7e
5 changed files with 20 additions and 31 deletions

View file

@ -158,9 +158,9 @@ public final class BahnProvider implements NetworkProvider
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern
.compile("(?:(zu dicht beieinander|mehrfach vorhanden oder identisch)|(leider konnte zu Ihrer Anfrage keine Verbindung gefunden werden))");
public CheckConnectionsQueryResult checkConnectionsQuery(final String uri) throws IOException
public CheckConnectionsQueryResult checkConnectionsQuery(final String queryUri) throws IOException
{
final CharSequence page = ParserUtils.scrape(uri);
final CharSequence page = ParserUtils.scrape(queryUri);
final Matcher mError = P_CHECK_CONNECTIONS_ERROR.matcher(page);
if (mError.find())
@ -201,13 +201,9 @@ public final class BahnProvider implements NetworkProvider
}
if (fromAddresses != null || viaAddresses != null || toAddresses != null)
{
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, fromAddresses, viaAddresses, toAddresses);
}
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, queryUri, fromAddresses, viaAddresses, toAddresses);
else
{
return CheckConnectionsQueryResult.OK;
}
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.OK, queryUri, null, null, null);
}
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*" //

View file

@ -29,19 +29,20 @@ public final class CheckConnectionsQueryResult
OK, AMBIGUOUS, TOO_CLOSE, NO_CONNECTIONS;
}
public static final CheckConnectionsQueryResult OK = new CheckConnectionsQueryResult(Status.OK, null, null, null);
public static final CheckConnectionsQueryResult TOO_CLOSE = new CheckConnectionsQueryResult(Status.TOO_CLOSE, null, null, null);
public static final CheckConnectionsQueryResult NO_CONNECTIONS = new CheckConnectionsQueryResult(Status.NO_CONNECTIONS, null, null, null);
public static final CheckConnectionsQueryResult TOO_CLOSE = new CheckConnectionsQueryResult(Status.TOO_CLOSE, null, null, null, null);
public static final CheckConnectionsQueryResult NO_CONNECTIONS = new CheckConnectionsQueryResult(Status.NO_CONNECTIONS, null, null, null, null);
public final Status status;
public final String queryUri;
public final List<String> ambiguousFromAddresses;
public final List<String> ambiguousViaAddresses;
public final List<String> ambiguousToAddresses;
public CheckConnectionsQueryResult(final Status status, final List<String> ambiguousFromAddresses, final List<String> ambiguousViaAddresses,
final List<String> ambiguousToAddresses)
public CheckConnectionsQueryResult(final Status status, final String queryUri, final List<String> ambiguousFromAddresses,
final List<String> ambiguousViaAddresses, final List<String> ambiguousToAddresses)
{
this.status = status;
this.queryUri = queryUri;
this.ambiguousFromAddresses = ambiguousFromAddresses;
this.ambiguousViaAddresses = ambiguousViaAddresses;
this.ambiguousToAddresses = ambiguousToAddresses;

View file

@ -222,13 +222,9 @@ public class MvvProvider implements NetworkProvider
}
if (fromAddresses != null || viaAddresses != null || toAddresses != null)
{
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, fromAddresses, viaAddresses, toAddresses);
}
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, queryUri, fromAddresses, viaAddresses, toAddresses);
else
{
return CheckConnectionsQueryResult.OK;
}
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.OK, queryUri, null, null, null);
}
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*<b>Von:[\\xa0\\s]+</b>(.+?)<br />[\\xa0\\s]+"

View file

@ -204,13 +204,9 @@ public class RmvProvider implements NetworkProvider
}
if (fromAddresses != null || viaAddresses != null || toAddresses != null)
{
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, fromAddresses, viaAddresses, toAddresses);
}
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, queryUri, fromAddresses, viaAddresses, toAddresses);
else
{
return CheckConnectionsQueryResult.OK;
}
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.OK, queryUri, null, null, null);
}
private static final Pattern P_CONNECTIONS_HEAD = Pattern.compile(".*" //

View file

@ -135,9 +135,9 @@ public final class VbbProvider implements NetworkProvider
private static final Pattern P_CHECK_TO = Pattern.compile("Nach:");
private static final Pattern P_CHECK_CONNECTIONS_ERROR = Pattern.compile("(zu dicht beieinander)|(keine Verbindung gefunden)");
public CheckConnectionsQueryResult checkConnectionsQuery(final String uri) throws IOException
public CheckConnectionsQueryResult checkConnectionsQuery(final String queryUri) throws IOException
{
final CharSequence page = ParserUtils.scrape(uri);
final CharSequence page = ParserUtils.scrape(queryUri);
final Matcher mError = P_CHECK_CONNECTIONS_ERROR.matcher(page);
if (mError.find())
@ -160,18 +160,18 @@ public final class VbbProvider implements NetworkProvider
if (addresses.isEmpty())
{
return CheckConnectionsQueryResult.OK;
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.OK, queryUri, null, null, null);
}
else if (P_CHECK_FROM.matcher(page).find())
{
if (P_CHECK_TO.matcher(page).find())
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, null, addresses, null);
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, queryUri, null, addresses, null);
else
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, null, null, addresses);
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, queryUri, null, null, addresses);
}
else
{
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, addresses, null, null);
return new CheckConnectionsQueryResult(CheckConnectionsQueryResult.Status.AMBIGUOUS, queryUri, addresses, null, null);
}
}