Ticket #19312: 19312-allow.complex.dependency.patch
| File 19312-allow.complex.dependency.patch, 1.9 KB (added by , 6 years ago) |
|---|
-
src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
24 24 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 25 25 import org.openstreetmap.josm.data.osm.Relation; 26 26 import org.openstreetmap.josm.data.osm.RelationMember; 27 import org.openstreetmap.josm.data.preferences.BooleanProperty; 27 28 import org.openstreetmap.josm.data.validation.OsmValidator; 28 29 import org.openstreetmap.josm.data.validation.Severity; 29 30 import org.openstreetmap.josm.data.validation.Test; … … 69 70 public static final int RELATION_LOOP = 1710; 70 71 // CHECKSTYLE.ON: SingleSpaceSeparator 71 72 73 // see 19312 comment:17 74 private static final BooleanProperty ALLOW_COMPLEX_LOOP = new BooleanProperty("validator.relation.allow.complex.dependency", false); 75 72 76 /** 73 77 * Error message used to group errors related to role problems. 74 78 * @since 6731 … … 404 408 405 409 @Override 406 410 public void endTest() { 411 if (Boolean.TRUE.equals(ALLOW_COMPLEX_LOOP.get())) { 412 loops.removeIf(loop -> loop.size() > 2); 413 } 407 414 loops.forEach(loop -> errors.add(TestError.builder(this, Severity.ERROR, RELATION_LOOP) 408 415 .message(loop.size() == 2 ? tr("Relation contains itself as a member") 409 416 : tr("Relations generate circular dependency of parent/child elements")) … … 464 471 LinkedList<Relation> path = new LinkedList<>(); 465 472 path.add(parent); 466 473 test.checkLoop(child, path); 474 if (Boolean.TRUE.equals(ALLOW_COMPLEX_LOOP.get())) { 475 test.loops.removeIf(loop -> loop.size() > 2); 476 } 467 477 if (test.loops.isEmpty()) 468 478 return Collections.emptyList(); 469 479 else
