Skip to content

Commit c29afff

Browse files
authored
Merge pull request opentripplanner#6989 from HSLdevcom/refactor-edge-namer
Clarify type use in `EdgeNamer`
2 parents 9843e74 + 65f3c74 commit c29afff

File tree

11 files changed

+61
-55
lines changed

11 files changed

+61
-55
lines changed

application/src/main/java/org/opentripplanner/graph_builder/module/osm/BarrierEdgeBuilder.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ public void build(OsmNode node, Collection<OsmVertex> vertices, Collection<OsmWa
4141
);
4242
wheelchairAccessible = wheelchairAccessible && barrier.isWheelchairAccessible();
4343
if (!barrier.hasNoName()) {
44-
name = edgeNamer.getNameForWay(barrier, ("barrier " + barrier.getId()).intern());
44+
name = edgeNamer.getName(barrier, ("barrier " + barrier.getId()).intern());
4545
}
4646
}
4747
}

application/src/main/java/org/opentripplanner/graph_builder/module/osm/OsmModule.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -535,7 +535,7 @@ private Optional<Platform> getPlatform(OsmDatabase osmdb, OsmWay way) {
535535

536536
return Optional.of(
537537
new Platform(
538-
params.edgeNamer().getNameForWay(way, "platform " + way.getId()),
538+
params.edgeNamer().getName(way, "platform " + way.getId()),
539539
geometry,
540540
references
541541
)
@@ -664,7 +664,7 @@ private StreetEdge getEdgeForStreet(
664664

665665
String label = "way " + way.getId() + " from " + index;
666666
label = label.intern();
667-
I18NString name = params.edgeNamer().getNameForWay(way, label);
667+
I18NString name = params.edgeNamer().getName(way, label);
668668
float carSpeed = way.getOsmProvider().getOsmTagMapper().getCarSpeedForWay(way, direction);
669669

670670
StreetEdgeBuilder<?> seb = new StreetEdgeBuilder<>()

application/src/main/java/org/opentripplanner/graph_builder/module/osm/WalkableAreaBuilder.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -501,7 +501,7 @@ private Set<AreaEdge> createSegments(
501501
.getOsmTagMapper()
502502
.getCarSpeedForWay(parent, TraverseDirection.DIRECTIONLESS);
503503

504-
I18NString name = namer.getNameForWay(parent, label);
504+
I18NString name = namer.getName(parent, label);
505505
AreaEdgeBuilder streetEdgeBuilder = new AreaEdgeBuilder()
506506
.withFromVertex(vertex1)
507507
.withToVertex(vertex2)
@@ -517,7 +517,7 @@ private Set<AreaEdge> createSegments(
517517
.withLink(parent.isLink());
518518

519519
label = String.format(labelTemplate, parent.getId(), vertex2.getLabel(), vertex1.getLabel());
520-
name = namer.getNameForWay(parent, label);
520+
name = namer.getName(parent, label);
521521
AreaEdgeBuilder backStreetEdgeBuilder = new AreaEdgeBuilder()
522522
.withFromVertex(vertex2)
523523
.withToVertex(vertex1)
@@ -549,7 +549,7 @@ private void createAreas(AreaGroup areaGroup, Ring ring, Collection<OsmArea> are
549549
OsmEntity areaEntity = area.parent;
550550

551551
String id = "way (area) " + areaEntity.getId();
552-
I18NString name = namer.getNameForWay(areaEntity, id);
552+
I18NString name = namer.getName(areaEntity, id);
553553
namedArea.setName(name);
554554

555555
WayProperties wayData = findAreaProperties(areaEntity);

application/src/main/java/org/opentripplanner/graph_builder/module/osm/naming/CrosswalkNamer.java

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -48,29 +48,25 @@ public CrosswalkNamer() {
4848
}
4949

5050
@Override
51-
public I18NString name(OsmEntity way) {
52-
return way.getAssumedName();
51+
public I18NString name(OsmEntity entity) {
52+
return entity.getAssumedName();
5353
}
5454

5555
@Override
56-
public void recordEdges(OsmEntity way, StreetEdgePair pair, OsmDatabase osmdb) {
57-
if (way instanceof OsmWay osmWay) {
58-
// Record unnamed crossings to a list.
59-
if (osmWay.isCrossing() && way.hasNoName() && !way.isExplicitlyUnnamed()) {
60-
pair
61-
.asIterable()
62-
.forEach(edge -> unnamedCrosswalks.add(new EdgeOnLevel(osmWay, edge, Set.of())));
63-
}
64-
// Record (short) sidewalks to a geometric index
65-
else if (way.isSidewalk()) {
66-
sidewalkIndex.add(way, pair, Set.of(), BUFFER_METERS);
67-
}
68-
// Record named streets, service roads, and slip/turn lanes to a geometric index.
69-
else if (
70-
!osmWay.isFootway() && (way.isNamed() || osmWay.isServiceRoad() || osmWay.isTurnLane())
71-
) {
72-
streetIndex.add(way, pair, Set.of());
73-
}
56+
public void recordEdges(OsmWay way, StreetEdgePair pair, OsmDatabase osmdb) {
57+
// Record unnamed crossings to a list.
58+
if (way.isCrossing() && way.hasNoName() && !way.isExplicitlyUnnamed()) {
59+
pair
60+
.asIterable()
61+
.forEach(edge -> unnamedCrosswalks.add(new EdgeOnLevel(way, edge, Set.of())));
62+
}
63+
// Record (short) sidewalks to a geometric index
64+
else if (way.isSidewalk()) {
65+
sidewalkIndex.add(way, pair, Set.of(), BUFFER_METERS);
66+
}
67+
// Record named streets, service roads, and slip/turn lanes to a geometric index.
68+
else if (!way.isFootway() && (way.isNamed() || way.isServiceRoad() || way.isTurnLane())) {
69+
streetIndex.add(way, pair, Set.of());
7470
}
7571
}
7672

application/src/main/java/org/opentripplanner/graph_builder/module/osm/naming/DefaultNamer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,17 @@
55
import org.opentripplanner.graph_builder.module.osm.StreetEdgePair;
66
import org.opentripplanner.graph_builder.services.osm.EdgeNamer;
77
import org.opentripplanner.osm.model.OsmEntity;
8+
import org.opentripplanner.osm.model.OsmWay;
89

910
public class DefaultNamer implements EdgeNamer {
1011

1112
@Override
12-
public I18NString name(OsmEntity way) {
13-
return way.getAssumedName();
13+
public I18NString name(OsmEntity entity) {
14+
return entity.getAssumedName();
1415
}
1516

1617
@Override
17-
public void recordEdges(OsmEntity way, StreetEdgePair edge, OsmDatabase osmdb) {}
18+
public void recordEdges(OsmWay way, StreetEdgePair edge, OsmDatabase osmdb) {}
1819

1920
@Override
2021
public void finalizeNames() {}

application/src/main/java/org/opentripplanner/graph_builder/module/osm/naming/PortlandCustomNamer.java

Lines changed: 9 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import org.opentripplanner.graph_builder.module.osm.StreetEdgePair;
88
import org.opentripplanner.graph_builder.services.osm.EdgeNamer;
99
import org.opentripplanner.osm.model.OsmEntity;
10+
import org.opentripplanner.osm.model.OsmWay;
1011
import org.opentripplanner.street.model.edge.StreetEdge;
1112

1213
/**
@@ -46,19 +47,19 @@ public class PortlandCustomNamer implements EdgeNamer {
4647
private final HashSet<StreetEdge> nameByDestination = new HashSet<>();
4748

4849
@Override
49-
public I18NString name(OsmEntity way) {
50-
var defaultName = way.getAssumedName();
51-
if (!way.hasTag("name")) {
50+
public I18NString name(OsmEntity entity) {
51+
var defaultName = entity.getAssumedName();
52+
if (!entity.hasTag("name")) {
5253
// this is already a generated name, so there's no need to add any
5354
// additional data
5455
return defaultName;
5556
}
56-
if (way.isTag("footway", "sidewalk") || way.isTag("path", "sidewalk")) {
57+
if (entity.isTag("footway", "sidewalk") || entity.isTag("path", "sidewalk")) {
5758
if (isStreet(defaultName.toString())) {
5859
return NonLocalizedString.ofNullable(sidewalk(defaultName.toString()));
5960
}
6061
}
61-
String highway = way.getTag("highway");
62+
String highway = entity.getTag("highway");
6263
if ("footway".equals(highway) || "path".equals(highway) || "cycleway".equals(highway)) {
6364
if (!isObviouslyPath(defaultName.toString())) {
6465
return NonLocalizedString.ofNullable(path(defaultName.toString()));
@@ -71,7 +72,7 @@ public I18NString name(OsmEntity way) {
7172
}
7273

7374
@Override
74-
public void recordEdges(OsmEntity way, StreetEdgePair edgePair, OsmDatabase osmdb) {
75+
public void recordEdges(OsmWay way, StreetEdgePair edgePair, OsmDatabase osmdb) {
7576
final boolean isHighwayLink = isHighwayLink(way);
7677
final boolean isLowerLink = isLowerLink(way);
7778
edgePair
@@ -187,12 +188,12 @@ private static String nameAccordingToOrigin(StreetEdge e, int maxDepth) {
187188
return null;
188189
}
189190

190-
private static boolean isHighwayLink(OsmEntity way) {
191+
private static boolean isHighwayLink(OsmWay way) {
191192
String highway = way.getTag("highway");
192193
return "motorway_link".equals(highway) || "trunk_link".equals(highway);
193194
}
194195

195-
private static boolean isLowerLink(OsmEntity way) {
196+
private static boolean isLowerLink(OsmWay way) {
196197
String highway = way.getTag("highway");
197198
return (
198199
"secondary_link".equals(highway) ||

application/src/main/java/org/opentripplanner/graph_builder/module/osm/naming/SidewalkCrosswalkNamer.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import org.opentripplanner.graph_builder.module.osm.StreetEdgePair;
66
import org.opentripplanner.graph_builder.services.osm.EdgeNamer;
77
import org.opentripplanner.osm.model.OsmEntity;
8+
import org.opentripplanner.osm.model.OsmWay;
89

910
/**
1011
* Combines the sidewalk and crosswalk namer.
@@ -15,12 +16,12 @@ public class SidewalkCrosswalkNamer implements EdgeNamer {
1516
private final CrosswalkNamer crosswalkNamer = new CrosswalkNamer();
1617

1718
@Override
18-
public I18NString name(OsmEntity way) {
19-
return way.getAssumedName();
19+
public I18NString name(OsmEntity entity) {
20+
return entity.getAssumedName();
2021
}
2122

2223
@Override
23-
public void recordEdges(OsmEntity way, StreetEdgePair pair, OsmDatabase osmdb) {
24+
public void recordEdges(OsmWay way, StreetEdgePair pair, OsmDatabase osmdb) {
2425
sidewalkNamer.recordEdges(way, pair, osmdb);
2526
crosswalkNamer.recordEdges(way, pair, osmdb);
2627
}

application/src/main/java/org/opentripplanner/graph_builder/module/osm/naming/SidewalkNamer.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,12 +59,12 @@ public SidewalkNamer() {
5959
}
6060

6161
@Override
62-
public I18NString name(OsmEntity way) {
63-
return way.getAssumedName();
62+
public I18NString name(OsmEntity entity) {
63+
return entity.getAssumedName();
6464
}
6565

6666
@Override
67-
public void recordEdges(OsmEntity way, StreetEdgePair pair, OsmDatabase osmdb) {
67+
public void recordEdges(OsmWay way, StreetEdgePair pair, OsmDatabase osmdb) {
6868
Set<OsmLevel> levelSet = osmdb.getLevelSetForEntity(way);
6969
// This way is a sidewalk and hasn't been named yet (and is not explicitly unnamed)
7070
if (

application/src/main/java/org/opentripplanner/graph_builder/module/osm/naming/StreetEdgeIndex.java

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
import org.locationtech.jts.geom.Geometry;
66
import org.opentripplanner.framework.geometry.HashGridSpatialIndex;
77
import org.opentripplanner.graph_builder.module.osm.StreetEdgePair;
8-
import org.opentripplanner.osm.model.OsmEntity;
98
import org.opentripplanner.osm.model.OsmLevel;
109
import org.opentripplanner.osm.model.OsmWay;
1110
import org.opentripplanner.street.model.edge.StreetEdge;
@@ -20,14 +19,14 @@ class StreetEdgeIndex {
2019
/**
2120
* Adds an entry to a geospatial index.
2221
*/
23-
public void add(OsmEntity way, StreetEdgePair pair, Set<OsmLevel> levels) {
22+
public void add(OsmWay way, StreetEdgePair pair, Set<OsmLevel> levels) {
2423
add(way, pair, levels, Integer.MAX_VALUE);
2524
}
2625

2726
/**
2827
* Adds an entry to a geospatial index if its length is less than a threshold.
2928
*/
30-
public void add(OsmEntity way, StreetEdgePair pair, Set<OsmLevel> levels, int maxLengthMeters) {
29+
public void add(OsmWay way, StreetEdgePair pair, Set<OsmLevel> levels, int maxLengthMeters) {
3130
// We generate two edges for each osm way: one there and one back. This spatial index only
3231
// needs to contain one item for each road segment with a unique geometry and name, so we
3332
// add only one of the two edges.

application/src/main/java/org/opentripplanner/graph_builder/services/osm/EdgeNamer.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
import org.opentripplanner.graph_builder.module.osm.naming.SidewalkCrosswalkNamer;
1010
import org.opentripplanner.graph_builder.module.osm.naming.SidewalkNamer;
1111
import org.opentripplanner.osm.model.OsmEntity;
12+
import org.opentripplanner.osm.model.OsmWay;
1213
import org.opentripplanner.standalone.config.framework.json.NodeAdapter;
1314
import org.opentripplanner.standalone.config.framework.json.OtpVersion;
1415

@@ -18,24 +19,30 @@
1819
*/
1920
public interface EdgeNamer {
2021
/**
21-
* Get the edge name from an OSM way.
22+
* Get the edge name from an OSM relation or way.
2223
*/
23-
I18NString name(OsmEntity way);
24+
I18NString name(OsmEntity entity);
2425

2526
/**
2627
* Callback function for each way/edge combination so that more complicated names can be built
2728
* in the post-processing step.
2829
*/
29-
void recordEdges(OsmEntity way, StreetEdgePair edge, OsmDatabase osmdb);
30+
void recordEdges(OsmWay way, StreetEdgePair edge, OsmDatabase osmdb);
3031

3132
/**
3233
* Called after each edge has been named to build a more complex name out of the relationships
33-
* tracked in {@link EdgeNamer#recordEdges(OsmEntity, StreetEdgePair)}.
34+
* tracked in {@link EdgeNamer#recordEdges(OsmWay, StreetEdgePair)}.
3435
*/
3536
void finalizeNames();
3637

37-
default I18NString getNameForWay(OsmEntity way, String id) {
38-
var name = name(way);
38+
/**
39+
* Get the edge name.
40+
*
41+
* @param entity relation or way from which to get the name
42+
* @param id when a name can not be created from an OSM entity, this is used
43+
*/
44+
default I18NString getName(OsmEntity entity, String id) {
45+
var name = name(entity);
3946

4047
if (name == null) {
4148
name = new NonLocalizedString(id);

0 commit comments

Comments
 (0)