1010import org .opentripplanner .graph_builder .issues .ParkAndRideEntranceRemoved ;
1111import org .opentripplanner .graph_builder .model .GraphBuilderModule ;
1212import org .opentripplanner .routing .graph .Graph ;
13+ import org .opentripplanner .routing .linking .VertexLinker ;
1314import org .opentripplanner .service .vehicleparking .VehicleParkingRepository ;
1415import org .opentripplanner .service .vehicleparking .model .VehicleParking ;
1516import org .opentripplanner .service .vehicleparking .model .VehicleParkingHelper ;
@@ -52,30 +53,26 @@ public class StreetLinkerModule implements GraphBuilderModule {
5253 private final VehicleParkingRepository parkingRepository ;
5354 private final TimetableRepository timetableRepository ;
5455 private final DataImportIssueStore issueStore ;
55- private final boolean areaVisibility ;
56- private final int maxAreaNodes ;
56+ private final VertexLinker vertexLinker ;
5757
5858 public StreetLinkerModule (
5959 Graph graph ,
60+ VertexLinker linker ,
6061 VehicleParkingRepository parkingRepository ,
6162 TimetableRepository timetableRepository ,
62- DataImportIssueStore issueStore ,
63- boolean areaVisibility ,
64- int maxAreaNodes
63+ DataImportIssueStore issueStore
6564 ) {
6665 this .graph = graph ;
6766 this .parkingRepository = parkingRepository ;
6867 this .timetableRepository = timetableRepository ;
6968 this .issueStore = issueStore ;
70- this .areaVisibility = areaVisibility ;
71- this .maxAreaNodes = maxAreaNodes ;
69+ this .vertexLinker = linker ;
7270 }
7371
7472 @ Override
7573 public void buildGraph () {
7674 timetableRepository .index ();
77- graph .getLinkerSafe ().setAreaVisibility (this .areaVisibility );
78- graph .getLinkerSafe ().setMaxAreaNodes (this .maxAreaNodes );
75+ graph .requestIndex ();
7976
8077 if (graph .hasStreets ) {
8178 linkTransitStops (graph , timetableRepository );
@@ -158,22 +155,20 @@ private static boolean isAlreadyLinked(
158155 * edge. This may lead to several links being created.
159156 */
160157 private void linkStopToStreetNetwork (TransitStopVertex tStop , StopLinkType linkType ) {
161- graph
162- .getLinker ()
163- .linkVertexPermanently (
164- tStop ,
165- WALK_ONLY ,
166- LinkingDirection .BIDIRECTIONAL ,
167- (transitVertex , streetVertex ) -> {
168- var linkEdges = createStopLinkEdges ((TransitStopVertex ) transitVertex , streetVertex );
169-
170- if (linkType == StopLinkType .WALK_AND_CAR && !streetVertex .isConnectedToDriveableEdge ()) {
171- linkToDriveableEdge (tStop );
172- }
173-
174- return linkEdges ;
158+ vertexLinker .linkVertexPermanently (
159+ tStop ,
160+ WALK_ONLY ,
161+ LinkingDirection .BIDIRECTIONAL ,
162+ (transitVertex , streetVertex ) -> {
163+ var linkEdges = createStopLinkEdges ((TransitStopVertex ) transitVertex , streetVertex );
164+
165+ if (linkType == StopLinkType .WALK_AND_CAR && !streetVertex .isConnectedToDriveableEdge ()) {
166+ linkToDriveableEdge (tStop );
175167 }
176- );
168+
169+ return linkEdges ;
170+ }
171+ );
177172 }
178173
179174 /**
@@ -185,15 +180,13 @@ private void linkStopToStreetNetwork(TransitStopVertex tStop, StopLinkType linkT
185180 * @see https://github.com/opentripplanner/OpenTripPlanner/issues/5498
186181 */
187182 private void linkToDriveableEdge (TransitStopVertex tStop ) {
188- graph
189- .getLinker ()
190- .linkVertexPermanently (
191- tStop ,
192- CAR_ONLY ,
193- LinkingDirection .BIDIRECTIONAL ,
194- (transitVertex , streetVertex ) ->
195- createStopLinkEdges ((TransitStopVertex ) transitVertex , streetVertex )
196- );
183+ vertexLinker .linkVertexPermanently (
184+ tStop ,
185+ CAR_ONLY ,
186+ LinkingDirection .BIDIRECTIONAL ,
187+ (transitVertex , streetVertex ) ->
188+ createStopLinkEdges ((TransitStopVertex ) transitVertex , streetVertex )
189+ );
197190 }
198191
199192 private static List <Edge > createStopLinkEdges (
@@ -206,74 +199,65 @@ private static List<Edge> createStopLinkEdges(
206199 );
207200 }
208201
209- private static void linkVehicleParkingWithLinker (
210- Graph graph ,
211- VehicleParkingEntranceVertex vehicleParkingVertex
212- ) {
202+ private void linkVehicleParkingWithLinker (VehicleParkingEntranceVertex vehicleParkingVertex ) {
213203 if (vehicleParkingVertex .isWalkAccessible ()) {
214- graph
215- .getLinker ()
216- .linkVertexPermanently (
217- vehicleParkingVertex ,
218- new TraverseModeSet (TraverseMode .WALK ),
219- LinkingDirection .BIDIRECTIONAL ,
220- (vertex , streetVertex ) ->
221- List .of (
222- StreetVehicleParkingLink .createStreetVehicleParkingLink (
223- (VehicleParkingEntranceVertex ) vertex ,
224- streetVertex
225- ),
226- StreetVehicleParkingLink .createStreetVehicleParkingLink (
227- streetVertex ,
228- (VehicleParkingEntranceVertex ) vertex
229- )
204+ vertexLinker .linkVertexPermanently (
205+ vehicleParkingVertex ,
206+ new TraverseModeSet (TraverseMode .WALK ),
207+ LinkingDirection .BIDIRECTIONAL ,
208+ (vertex , streetVertex ) ->
209+ List .of (
210+ StreetVehicleParkingLink .createStreetVehicleParkingLink (
211+ (VehicleParkingEntranceVertex ) vertex ,
212+ streetVertex
213+ ),
214+ StreetVehicleParkingLink .createStreetVehicleParkingLink (
215+ streetVertex ,
216+ (VehicleParkingEntranceVertex ) vertex
230217 )
231- );
218+ )
219+ );
232220 }
233221
234222 if (vehicleParkingVertex .isCarAccessible ()) {
235- graph
236- .getLinker ()
237- .linkVertexPermanently (
238- vehicleParkingVertex ,
239- new TraverseModeSet (TraverseMode .CAR ),
240- LinkingDirection .BIDIRECTIONAL ,
241- (vertex , streetVertex ) ->
242- List .of (
243- StreetVehicleParkingLink .createStreetVehicleParkingLink (
244- (VehicleParkingEntranceVertex ) vertex ,
245- streetVertex
246- ),
247- StreetVehicleParkingLink .createStreetVehicleParkingLink (
248- streetVertex ,
249- (VehicleParkingEntranceVertex ) vertex
250- )
223+ vertexLinker .linkVertexPermanently (
224+ vehicleParkingVertex ,
225+ new TraverseModeSet (TraverseMode .CAR ),
226+ LinkingDirection .BIDIRECTIONAL ,
227+ (vertex , streetVertex ) ->
228+ List .of (
229+ StreetVehicleParkingLink .createStreetVehicleParkingLink (
230+ (VehicleParkingEntranceVertex ) vertex ,
231+ streetVertex
232+ ),
233+ StreetVehicleParkingLink .createStreetVehicleParkingLink (
234+ streetVertex ,
235+ (VehicleParkingEntranceVertex ) vertex
251236 )
252- );
237+ )
238+ );
253239 }
254240 }
255241
256242 private void linkTransitEntrances (Graph graph ) {
257243 LOG .info ("Linking transit entrances to graph..." );
258244 for (TransitEntranceVertex tEntrance : graph .getVerticesOfType (TransitEntranceVertex .class )) {
259- graph
260- .getLinker ()
261- .linkVertexPermanently (
262- tEntrance ,
263- new TraverseModeSet (TraverseMode .WALK ),
264- LinkingDirection .BIDIRECTIONAL ,
265- (vertex , streetVertex ) ->
266- List .of (
267- StreetTransitEntranceLink .createStreetTransitEntranceLink (
268- (TransitEntranceVertex ) vertex ,
269- streetVertex
270- ),
271- StreetTransitEntranceLink .createStreetTransitEntranceLink (
272- streetVertex ,
273- (TransitEntranceVertex ) vertex
274- )
245+ vertexLinker .linkVertexPermanently (
246+ tEntrance ,
247+ new TraverseModeSet (TraverseMode .WALK ),
248+ LinkingDirection .BIDIRECTIONAL ,
249+ (vertex , streetVertex ) ->
250+ List .of (
251+ StreetTransitEntranceLink .createStreetTransitEntranceLink (
252+ (TransitEntranceVertex ) vertex ,
253+ streetVertex
254+ ),
255+ StreetTransitEntranceLink .createStreetTransitEntranceLink (
256+ streetVertex ,
257+ (TransitEntranceVertex ) vertex
275258 )
276- );
259+ )
260+ );
277261 }
278262 }
279263
@@ -294,14 +278,12 @@ private void linkStationCentroids(Graph graph) {
294278 );
295279
296280 for (StationCentroidVertex station : graph .getVerticesOfType (StationCentroidVertex .class )) {
297- graph
298- .getLinker ()
299- .linkVertexPermanently (
300- station ,
301- new TraverseModeSet (TraverseMode .WALK ),
302- LinkingDirection .BIDIRECTIONAL ,
303- stationAndStreetVertexLinker
304- );
281+ vertexLinker .linkVertexPermanently (
282+ station ,
283+ new TraverseModeSet (TraverseMode .WALK ),
284+ LinkingDirection .BIDIRECTIONAL ,
285+ stationAndStreetVertexLinker
286+ );
305287 }
306288 }
307289
@@ -316,7 +298,7 @@ private void linkVehicleParks(Graph graph, DataImportIssueStore issueStore) {
316298 }
317299
318300 if (vehicleParkingEntranceVertex .getParkingEntrance ().getVertex () == null ) {
319- linkVehicleParkingWithLinker (graph , vehicleParkingEntranceVertex );
301+ linkVehicleParkingWithLinker (vehicleParkingEntranceVertex );
320302 continue ;
321303 }
322304
0 commit comments