source: josm/trunk/src/org/openstreetmap/josm/data/validation/tests/LongSegment.java@ 8510

Last change on this file since 8510 was 8510, checked in by Don-vip, 9 years ago

checkstyle: enable relevant whitespace checks and fix them

File size: 1.8 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.data.validation.tests;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import org.openstreetmap.josm.Main;
7import org.openstreetmap.josm.data.osm.OsmPrimitive;
8import org.openstreetmap.josm.data.osm.Way;
9import org.openstreetmap.josm.data.validation.Severity;
10import org.openstreetmap.josm.data.validation.Test;
11import org.openstreetmap.josm.data.validation.TestError;
12import org.openstreetmap.josm.gui.progress.ProgressMonitor;
13
14/**
15 * Checks for untagged ways
16 *
17 * @since 8320
18 */
19public class LongSegment extends Test {
20
21 /** Long segment error */
22 protected static final int LONG_SEGMENT = 3501;
23 /** Maximum segment length for this test */
24 protected int maxlength;
25
26 /**
27 * Constructor
28 */
29 public LongSegment() {
30 super(tr("Long segments"),
31 tr("This tests for long way segments, which are usually errors."));
32 }
33
34 @Override
35 public void visit(Way w) {
36 Double length = w.getLongestSegmentLength();
37 if (length > maxlength) {
38 length /= 1000.0;
39 errors.add(new TestError(this, Severity.WARNING, tr("Long segments"),
40 tr("Very long segment of {0} kilometers", length.intValue()),
41 String.format("Very long segment of %d kilometers", length.intValue()),
42 LONG_SEGMENT, w));
43 }
44 }
45
46 @Override
47 public void startTest(ProgressMonitor monitor) {
48 super.startTest(monitor);
49 maxlength = Main.pref.getInteger("validator.maximum.segment.length", 15000);
50 }
51
52 @Override
53 public boolean isPrimitiveUsable(OsmPrimitive p) {
54 return p.isUsable() && p instanceof Way && ((Way) p).getNodesCount() > 1; // test only Ways with at least 2 nodes
55 }
56}
Note: See TracBrowser for help on using the repository browser.