source: josm/trunk/src/org/openstreetmap/josm/data/validation/tests/SelfIntersectingWay.java@ 4234

Last change on this file since 4234 was 3671, checked in by bastiK, 13 years ago

adapt coding style (to some degree); there shouldn't be any semantic changes in this commit

  • Property svn:eol-style set to native
File size: 1.3 KB
Line 
1// License: GPL. See LICENSE file for details.
2package org.openstreetmap.josm.data.validation.tests;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.util.HashSet;
7import java.util.Arrays;
8
9import org.openstreetmap.josm.data.osm.Way;
10import org.openstreetmap.josm.data.osm.Node;
11import org.openstreetmap.josm.data.validation.Severity;
12import org.openstreetmap.josm.data.validation.Test;
13import org.openstreetmap.josm.data.validation.TestError;
14
15/**
16 * Checks for self-intersecting ways.
17 */
18public class SelfIntersectingWay extends Test {
19
20 protected static int SELF_INTERSECT = 401;
21
22 public SelfIntersectingWay() {
23 super(tr("Self-intersecting ways"),
24 tr("This test checks for ways " +
25 "that contain some of their nodes more than once."));
26 }
27
28 @Override public void visit(Way w) {
29 HashSet<Node> nodes = new HashSet<Node>();
30
31 for (int i = 1; i < w.getNodesCount() - 1; i++) {
32 Node n = w.getNode(i);
33 if (nodes.contains(n)) {
34 errors.add(new TestError(this,
35 Severity.WARNING, tr("Self-intersecting ways"), SELF_INTERSECT,
36 Arrays.asList(w), Arrays.asList(n)));
37 break;
38 } else {
39 nodes.add(n);
40 }
41 }
42 }
43}
Note: See TracBrowser for help on using the repository browser.