mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-14 00:30:31 +00:00
Hafas: If binary connections query returns only one single individual leg, don't query for more.
This commit is contained in:
parent
9976995137
commit
b596ba6f3a
2 changed files with 34 additions and 4 deletions
|
@ -128,23 +128,25 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
public final int seqNr;
|
||||
public final String ld;
|
||||
public final int usedBufferSize;
|
||||
private final boolean canQueryMore;
|
||||
|
||||
public QueryTripsBinaryContext(final String ident, final int seqNr, final String ld, final int usedBufferSize)
|
||||
public QueryTripsBinaryContext(final String ident, final int seqNr, final String ld, final int usedBufferSize, final boolean canQueryMore)
|
||||
{
|
||||
this.ident = ident;
|
||||
this.seqNr = seqNr;
|
||||
this.ld = ld;
|
||||
this.usedBufferSize = usedBufferSize;
|
||||
this.canQueryMore = canQueryMore;
|
||||
}
|
||||
|
||||
public boolean canQueryLater()
|
||||
{
|
||||
return true;
|
||||
return canQueryMore;
|
||||
}
|
||||
|
||||
public boolean canQueryEarlier()
|
||||
{
|
||||
return true;
|
||||
return canQueryMore;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -2008,8 +2010,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
|||
trips.add(trip);
|
||||
}
|
||||
|
||||
// if result is only one single individual leg, don't query for more
|
||||
final boolean canQueryMore = trips.size() != 1 || trips.get(0).legs.size() != 1
|
||||
|| !(trips.get(0).legs.get(0) instanceof Trip.Individual);
|
||||
|
||||
final QueryTripsResult result = new QueryTripsResult(header, uri, from, via, to, new QueryTripsBinaryContext(requestId, seqNr, ld,
|
||||
bis.getCount()), trips);
|
||||
bis.getCount(), canQueryMore), trips);
|
||||
|
||||
return result;
|
||||
}
|
||||
|
|
|
@ -143,6 +143,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
|||
"Kernbeisserweg 4"), null, new Location(LocationType.ADDRESS, null, 52433989, 13474353, "12357 Berlin-Buckow", "Distelfinkweg 35"),
|
||||
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||
print(result);
|
||||
|
||||
if (!result.context.canQueryLater())
|
||||
return;
|
||||
|
||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||
print(laterResult);
|
||||
}
|
||||
|
@ -154,6 +158,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
|||
LocationType.STATION, "9044202", "Berlin", "Bundesplatz"), new Location(LocationType.STATION, "9013103", "Berlin", "Prinzenstraße"),
|
||||
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||
print(result);
|
||||
|
||||
if (!result.context.canQueryLater())
|
||||
return;
|
||||
|
||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||
print(laterResult);
|
||||
}
|
||||
|
@ -164,6 +172,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
|||
final QueryTripsResult result = queryTrips(new Location(LocationType.ADDRESS, null, 52501507, 13357026, null, null), null, new Location(
|
||||
LocationType.ADDRESS, null, 52513639, 13568648, null, null), new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||
print(result);
|
||||
|
||||
if (!result.context.canQueryLater())
|
||||
return;
|
||||
|
||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||
print(laterResult);
|
||||
}
|
||||
|
@ -176,6 +188,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
|||
new Location(LocationType.ADDRESS, null, 52513639, 13568648, null, null), new Date(), true, Product.ALL, WalkSpeed.NORMAL,
|
||||
Accessibility.NEUTRAL);
|
||||
print(result);
|
||||
|
||||
if (!result.context.canQueryLater())
|
||||
return;
|
||||
|
||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||
print(laterResult);
|
||||
}
|
||||
|
@ -187,6 +203,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
|||
"Weimarische Str. 7"), null, new Location(LocationType.ADDRESS, null, 52541536, 13421290, "10437 Berlin-Prenzlauer Berg",
|
||||
"Göhrener Str. 5"), new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||
print(result);
|
||||
|
||||
if (!result.context.canQueryLater())
|
||||
return;
|
||||
|
||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||
print(laterResult);
|
||||
}
|
||||
|
@ -199,6 +219,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
|||
new Location(LocationType.ADDRESS, null, 52526029, 13399878, "10178 Berlin-Mitte", "Sophienstr. 24"), new Date(), true, Product.ALL,
|
||||
WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||
print(result);
|
||||
|
||||
if (!result.context.canQueryLater())
|
||||
return;
|
||||
|
||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||
print(laterResult);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue