Changeset 11432 in josm for trunk/src


Ignore:
Timestamp:
2017-01-06T20:47:12+01:00 (7 years ago)
Author:
Don-vip
Message:

fix #14093 - don't autofix "Missing power tower/pole within power line" (patch by Klumbumbus, modified)

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/data/validation/tests/PowerLines.java

    r11385 r11432  
    1010
    1111import org.openstreetmap.josm.Main;
    12 import org.openstreetmap.josm.command.ChangePropertyCommand;
    1312import org.openstreetmap.josm.data.osm.Node;
    1413import org.openstreetmap.josm.data.osm.OsmPrimitive;
     
    5958        if (w.isUsable()) {
    6059            if (isPowerLine(w) && !w.hasTag("location", "underground")) {
    61                 String fixValue = null;
    62                 TestError.Builder error = null;
    63                 Node errorNode = null;
    64                 boolean canFix = false;
    6560                for (Node n : w.getNodes()) {
    66                     if (!isPowerTower(n)) {
    67                         if (!isPowerAllowed(n) && IN_DOWNLOADED_AREA.test(n) && (!w.isFirstLastNode(n) || !isPowerStation(n))) {
    68                             error = TestError.builder(this, Severity.WARNING, POWER_LINES)
    69                                     .message(tr("Missing power tower/pole within power line"))
    70                                     .primitives(n);
    71                             errorNode = n;
    72                         }
    73                     } else if (fixValue == null) {
    74                         // First tower/pole tag found, remember it
    75                         fixValue = n.get("power");
    76                         canFix = true;
    77                     } else if (!fixValue.equals(n.get("power"))) {
    78                         // The power line contains both "tower" and "pole" -> cannot fix this error
    79                         canFix = false;
     61                    if (!isPowerTower(n) && !isPowerAllowed(n) && IN_DOWNLOADED_AREA.test(n)
     62                        && (!w.isFirstLastNode(n) || !isPowerStation(n))) {
     63                        potentialErrors.add(TestError.builder(this, Severity.WARNING, POWER_LINES)
     64                                .message(tr("Missing power tower/pole within power line"))
     65                                .primitives(n)
     66                                .build());
    8067                    }
    81                 }
    82                 if (error != null && canFix) {
    83                     final ChangePropertyCommand fix = new ChangePropertyCommand(errorNode, "power", fixValue);
    84                     potentialErrors.add(error.fix(() -> fix).build());
    85                 } else if (error != null) {
    86                     potentialErrors.add(error.build());
    8768                }
    8869            } else if (w.isClosed() && isPowerStation(w)) {
Note: See TracChangeset for help on using the changeset viewer.