5
5
import java .util .List ;
6
6
import java .util .Locale ;
7
7
import java .util .Map ;
8
- import java .util .function .BiFunction ;
9
- import java .util .stream .Collectors ;
8
+ import java .util .function .Predicate ;
10
9
import org .locationtech .jts .geom .Envelope ;
11
10
import org .locationtech .jts .geom .Geometry ;
12
- import org .opentripplanner .apis .support .mapping .PropertyMapper ;
13
11
import org .opentripplanner .ext .vectortiles .VectorTilesResource ;
14
12
import org .opentripplanner .inspector .vector .LayerBuilder ;
15
13
import org .opentripplanner .inspector .vector .LayerParameters ;
16
14
import org .opentripplanner .transit .model .site .RegularStop ;
17
15
import org .opentripplanner .transit .service .TransitService ;
18
16
19
- public class StopsLayerBuilder < T > extends LayerBuilder <T > {
17
+ public class StopsLayerBuilder extends LayerBuilder <RegularStop > {
20
18
21
- static Map <MapperType , BiFunction <TransitService , Locale , PropertyMapper <RegularStop >>> mappers = Map .of (
22
- MapperType .Digitransit ,
23
- DigitransitStopPropertyMapper ::create
24
- );
25
19
private final TransitService transitService ;
20
+ private final Predicate <RegularStop > filter ;
26
21
27
22
public StopsLayerBuilder (
28
23
TransitService transitService ,
29
24
LayerParameters <VectorTilesResource .LayerType > layerParameters ,
30
- Locale locale
25
+ Locale locale ,
26
+ Predicate <RegularStop > filter
31
27
) {
32
28
super (
33
- ( PropertyMapper < T >) Map
29
+ Map
34
30
.ofEntries (
35
31
entry (MapperType .Digitransit , new DigitransitStopPropertyMapper (transitService , locale )),
36
32
entry (
@@ -43,20 +39,22 @@ public StopsLayerBuilder(
43
39
layerParameters .expansionFactor ()
44
40
);
45
41
this .transitService = transitService ;
42
+ this .filter = filter ;
46
43
}
47
44
48
45
protected List <Geometry > getGeometries (Envelope query ) {
49
46
return transitService
50
47
.findRegularStops (query )
51
48
.stream ()
49
+ .filter (filter )
52
50
.map (stop -> {
53
51
Geometry point = stop .getGeometry ();
54
52
55
53
point .setUserData (stop );
56
54
57
55
return point ;
58
56
})
59
- .collect ( Collectors . toList () );
57
+ .toList ();
60
58
}
61
59
62
60
enum MapperType {
0 commit comments