Ticket #16978: 16978.patch
File 16978.patch, 11.8 KB (added by , 5 years ago) |
---|
-
org/openstreetmap/josm/data/validation/tests/CrossingWays.java
37 37 static final String WATERWAY = "waterway"; 38 38 static final String LANDUSE = "landuse"; 39 39 40 private final class MessageHelper { 41 final String message; 42 final int code; 43 44 MessageHelper(String message, int code) { 45 super(); 46 this.message = message; 47 this.code = code; 48 } 49 } 50 40 51 /** 41 52 * Type of way. Entries have to be declared in alphabetical order, see sort below. 42 53 */ … … 64 75 /** The already detected ways in error */ 65 76 private final Map<List<Way>, List<WaySegment>> seenWays = new HashMap<>(50); 66 77 67 pr ivatefinal int code;78 protected final int code; 68 79 69 80 /** 70 81 * General crossing ways test. … … 119 130 } 120 131 121 132 @Override 122 StringcreateMessage(Way w1, Way w2) {133 MessageHelper createMessage(Way w1, Way w2) { 123 134 WayType[] types = {WayType.of(w1), WayType.of(w2)}; 124 135 Arrays.sort(types); 125 136 … … 126 137 if (types[0] == types[1]) { 127 138 switch(types[0]) { 128 139 case BUILDING: 129 return tr("Crossing buildings");140 return new MessageHelper(tr("Crossing buildings"), 610); 130 141 case HIGHWAY: 131 return tr("Crossing highways");142 return new MessageHelper(tr("Crossing highways"), 620); 132 143 case RAILWAY: 133 return tr("Crossing railways");144 return new MessageHelper(tr("Crossing railways"), 630); 134 145 case RESIDENTIAL_AREA: 135 return tr("Crossing residential areas");146 return new MessageHelper(tr("Crossing residential areas"), 640); 136 147 case WATERWAY: 137 return tr("Crossing waterways");148 return new MessageHelper(tr("Crossing waterways"), 650); 138 149 case WAY: 139 150 default: 140 return tr("Crossing ways");151 return new MessageHelper(tr("Crossing ways"), CROSSING_WAYS); 141 152 } 142 153 } else { 143 154 switch (types[0]) { … … 144 155 case BUILDING: 145 156 switch (types[1]) { 146 157 case HIGHWAY: 147 return tr("Crossing building/highway");158 return new MessageHelper(tr("Crossing building/highway"), 612); 148 159 case RAILWAY: 149 return tr("Crossing building/railway");160 return new MessageHelper(tr("Crossing building/railway"), 613); 150 161 case RESIDENTIAL_AREA: 151 return tr("Crossing building/residential area");162 return new MessageHelper(tr("Crossing building/residential area"), 614); 152 163 case WATERWAY: 153 return tr("Crossing building/waterway");164 return new MessageHelper(tr("Crossing building/waterway"), 615); 154 165 case WAY: 155 166 default: 156 return tr("Crossing building/way");167 return new MessageHelper(tr("Crossing building/way"), 611); 157 168 } 158 169 case HIGHWAY: 159 170 switch (types[1]) { 160 171 case RAILWAY: 161 return tr("Crossing highway/railway");172 return new MessageHelper(tr("Crossing highway/railway"), 622); 162 173 case WATERWAY: 163 return tr("Crossing highway/waterway");174 return new MessageHelper(tr("Crossing highway/waterway"), 623); 164 175 case WAY: 165 176 default: 166 return tr("Crossing highway/way");177 return new MessageHelper(tr("Crossing highway/way"), 621); 167 178 } 168 179 case RAILWAY: 169 180 switch (types[1]) { 170 181 case WATERWAY: 171 return tr("Crossing railway/waterway");182 return new MessageHelper(tr("Crossing railway/waterway"), 632); 172 183 case WAY: 173 184 default: 174 return tr("Crossing railway/way");185 return new MessageHelper(tr("Crossing railway/way"), 631); 175 186 } 176 187 case RESIDENTIAL_AREA: 177 188 switch (types[1]) { 178 189 case WAY: 179 190 default: 180 return tr("Crossing residential area/way");191 return new MessageHelper(tr("Crossing residential area/way"), 641); 181 192 } 182 193 case WATERWAY: 183 194 default: 184 return tr("Crossing waterway/way");195 return new MessageHelper(tr("Crossing waterway/way"), 651); 185 196 } 186 197 } 187 198 } … … 213 224 } 214 225 215 226 @Override 216 StringcreateMessage(Way w1, Way w2) {217 return tr("Crossing boundaries");227 MessageHelper createMessage(Way w1, Way w2) { 228 return new MessageHelper(tr("Crossing boundaries"), CROSSING_BOUNDARIES); 218 229 } 219 230 220 231 @Override … … 250 261 } 251 262 252 263 @Override 253 StringcreateMessage(Way w1, Way w2) {254 return tr("Crossing barriers");264 MessageHelper createMessage(Way w1, Way w2) { 265 return new MessageHelper(tr("Crossing barriers"), CROSSING_BARRIERS); 255 266 } 256 267 } 257 268 … … 285 296 } 286 297 287 298 @Override 288 StringcreateMessage(Way w1, Way w2) {289 return tr("Self-crossing ways");299 MessageHelper createMessage(Way w1, Way w2) { 300 return new MessageHelper(tr("Self-crossing ways"), CROSSING_SELF); 290 301 } 291 302 } 292 303 … … 338 349 339 350 abstract boolean ignoreWaySegmentCombination(Way w1, Way w2); 340 351 341 abstract StringcreateMessage(Way w1, Way w2);352 abstract MessageHelper createMessage(Way w1, Way w2); 342 353 343 354 @Override 344 355 public void visit(Way w) { … … 354 365 final EastNorth en1 = es1.getFirstNode().getEastNorth(); 355 366 final EastNorth en2 = es1.getSecondNode().getEastNorth(); 356 367 if (en1 == null || en2 == null) { 357 Logging.warn("Crossing ways test skipped " +es1);368 Logging.warn("Crossing ways test skipped " + es1); 358 369 continue; 359 370 } 360 371 for (List<WaySegment> segments : getSegments(cellSegments, en1, en2)) { … … 375 386 highlight.add(es1); 376 387 highlight.add(es2); 377 388 378 final Stringmessage = createMessage(es1.way, es2.way);379 errors.add(TestError.builder(this, Severity.WARNING, code)380 .message(message )389 final MessageHelper message = createMessage(es1.way, es2.way); 390 errors.add(TestError.builder(this, Severity.WARNING, message.code) 391 .message(message.message) 381 392 .primitives(prims) 382 393 .highlightWaySegments(highlight) 383 394 .build()); -
org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java
45 45 * @author frsantos 46 46 */ 47 47 public abstract class UnconnectedWays extends Test { 48 private final int code; 48 49 49 50 /** 50 51 * Unconnected highways test. 51 52 */ 52 53 public static class UnconnectedHighways extends UnconnectedWays { 54 static final int UNCONNECTED_HIGHWAYS = 1311; 53 55 54 56 /** 55 57 * Constructs a new {@code UnconnectedHighways} test. 56 58 */ 57 59 public UnconnectedHighways() { 58 super(tr("Unconnected highways") );60 super(tr("Unconnected highways"), UNCONNECTED_HIGHWAYS); 59 61 } 60 62 61 63 @Override … … 68 70 * Unconnected railways test. 69 71 */ 70 72 public static class UnconnectedRailways extends UnconnectedWays { 71 73 static final int UNCONNECTED_RAILWAYS = 1321; 72 74 /** 73 75 * Constructs a new {@code UnconnectedRailways} test. 74 76 */ 75 77 public UnconnectedRailways() { 76 super(tr("Unconnected railways") );78 super(tr("Unconnected railways"), UNCONNECTED_RAILWAYS); 77 79 } 78 80 79 81 @Override … … 86 88 * Unconnected waterways test. 87 89 */ 88 90 public static class UnconnectedWaterways extends UnconnectedWays { 89 91 static final int UNCONNECTED_WATERWAYS = 1331; 90 92 /** 91 93 * Constructs a new {@code UnconnectedWaterways} test. 92 94 */ 93 95 public UnconnectedWaterways() { 94 super(tr("Unconnected waterways") );96 super(tr("Unconnected waterways"), UNCONNECTED_WATERWAYS); 95 97 } 96 98 97 99 @Override … … 104 106 * Unconnected natural/landuse test. 105 107 */ 106 108 public static class UnconnectedNaturalOrLanduse extends UnconnectedWays { 107 109 static final int UNCONNECTED_NATURAL_OR_LANDUSE = 1341; 108 110 /** 109 111 * Constructs a new {@code UnconnectedNaturalOrLanduse} test. 110 112 */ 111 113 public UnconnectedNaturalOrLanduse() { 112 super(tr("Unconnected natural lands and landuses") );114 super(tr("Unconnected natural lands and landuses"), UNCONNECTED_NATURAL_OR_LANDUSE); 113 115 } 114 116 115 117 @Override … … 122 124 * Unconnected power ways test. 123 125 */ 124 126 public static class UnconnectedPower extends UnconnectedWays { 125 127 static final int UNCONNECTED_POWER = 1351; 126 128 /** 127 129 * Constructs a new {@code UnconnectedPower} test. 128 130 */ 129 131 public UnconnectedPower() { 130 super(tr("Unconnected power ways") );132 super(tr("Unconnected power ways"), UNCONNECTED_POWER); 131 133 } 132 134 133 135 @Override … … 155 157 * @since 6691 156 158 */ 157 159 public UnconnectedWays(String title) { 160 this(title, UNCONNECTED_WAYS); 161 162 } 163 164 /** 165 * Constructs a new {@code UnconnectedWays} test with the given code. 166 * @param title The test title 167 * @param code The test code 168 * @since 14431 169 */ 170 public UnconnectedWays(String title, int code) { 158 171 super(title, tr("This test checks if a way has an endpoint very near to another way.")); 172 this.code = code; 159 173 } 160 174 161 175 @Override … … 267 281 268 282 protected final void addErrors(Severity severity, Map<Node, Way> errorMap, String message) { 269 283 for (Map.Entry<Node, Way> error : errorMap.entrySet()) { 270 errors.add(TestError.builder(this, severity, UNCONNECTED_WAYS)284 errors.add(TestError.builder(this, severity, code) 271 285 .message(message) 272 286 .primitives(error.getKey(), error.getValue()) 273 287 .highlight(error.getKey())