mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-16 09:29:49 +00:00
Include network ID in result header.
This commit is contained in:
parent
cf651676d2
commit
322e7cf8cb
7 changed files with 46 additions and 36 deletions
|
@ -271,7 +271,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
// System.out.println(parameters);
|
||||
|
||||
final CharSequence page = ParserUtils.scrape(uri.toString(), httpPost ? parameters.substring(1) : null, Charsets.UTF_8);
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -3293,7 +3293,7 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
ParserUtils.parseIsoDate(serverTime, now.substring(0, 10));
|
||||
ParserUtils.parseEuropeanTime(serverTime, now.substring(11));
|
||||
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT, serverVersion, serverTime.getTimeInMillis(), sessionId);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, serverVersion, serverTime.getTimeInMillis(), sessionId);
|
||||
|
||||
XmlPullUtil.enter(pp, "itdRequest");
|
||||
|
||||
|
@ -3336,7 +3336,8 @@ public abstract class AbstractEfaProvider extends AbstractNetworkProvider
|
|||
final String sessionId = params.get("sessionID");
|
||||
final String requestId = params.get("requestID");
|
||||
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT, null, serverTime.getTimeInMillis(), new String[] { sessionId, requestId });
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, null, serverTime.getTimeInMillis(),
|
||||
new String[] { sessionId, requestId });
|
||||
|
||||
return header;
|
||||
}
|
||||
|
|
|
@ -436,7 +436,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
}
|
||||
}
|
||||
|
||||
return new SuggestLocationsResult(new ResultHeader(SERVER_PRODUCT), locations);
|
||||
return new SuggestLocationsResult(new ResultHeader(network, SERVER_PRODUCT), locations);
|
||||
}
|
||||
catch (final JSONException x)
|
||||
{
|
||||
|
@ -523,7 +523,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
|
||||
pp.nextTag();
|
||||
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
final QueryDeparturesResult result = new QueryDeparturesResult(header);
|
||||
|
||||
if (XmlPullUtil.test(pp, "Err"))
|
||||
|
@ -770,7 +770,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final @Nullable Collection<Product> products, final @Nullable WalkSpeed walkSpeed, final @Nullable Accessibility accessibility,
|
||||
final @Nullable Set<Option> options) throws IOException
|
||||
{
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
|
||||
if (!from.isIdentified())
|
||||
{
|
||||
|
@ -890,7 +890,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
|
||||
XmlPullUtil.require(pp, "ResC");
|
||||
final String product = XmlPullUtil.attr(pp, "prod").split(" ")[0];
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT, product, 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, product, 0, null);
|
||||
XmlPullUtil.enter(pp, "ResC");
|
||||
|
||||
if (XmlPullUtil.test(pp, "Err"))
|
||||
|
@ -1441,7 +1441,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final @Nullable Collection<Product> products, final @Nullable WalkSpeed walkSpeed, final @Nullable Accessibility accessibility,
|
||||
final @Nullable Set<Option> options) throws IOException
|
||||
{
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
|
||||
if (!from.isIdentified())
|
||||
{
|
||||
|
@ -1537,7 +1537,7 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
final int version = is.readShortReverse();
|
||||
if (version != 6 && version != 5)
|
||||
throw new IllegalStateException("unknown version: " + version + ", first chars: " + firstChars);
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT, Integer.toString(version), 0, null);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT, Integer.toString(version), 0, null);
|
||||
|
||||
// quick seek for pointers
|
||||
is.reset();
|
||||
|
|
|
@ -763,7 +763,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider
|
|||
public NearbyLocationsResult queryNearbyLocations(final EnumSet<LocationType> types, final Location location, final int maxDistance,
|
||||
final int maxLocations) throws IOException
|
||||
{
|
||||
final ResultHeader resultHeader = new ResultHeader(SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
|
||||
// Check that Location object has coordinates.
|
||||
if (!location.isIdentified())
|
||||
|
@ -840,7 +840,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider
|
|||
public QueryDeparturesResult queryDepartures(final String stationId, final @Nullable Date time, final int maxDepartures, final boolean equivs)
|
||||
throws IOException
|
||||
{
|
||||
final ResultHeader resultHeader = new ResultHeader(SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -978,7 +978,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider
|
|||
}
|
||||
}
|
||||
|
||||
final ResultHeader resultHeader = new ResultHeader(SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
return new SuggestLocationsResult(resultHeader, locations);
|
||||
}
|
||||
catch (final JSONException jsonExc)
|
||||
|
@ -991,7 +991,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider
|
|||
final @Nullable Set<Product> products, final @Nullable WalkSpeed walkSpeed, final @Nullable Accessibility accessibility,
|
||||
final @Nullable Set<Option> options) throws IOException
|
||||
{
|
||||
final ResultHeader resultHeader = new ResultHeader(SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
|
||||
try
|
||||
{
|
||||
|
@ -1155,7 +1155,7 @@ public abstract class AbstractNavitiaProvider extends AbstractNetworkProvider
|
|||
|
||||
public QueryTripsResult queryMoreTrips(final QueryTripsContext contextObj, final boolean later) throws IOException
|
||||
{
|
||||
final ResultHeader resultHeader = new ResultHeader(SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
final ResultHeader resultHeader = new ResultHeader(network, SERVER_PRODUCT, SERVER_VERSION, 0, null);
|
||||
|
||||
final Context context = (Context) contextObj;
|
||||
final Location from = context.from;
|
||||
|
|
|
@ -128,8 +128,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
|
||||
private static final String DEFAULT_STOPFINDER_ENDPOINT = "/Transport/v2/";
|
||||
private static final String DEFAULT_TRIP_ENDPOINT = "/journeyplanner/v2/";
|
||||
|
||||
private static final ResultHeader HEADER = new ResultHeader("tsi");
|
||||
private static final String SERVER_PRODUCT = "tsi";
|
||||
|
||||
private static Map<String, Product> TRANSPORT_MODES = new HashMap<String, Product>();
|
||||
static
|
||||
|
@ -215,10 +214,12 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
final List<SuggestedLocation> locations = new ArrayList<SuggestedLocation>();
|
||||
final JSONObject head = new JSONObject(page.toString());
|
||||
|
||||
int status = head.getInt("StatusCode");
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
|
||||
final int status = head.getInt("StatusCode");
|
||||
|
||||
if (status != 200)
|
||||
return new SuggestLocationsResult(HEADER, SuggestLocationsResult.Status.SERVICE_DOWN);
|
||||
return new SuggestLocationsResult(header, SuggestLocationsResult.Status.SERVICE_DOWN);
|
||||
|
||||
JSONArray dataArray = head.getJSONArray("Data");
|
||||
for (int i = 0; i < dataArray.length(); i++)
|
||||
|
@ -231,7 +232,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
locations.add(new SuggestedLocation(location));
|
||||
}
|
||||
|
||||
return new SuggestLocationsResult(HEADER, locations);
|
||||
return new SuggestLocationsResult(header, locations);
|
||||
}
|
||||
catch (final JSONException x)
|
||||
{
|
||||
|
@ -301,15 +302,16 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
final CharSequence page = ParserUtils.scrape(uri.toString(), null, Charsets.UTF_8);
|
||||
try
|
||||
{
|
||||
|
||||
final List<Location> stations = new ArrayList<Location>();
|
||||
final JSONObject head = new JSONObject(page.toString());
|
||||
|
||||
int status = head.getInt("StatusCode");
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
|
||||
final int status = head.getInt("StatusCode");
|
||||
|
||||
if (status != 200)
|
||||
{
|
||||
return new NearbyLocationsResult(HEADER, status == 300 ? NearbyLocationsResult.Status.INVALID_ID
|
||||
return new NearbyLocationsResult(header, status == 300 ? NearbyLocationsResult.Status.INVALID_ID
|
||||
: NearbyLocationsResult.Status.SERVICE_DOWN);
|
||||
}
|
||||
|
||||
|
@ -320,7 +322,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
stations.add(parseJsonTransportLocation(data));
|
||||
}
|
||||
|
||||
return new NearbyLocationsResult(HEADER, stations);
|
||||
return new NearbyLocationsResult(header, stations);
|
||||
}
|
||||
catch (final JSONException x)
|
||||
{
|
||||
|
@ -641,6 +643,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
final @Nullable Set<Product> products, final @Nullable WalkSpeed walkSpeed, final @Nullable Accessibility accessibility,
|
||||
final @Nullable Set<Option> options) throws IOException
|
||||
{
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
final List<Location> possibleFroms, possibleTos, possibleVias;
|
||||
|
||||
possibleFroms = identifyLocation(from);
|
||||
|
@ -652,14 +655,14 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
possibleVias = Collections.singletonList(null);
|
||||
|
||||
if (possibleFroms.isEmpty())
|
||||
return new QueryTripsResult(HEADER, QueryTripsResult.Status.UNKNOWN_FROM);
|
||||
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_FROM);
|
||||
if (possibleTos.isEmpty())
|
||||
return new QueryTripsResult(HEADER, QueryTripsResult.Status.UNKNOWN_TO);
|
||||
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_TO);
|
||||
if (possibleVias.isEmpty())
|
||||
return new QueryTripsResult(HEADER, QueryTripsResult.Status.UNKNOWN_VIA);
|
||||
return new QueryTripsResult(header, QueryTripsResult.Status.UNKNOWN_VIA);
|
||||
|
||||
if (possibleFroms.size() > 1 || possibleVias.size() > 1 || possibleTos.size() > 1)
|
||||
return new QueryTripsResult(HEADER, possibleFroms.size() > 1 ? possibleFroms : null, possibleVias.size() > 1 ? possibleVias : null,
|
||||
return new QueryTripsResult(header, possibleFroms.size() > 1 ? possibleFroms : null, possibleVias.size() > 1 ? possibleVias : null,
|
||||
possibleTos.size() > 1 ? possibleTos : null);
|
||||
|
||||
final Context context = new Context(possibleFroms.get(0), possibleVias.get(0), possibleTos.get(0), products, walkSpeed, accessibility,
|
||||
|
@ -763,23 +766,25 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
{
|
||||
final JSONObject head = new JSONObject(page.toString());
|
||||
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
|
||||
final JSONObject statusObj = head.optJSONObject("Status");
|
||||
|
||||
if (statusObj == null)
|
||||
{
|
||||
return new QueryTripsResult(HEADER, QueryTripsResult.Status.SERVICE_DOWN);
|
||||
return new QueryTripsResult(header, QueryTripsResult.Status.SERVICE_DOWN);
|
||||
}
|
||||
|
||||
final String statusStr = statusObj.optString("Code");
|
||||
|
||||
if ("NO_SOLUTION_FOR_REQUEST".equals(statusStr))
|
||||
{
|
||||
return new QueryTripsResult(HEADER, QueryTripsResult.Status.NO_TRIPS);
|
||||
return new QueryTripsResult(header, QueryTripsResult.Status.NO_TRIPS);
|
||||
}
|
||||
|
||||
if (!"OK".equals(statusStr))
|
||||
{
|
||||
return new QueryTripsResult(HEADER, QueryTripsResult.Status.SERVICE_DOWN);
|
||||
return new QueryTripsResult(header, QueryTripsResult.Status.SERVICE_DOWN);
|
||||
}
|
||||
|
||||
final JSONArray tripArray = head.getJSONObject("trips").getJSONArray("Trip");
|
||||
|
@ -797,7 +802,7 @@ public abstract class AbstractTsiProvider extends AbstractNetworkProvider
|
|||
context.updateLatestDeparture(trips.get(trips.size() - 1).getFirstDepartureTime());
|
||||
}
|
||||
|
||||
return new QueryTripsResult(HEADER, uri.toString(), context.from, context.via, context.to, context, trips);
|
||||
return new QueryTripsResult(header, uri.toString(), context.from, context.via, context.to, context, trips);
|
||||
}
|
||||
catch (final JSONException x)
|
||||
{
|
||||
|
|
|
@ -175,7 +175,7 @@ public class InvgProvider extends AbstractHafasProvider
|
|||
public QueryDeparturesResult queryDepartures(final String stationId, final @Nullable Date time, final int maxDepartures, final boolean equivs)
|
||||
throws IOException
|
||||
{
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
final QueryDeparturesResult result = new QueryDeparturesResult(header);
|
||||
|
||||
// scrape page
|
||||
|
|
|
@ -161,7 +161,7 @@ public class SeptaProvider extends AbstractHafasProvider
|
|||
public QueryDeparturesResult queryDepartures(final String stationId, final @Nullable Date time, final int maxDepartures, final boolean equivs)
|
||||
throws IOException
|
||||
{
|
||||
final ResultHeader header = new ResultHeader(SERVER_PRODUCT);
|
||||
final ResultHeader header = new ResultHeader(network, SERVER_PRODUCT);
|
||||
final QueryDeparturesResult result = new QueryDeparturesResult(header);
|
||||
|
||||
// scrape page
|
||||
|
|
|
@ -25,23 +25,27 @@ import javax.annotation.Nullable;
|
|||
|
||||
import com.google.common.base.MoreObjects;
|
||||
|
||||
import de.schildbach.pte.NetworkId;
|
||||
|
||||
/**
|
||||
* @author Andreas Schildbach
|
||||
*/
|
||||
public final class ResultHeader implements Serializable
|
||||
{
|
||||
public final NetworkId network;
|
||||
public final String serverProduct;
|
||||
public final @Nullable String serverVersion;
|
||||
public final long serverTime;
|
||||
public final Object context;
|
||||
|
||||
public ResultHeader(final String serverProduct)
|
||||
public ResultHeader(final NetworkId network, final String serverProduct)
|
||||
{
|
||||
this(serverProduct, null, 0, null);
|
||||
this(network, serverProduct, null, 0, null);
|
||||
}
|
||||
|
||||
public ResultHeader(final String serverProduct, final String serverVersion, final long serverTime, final Object context)
|
||||
public ResultHeader(final NetworkId network, final String serverProduct, final String serverVersion, final long serverTime, final Object context)
|
||||
{
|
||||
this.network = checkNotNull(network);
|
||||
this.serverProduct = checkNotNull(serverProduct);
|
||||
this.serverVersion = serverVersion;
|
||||
this.serverTime = serverTime;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue