Ignore:
Timestamp:
2018-11-30T09:45:11+01:00 (5 years ago)
Author:
GerdP
Message:

fix #16978 Use distinct code number for each test group in CrossingWays and UnconnectedWays

Location:
trunk/src/org/openstreetmap/josm/data/validation/tests
Files:
2 edited

Legend:

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

    r14452 r14468  
    3838    static final String LANDUSE = "landuse";
    3939
     40    private static final class MessageHelper {
     41        final String message;
     42        final int code;
     43
     44        MessageHelper(String message, int code) {
     45            this.message = message;
     46            this.code = code;
     47        }
     48    }
     49
    4050    /**
    4151     * Type of way. Entries have to be declared in alphabetical order, see sort below.
     
    6575    private final Map<List<Way>, List<WaySegment>> seenWays = new HashMap<>(50);
    6676
    67     private final int code;
     77    protected final int code;
    6878
    6979    /**
     
    120130
    121131        @Override
    122         String createMessage(Way w1, Way w2) {
     132        MessageHelper createMessage(Way w1, Way w2) {
    123133            WayType[] types = {WayType.of(w1), WayType.of(w2)};
    124134            Arrays.sort(types);
     
    127137                switch(types[0]) {
    128138                    case BUILDING:
    129                         return tr("Crossing buildings");
     139                        return new MessageHelper(tr("Crossing buildings"), 610);
    130140                    case HIGHWAY:
    131                         return tr("Crossing highways");
     141                        return new MessageHelper(tr("Crossing highways"), 620);
    132142                    case RAILWAY:
    133                         return tr("Crossing railways");
     143                        return new MessageHelper(tr("Crossing railways"), 630);
    134144                    case RESIDENTIAL_AREA:
    135                         return tr("Crossing residential areas");
     145                        return new MessageHelper(tr("Crossing residential areas"), 640);
    136146                    case WATERWAY:
    137                         return tr("Crossing waterways");
     147                        return new MessageHelper(tr("Crossing waterways"), 650);
    138148                    case WAY:
    139149                    default:
    140                         return tr("Crossing ways");
     150                        return new MessageHelper(tr("Crossing ways"), CROSSING_WAYS);
    141151                }
    142152            } else {
     
    145155                        switch (types[1]) {
    146156                            case HIGHWAY:
    147                                 return tr("Crossing building/highway");
     157                                return new MessageHelper(tr("Crossing building/highway"), 612);
    148158                            case RAILWAY:
    149                                 return tr("Crossing building/railway");
     159                                return new MessageHelper(tr("Crossing building/railway"), 613);
    150160                            case RESIDENTIAL_AREA:
    151                                 return tr("Crossing building/residential area");
     161                                return new MessageHelper(tr("Crossing building/residential area"), 614);
    152162                            case WATERWAY:
    153                                 return tr("Crossing building/waterway");
     163                                return new MessageHelper(tr("Crossing building/waterway"), 615);
    154164                            case WAY:
    155165                            default:
    156                                 return tr("Crossing building/way");
     166                                return new MessageHelper(tr("Crossing building/way"), 611);
    157167                        }
    158168                    case HIGHWAY:
    159169                        switch (types[1]) {
    160170                            case RAILWAY:
    161                                 return tr("Crossing highway/railway");
     171                                return new MessageHelper(tr("Crossing highway/railway"), 622);
    162172                            case WATERWAY:
    163                                 return tr("Crossing highway/waterway");
     173                                return new MessageHelper(tr("Crossing highway/waterway"), 623);
    164174                            case WAY:
    165175                            default:
    166                                 return tr("Crossing highway/way");
     176                                return new MessageHelper(tr("Crossing highway/way"), 621);
    167177                        }
    168178                    case RAILWAY:
    169179                        switch (types[1]) {
    170180                            case WATERWAY:
    171                                 return tr("Crossing railway/waterway");
     181                                return new MessageHelper(tr("Crossing railway/waterway"), 632);
    172182                            case WAY:
    173183                            default:
    174                                 return tr("Crossing railway/way");
     184                                return new MessageHelper(tr("Crossing railway/way"), 631);
    175185                        }
    176186                    case RESIDENTIAL_AREA:
     
    178188                            case WAY:
    179189                            default:
    180                                 return tr("Crossing residential area/way");
     190                                return new MessageHelper(tr("Crossing residential area/way"), 641);
    181191                        }
    182192                    case WATERWAY:
    183193                    default:
    184                         return tr("Crossing waterway/way");
     194                        return new MessageHelper(tr("Crossing waterway/way"), 651);
    185195                }
    186196            }
     
    214224
    215225        @Override
    216         String createMessage(Way w1, Way w2) {
    217             return tr("Crossing boundaries");
     226        MessageHelper createMessage(Way w1, Way w2) {
     227            return new MessageHelper(tr("Crossing boundaries"), CROSSING_BOUNDARIES);
    218228        }
    219229
     
    251261
    252262        @Override
    253         String createMessage(Way w1, Way w2) {
    254             return tr("Crossing barriers");
     263        MessageHelper createMessage(Way w1, Way w2) {
     264            return new MessageHelper(tr("Crossing barriers"), CROSSING_BARRIERS);
    255265        }
    256266    }
     
    286296
    287297        @Override
    288         String createMessage(Way w1, Way w2) {
    289             return tr("Self-crossing ways");
     298        MessageHelper createMessage(Way w1, Way w2) {
     299            return new MessageHelper(tr("Self-crossing ways"), CROSSING_SELF);
    290300        }
    291301    }
     
    341351    abstract boolean ignoreWaySegmentCombination(Way w1, Way w2);
    342352
    343     abstract String createMessage(Way w1, Way w2);
     353    abstract MessageHelper createMessage(Way w1, Way w2);
    344354
    345355    @Override
     
    357367            final EastNorth en2 = es1.getSecondNode().getEastNorth();
    358368            if (en1 == null || en2 == null) {
    359                 Logging.warn("Crossing ways test skipped "+es1);
     369                Logging.warn("Crossing ways test skipped " + es1);
    360370                continue;
    361371            }
     
    378388                        highlight.add(es2);
    379389
    380                         final String message = createMessage(es1.way, es2.way);
    381                         errors.add(TestError.builder(this, Severity.WARNING, code)
    382                                 .message(message)
     390                        final MessageHelper message = createMessage(es1.way, es2.way);
     391                        errors.add(TestError.builder(this, Severity.WARNING, message.code)
     392                                .message(message.message)
    383393                                .primitives(prims)
    384394                                .highlightWaySegments(highlight)
  • trunk/src/org/openstreetmap/josm/data/validation/tests/UnconnectedWays.java

    r14305 r14468  
    4646 */
    4747public abstract class UnconnectedWays extends Test {
     48    private final int code;
    4849
    4950    /**
     
    5152     */
    5253    public static class UnconnectedHighways extends UnconnectedWays {
     54        static final int UNCONNECTED_HIGHWAYS = 1311;
    5355
    5456        /**
     
    5658         */
    5759        public UnconnectedHighways() {
    58             super(tr("Unconnected highways"));
     60            super(tr("Unconnected highways"), UNCONNECTED_HIGHWAYS);
    5961        }
    6062
     
    6971     */
    7072    public static class UnconnectedRailways extends UnconnectedWays {
    71 
     73        static final int UNCONNECTED_RAILWAYS = 1321;
    7274        /**
    7375         * Constructs a new {@code UnconnectedRailways} test.
    7476         */
    7577        public UnconnectedRailways() {
    76             super(tr("Unconnected railways"));
     78            super(tr("Unconnected railways"), UNCONNECTED_RAILWAYS);
    7779        }
    7880
     
    8789     */
    8890    public static class UnconnectedWaterways extends UnconnectedWays {
    89 
     91        static final int UNCONNECTED_WATERWAYS = 1331;
    9092        /**
    9193         * Constructs a new {@code UnconnectedWaterways} test.
    9294         */
    9395        public UnconnectedWaterways() {
    94             super(tr("Unconnected waterways"));
     96            super(tr("Unconnected waterways"), UNCONNECTED_WATERWAYS);
    9597        }
    9698
     
    105107     */
    106108    public static class UnconnectedNaturalOrLanduse extends UnconnectedWays {
    107 
     109        static final int UNCONNECTED_NATURAL_OR_LANDUSE = 1341;
    108110        /**
    109111         * Constructs a new {@code UnconnectedNaturalOrLanduse} test.
    110112         */
    111113        public UnconnectedNaturalOrLanduse() {
    112             super(tr("Unconnected natural lands and landuses"));
     114            super(tr("Unconnected natural lands and landuses"), UNCONNECTED_NATURAL_OR_LANDUSE);
    113115        }
    114116
     
    123125     */
    124126    public static class UnconnectedPower extends UnconnectedWays {
    125 
     127        static final int UNCONNECTED_POWER = 1351;
    126128        /**
    127129         * Constructs a new {@code UnconnectedPower} test.
    128130         */
    129131        public UnconnectedPower() {
    130             super(tr("Unconnected power ways"));
     132            super(tr("Unconnected power ways"), UNCONNECTED_POWER);
    131133        }
    132134
     
    156158     */
    157159    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 14468
     169     */
     170    public UnconnectedWays(String title, int code) {
    158171        super(title, tr("This test checks if a way has an endpoint very near to another way."));
     172        this.code = code;
    159173    }
    160174
     
    268282    protected final void addErrors(Severity severity, Map<Node, Way> errorMap, String message) {
    269283        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)
    271285                    .message(message)
    272286                    .primitives(error.getKey(), error.getValue())
Note: See TracChangeset for help on using the changeset viewer.