Ticket #9361: showBothOverlapping.patch
File showBothOverlapping.patch, 2.9 KB (added by , 12 years ago) |
---|
-
src/org/openstreetmap/josm/data/validation/tests/MapCSSTagChecker.java
7 7 import java.io.IOException; 8 8 import java.io.Reader; 9 9 import java.util.ArrayList; 10 import java.util.Arrays; 10 11 import java.util.Collection; 12 import java.util.Collections; 11 13 import java.util.HashMap; 12 14 import java.util.Iterator; 13 15 import java.util.LinkedHashMap; … … 359 361 * @param p the primitive to construct the error for 360 362 * @return an instance of {@link TestError}, or returns null if the primitive does not give rise to an error. 361 363 */ 362 TestError getErrorForPrimitive(OsmPrimitive p ) {363 return getErrorForPrimitive(p, whichSelectorMatchesPrimitive(p) );364 TestError getErrorForPrimitive(OsmPrimitive p, Environment env) { 365 return getErrorForPrimitive(p, whichSelectorMatchesPrimitive(p), env); 364 366 } 365 367 366 TestError getErrorForPrimitive(OsmPrimitive p, Selector matchingSelector ) {368 TestError getErrorForPrimitive(OsmPrimitive p, Selector matchingSelector, Environment env) { 367 369 if (matchingSelector != null && !errors.isEmpty()) { 368 370 final Command fix = fixPrimitive(p); 369 371 final String description = getDescriptionForMatchingSelector(p, matchingSelector); 372 List<OsmPrimitive> prims; 373 if (env.child != null) { 374 prims = Arrays.asList(p, env.child); 375 } else { 376 prims = Collections.singletonList(p); 377 } 370 378 if (fix != null) { 371 return new FixableTestError(null, getSeverity(), description, null, matchingSelector.toString(), 3000, p , fix);379 return new FixableTestError(null, getSeverity(), description, null, matchingSelector.toString(), 3000, prims, fix); 372 380 } else { 373 return new TestError(null, getSeverity(), description, null, matchingSelector.toString(), 3000, p );381 return new TestError(null, getSeverity(), description, null, matchingSelector.toString(), 3000, prims); 374 382 } 375 383 } else { 376 384 return null; … … 406 414 final Selector selector = check.whichSelectorMatchesEnvironment(env); 407 415 if (selector != null) { 408 416 check.rule.execute(env); 409 final TestError error = check.getErrorForPrimitive(p, selector );417 final TestError error = check.getErrorForPrimitive(p, selector, env); 410 418 if (error != null) { 411 419 error.setTester(new MapCSSTagCheckerAndRule(check.rule)); 412 420 r.add(error);