mirror of
https://gitlab.com/oeffi/public-transport-enabler.git
synced 2025-07-17 02:59:52 +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 int seqNr;
|
||||||
public final String ld;
|
public final String ld;
|
||||||
public final int usedBufferSize;
|
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.ident = ident;
|
||||||
this.seqNr = seqNr;
|
this.seqNr = seqNr;
|
||||||
this.ld = ld;
|
this.ld = ld;
|
||||||
this.usedBufferSize = usedBufferSize;
|
this.usedBufferSize = usedBufferSize;
|
||||||
|
this.canQueryMore = canQueryMore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canQueryLater()
|
public boolean canQueryLater()
|
||||||
{
|
{
|
||||||
return true;
|
return canQueryMore;
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean canQueryEarlier()
|
public boolean canQueryEarlier()
|
||||||
{
|
{
|
||||||
return true;
|
return canQueryMore;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2008,8 +2010,12 @@ public abstract class AbstractHafasProvider extends AbstractNetworkProvider
|
||||||
trips.add(trip);
|
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,
|
final QueryTripsResult result = new QueryTripsResult(header, uri, from, via, to, new QueryTripsBinaryContext(requestId, seqNr, ld,
|
||||||
bis.getCount()), trips);
|
bis.getCount(), canQueryMore), trips);
|
||||||
|
|
||||||
return result;
|
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"),
|
"Kernbeisserweg 4"), null, new Location(LocationType.ADDRESS, null, 52433989, 13474353, "12357 Berlin-Buckow", "Distelfinkweg 35"),
|
||||||
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||||
print(result);
|
print(result);
|
||||||
|
|
||||||
|
if (!result.context.canQueryLater())
|
||||||
|
return;
|
||||||
|
|
||||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||||
print(laterResult);
|
print(laterResult);
|
||||||
}
|
}
|
||||||
|
@ -154,6 +158,10 @@ public class VbbProviderLiveTest extends AbstractProviderLiveTest
|
||||||
LocationType.STATION, "9044202", "Berlin", "Bundesplatz"), new Location(LocationType.STATION, "9013103", "Berlin", "Prinzenstraße"),
|
LocationType.STATION, "9044202", "Berlin", "Bundesplatz"), new Location(LocationType.STATION, "9013103", "Berlin", "Prinzenstraße"),
|
||||||
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||||
print(result);
|
print(result);
|
||||||
|
|
||||||
|
if (!result.context.canQueryLater())
|
||||||
|
return;
|
||||||
|
|
||||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||||
print(laterResult);
|
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(
|
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);
|
LocationType.ADDRESS, null, 52513639, 13568648, null, null), new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||||
print(result);
|
print(result);
|
||||||
|
|
||||||
|
if (!result.context.canQueryLater())
|
||||||
|
return;
|
||||||
|
|
||||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||||
print(laterResult);
|
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,
|
new Location(LocationType.ADDRESS, null, 52513639, 13568648, null, null), new Date(), true, Product.ALL, WalkSpeed.NORMAL,
|
||||||
Accessibility.NEUTRAL);
|
Accessibility.NEUTRAL);
|
||||||
print(result);
|
print(result);
|
||||||
|
|
||||||
|
if (!result.context.canQueryLater())
|
||||||
|
return;
|
||||||
|
|
||||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||||
print(laterResult);
|
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",
|
"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);
|
"Göhrener Str. 5"), new Date(), true, Product.ALL, WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||||
print(result);
|
print(result);
|
||||||
|
|
||||||
|
if (!result.context.canQueryLater())
|
||||||
|
return;
|
||||||
|
|
||||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||||
print(laterResult);
|
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,
|
new Location(LocationType.ADDRESS, null, 52526029, 13399878, "10178 Berlin-Mitte", "Sophienstr. 24"), new Date(), true, Product.ALL,
|
||||||
WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
WalkSpeed.NORMAL, Accessibility.NEUTRAL);
|
||||||
print(result);
|
print(result);
|
||||||
|
|
||||||
|
if (!result.context.canQueryLater())
|
||||||
|
return;
|
||||||
|
|
||||||
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
final QueryTripsResult laterResult = queryMoreTrips(result.context, true);
|
||||||
print(laterResult);
|
print(laterResult);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue