Changeset 3951 in josm for trunk/src/org/openstreetmap


Ignore:
Timestamp:
2011-03-04T21:36:49+01:00 (14 years ago)
Author:
stoecker
Message:

fix multipolygon validator tests

File:
1 edited

Legend:

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

    r3844 r3951  
    148148
    149149                AreaElemStyle area = null;
     150                boolean areaStyle = false;
    150151                for (ElemStyle s : styles.generateStyles(r, SCALE, null, false).a) {
    151152                    if (s instanceof AreaElemStyle) {
    152153                        area = (AreaElemStyle) s;
     154                        areaStyle = true;
    153155                        break;
    154156                    }
     
    156158                // If area style was not found for relation then use style of ways
    157159                if (area == null) {
    158                     errors.add( new TestError(this, Severity.OTHER, tr("No style in multipolygon relation"),
    159                             NO_STYLE_POLYGON, r));
    160160                    for (Way w : polygon.getOuterWays()) {
    161161
    162                         for (ElemStyle s : styles.generateStyles(r, SCALE, null, true).a) {
     162                        for (ElemStyle s : styles.generateStyles(w, SCALE, null, true).a) {
    163163                            if (s instanceof AreaElemStyle) {
    164164                                area = (AreaElemStyle) s;
     
    170170                        }
    171171                    }
     172                    if(area == null)
     173                        errors.add(new TestError(this, Severity.OTHER, tr("No style for multipolygon"), NO_STYLE, r));
     174                    else
     175                        errors.add( new TestError(this, Severity.OTHER, tr("No style in multipolygon relation"),
     176                            NO_STYLE_POLYGON, r));
    172177                }
    173178
     
    190195                        }
    191196                    }
    192                     for (Way wOuter : polygon.getOuterWays()) {
    193                         AreaElemStyle areaOuter = null;
    194                         for (ElemStyle s : styles.generateStyles(wOuter, SCALE, null, false).a) {
    195                             if (s instanceof AreaElemStyle) {
    196                                 areaOuter = (AreaElemStyle) s;
    197                                 break;
    198                             }
    199                         }
    200                         if (areaOuter != null && !area.equals(areaOuter)) {
    201                             List<OsmPrimitive> l = new ArrayList<OsmPrimitive>();
    202                             l.add(r);
    203                             l.add(wOuter);
    204                             errors.add(new TestError(this, Severity.WARNING, tr("Style for outer way mismatches"),
    205                             OUTER_STYLE_MISMATCH, l, Collections.singletonList(wOuter)));
    206                         }
    207                     }
    208                 }
    209                 else {
    210                     errors.add(new TestError(this, Severity.OTHER, tr("No style for multipolygon"), NO_STYLE, r));
     197                    if(!areaStyle) {
     198                        for (Way wOuter : polygon.getOuterWays()) {
     199                            AreaElemStyle areaOuter = null;
     200                            for (ElemStyle s : styles.generateStyles(wOuter, SCALE, null, false).a) {
     201                                if (s instanceof AreaElemStyle) {
     202                                    areaOuter = (AreaElemStyle) s;
     203                                    break;
     204                                }
     205                            }
     206                            if (areaOuter != null && !area.equals(areaOuter)) {
     207                                List<OsmPrimitive> l = new ArrayList<OsmPrimitive>();
     208                                l.add(r);
     209                                l.add(wOuter);
     210                                errors.add(new TestError(this, Severity.WARNING, tr("Style for outer way mismatches"),
     211                                OUTER_STYLE_MISMATCH, l, Collections.singletonList(wOuter)));
     212                            }
     213                        }
     214                    }
    211215                }
    212216            }
Note: See TracChangeset for help on using the changeset viewer.