Ignore:
Timestamp:
2016-03-05T17:57:04+01:00 (8 years ago)
Author:
simon04
Message:

see #8460 - fix typo from r9931, fix matching, improve conditions, add unit test

File:
1 edited

Legend:

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

    r9574 r9932  
    2525import org.openstreetmap.josm.gui.tagging.presets.TaggingPresetType;
    2626import org.openstreetmap.josm.gui.tagging.presets.TaggingPresets;
    27 import org.openstreetmap.josm.gui.tagging.presets.items.Key;
     27import org.openstreetmap.josm.gui.tagging.presets.items.KeyedItem;
    2828import org.openstreetmap.josm.gui.tagging.presets.items.Roles;
    2929import org.openstreetmap.josm.gui.tagging.presets.items.Roles.Role;
     
    145145
    146146        for (TaggingPreset p : relationpresets) {
    147             boolean matches = true;
    148             Roles r = null;
    149             for (TaggingPresetItem i : p.data) {
    150                 if (i instanceof Key) {
    151                     Key k = (Key) i;
    152                     if (!k.value.equals(n.get(k.key))) {
    153                         matches = false;
    154                         break;
    155                     }
    156                 } else if (i instanceof Roles) {
    157                     r = (Roles) i;
    158                 }
    159             }
     147            final boolean matches = TaggingPresetItem.matches(Utils.filteredCollection(p.data, KeyedItem.class), n.getKeys());
     148            final Roles r = Utils.find(p.data, Roles.class);
    160149            if (matches && r != null) {
    161150                for (Role role: r.roles) {
Note: See TracChangeset for help on using the changeset viewer.