Changeset 14437 in josm for trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
- Timestamp:
- 2018-11-20T17:01:47+01:00 (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
r14436 r14437 19 19 import org.openstreetmap.josm.data.osm.Relation; 20 20 import org.openstreetmap.josm.data.osm.RelationMember; 21 import org.openstreetmap.josm.data.validation.OsmValidator; 21 22 import org.openstreetmap.josm.data.validation.Severity; 22 23 import org.openstreetmap.josm.data.validation.Test; 23 24 import org.openstreetmap.josm.data.validation.TestError; 25 import org.openstreetmap.josm.gui.progress.ProgressMonitor; 24 26 import org.openstreetmap.josm.gui.tagging.presets.TaggingPreset; 25 27 import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetItem; … … 61 63 */ 62 64 public static final String ROLE_VERIF_PROBLEM_MSG = tr("Role verification problem"); 65 private boolean ignoreMultiPolygons; 63 66 64 67 /** … … 100 103 101 104 @Override 105 public void startTest(ProgressMonitor progressMonitor) { 106 super.startTest(progressMonitor); 107 108 for (Test t : OsmValidator.getEnabledTests(false)) { 109 if (t instanceof MultipolygonTest) { 110 ignoreMultiPolygons = true; 111 break; 112 } 113 } 114 } 115 116 @Override 102 117 public void visit(Relation n) { 118 Map<String, RoleInfo> map = buildRoleInfoMap(n); 119 if (map.isEmpty()) { 120 errors.add(TestError.builder(this, Severity.ERROR, RELATION_EMPTY) 121 .message(tr("Relation is empty")) 122 .primitives(n) 123 .build()); 124 } 125 if (ignoreMultiPolygons && n.isMultipolygon()) { 126 // see #17010: don't report same problem twice 127 return; 128 } 103 129 Map<Role, String> allroles = buildAllRoles(n); 104 130 if (allroles.isEmpty() && n.hasTag("type", "route") … … 115 141 } 116 142 117 Map<String, RoleInfo> map = buildRoleInfoMap(n); 118 if (map.isEmpty()) { 119 errors.add(TestError.builder(this, Severity.ERROR, RELATION_EMPTY) 120 .message(tr("Relation is empty")) 121 .primitives(n) 122 .build()); 123 } else if (!allroles.isEmpty()) { 143 if (!map.isEmpty() && !allroles.isEmpty()) { 124 144 checkRoles(n, allroles, map); 125 145 }
Note:
See TracChangeset
for help on using the changeset viewer.
