Changeset 18801 in josm for trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
- Timestamp:
- 2023-08-09T15:30:01+02:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/validation/tests/RelationChecker.java
r18506 r18801 10 10 import java.util.EnumSet; 11 11 import java.util.HashMap; 12 import java.util.HashSet; 12 13 import java.util.Iterator; 13 14 import java.util.LinkedHashMap; … … 16 17 import java.util.List; 17 18 import java.util.Map; 19 import java.util.Set; 18 20 import java.util.stream.Collectors; 19 21 … … 430 432 431 433 private void checkLoop(Relation parent, List<Relation> path) { 432 if (path.contains(parent)) { 434 Set<Relation> pathSet = new HashSet<>(path); 435 if (pathSet.contains(parent)) { 433 436 Iterator<List<Relation>> iter = loops.iterator(); 437 Set<Relation> loop = new HashSet<>(); 434 438 while (iter.hasNext()) { 435 List<Relation> loop =iter.next();439 loop.addAll(iter.next()); 436 440 if (loop.size() > path.size() && loop.containsAll(path)) { 437 441 // remove same loop with irrelevant parent 438 442 iter.remove(); 439 } else if (path.size() >= loop.size() && path.containsAll(loop)) { 443 } else if (path.size() >= loop.size() && pathSet.containsAll(loop)) { 440 444 // same or smaller loop is already known 441 445 return; 442 446 } 447 loop.clear(); 443 448 } 444 449 if (path.get(0).equals(parent)) {
Note:
See TracChangeset
for help on using the changeset viewer.
