Ignore:
Timestamp:
2020-03-19T17:10:04+01:00 (5 years ago)
Author:
gerdp
Message:

fix #josm18929: reverter doesn't allow to revert changes to "uninteristing" tags like gpx:ele

File:
1 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/reverter/src/reverter/DataSetCommandMerger.java

    r35084 r35381  
    66import java.util.ArrayList;
    77import java.util.Collection;
     8import java.util.HashMap;
    89import java.util.LinkedHashSet;
    910import java.util.LinkedList;
    1011import java.util.List;
     12import java.util.Map;
    1113
    1214import org.openstreetmap.josm.command.ChangeCommand;
     
    1416import org.openstreetmap.josm.data.conflict.Conflict;
    1517import org.openstreetmap.josm.data.conflict.ConflictCollection;
     18import org.openstreetmap.josm.data.osm.AbstractPrimitive;
    1619import org.openstreetmap.josm.data.osm.DataSet;
    1720import org.openstreetmap.josm.data.osm.Node;
     
    5053
    5154    private void addChangeCommandIfNotEquals(OsmPrimitive target, OsmPrimitive newTarget, boolean nominal) {
    52         if (!target.hasEqualSemanticAttributes(newTarget) || target.isDeleted() != newTarget.isDeleted() || target.isVisible() != newTarget.isVisible()) {
    53             cmds.add(new ChangeCommand(target, newTarget));
    54             if (nominal) {
    55                 nominalRevertedPrimitives.add(target);
    56             }
    57             Logging.debug("Reverting "+target+" to "+newTarget);
    58         }
     55                if (target.isIncomplete() != newTarget.isIncomplete() || target.isDeleted() != newTarget.isDeleted()
     56                                || target.isVisible() != newTarget.isVisible()
     57                                || !getNonDiscardableTags(target).equals(getNonDiscardableTags(newTarget))) {
     58                        cmds.add(new ChangeCommand(target, newTarget));
     59                        if (nominal) {
     60                                nominalRevertedPrimitives.add(target);
     61                        }
     62                        Logging.debug("Reverting " + target + " to " + newTarget);
     63                }
     64    }
     65
     66    private static Map<String, String> getNonDiscardableTags(OsmPrimitive p) {
     67        Map<String, String> result = new HashMap<>();
     68        for (Map.Entry<String, String> e : p.getKeys().entrySet()) {
     69                if (!AbstractPrimitive.getDiscardableKeys().contains(e.getKey()))
     70                        result.put(e.getKey(), e.getValue());
     71        }
     72        return result;
    5973    }
    6074
Note: See TracChangeset for help on using the changeset viewer.