Changeset 33513 in osm


Ignore:
Timestamp:
2017-08-22T11:52:57+02:00 (7 years ago)
Author:
giackserva
Message:

[pt_assistant] refactoring

Location:
applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/utils/RouteUtils.java

    r33469 r33513  
    2020
    2121    private static final String PT_VERSION_TAG = "public_transport:version";
    22     private static final String TAG_ROUTE = "route";
     22    public static final String TAG_ROUTE = "route";
    2323    private RouteUtils() {
    2424        // private constructor for util classes
  • applications/editors/josm/plugins/pt_assistant/src/org/openstreetmap/josm/plugins/pt_assistant/validation/WayChecker.java

    r33505 r33513  
    4242    protected void performRoadTypeTest() {
    4343
    44         if (!relation.hasTag("route", "bus") && !relation.hasTag("route", "trolleybus")
    45                 && !relation.hasTag("route", "share_taxi")) {
     44        if (!relation.hasTag(RouteUtils.TAG_ROUTE, "bus") && !relation.hasTag(RouteUtils.TAG_ROUTE, "trolleybus")
     45                && !relation.hasTag(RouteUtils.TAG_ROUTE, "share_taxi")) {
    4646            return;
    4747        }
     
    5959                    isUnderConstruction = true;
    6060                }
    61                 if (relation.hasTag("route", "bus") || relation.hasTag("route", "share_taxi")) {
     61                if (relation.hasTag(RouteUtils.TAG_ROUTE, "bus") || relation.hasTag(RouteUtils.TAG_ROUTE, "share_taxi")) {
    6262                    if (!RouteUtils.isWaySuitableForBuses(way)) {
    6363                        isCorrectRoadType = false;
     
    6666                        isUnderConstruction = true;
    6767                    }
    68                 } else if (relation.hasTag("route", "trolleybus")) {
     68                } else if (relation.hasTag(RouteUtils.TAG_ROUTE, "trolleybus")) {
    6969                    if (!(RouteUtils.isWaySuitableForBuses(way) && way.hasTag("trolley_wire", "yes"))) {
    7070                        isCorrectRoadType = false;
     
    7373                        isUnderConstruction = true;
    7474                    }
    75                 } else if (relation.hasTag("route", "tram")) {
     75                } else if (relation.hasTag(RouteUtils.TAG_ROUTE, "tram")) {
    7676                    if (!way.hasTag("railway", "tram")) {
    7777                        isCorrectRoadType = false;
     
    8080                        isUnderConstruction = true;
    8181                    }
    82                 } else if (relation.hasTag("route", "subway", "light_rail")) {
     82                } else if (relation.hasTag(RouteUtils.TAG_ROUTE, "subway", "light_rail")) {
    8383                    if (!way.hasTag("railway", "subway")) {
    8484                        isCorrectRoadType = false;
     
    8787                        isUnderConstruction = true;
    8888                    }
    89                 } else if (relation.hasTag("route", "light_rail")) {
     89                } else if (relation.hasTag(RouteUtils.TAG_ROUTE, "light_rail")) {
    9090                    if (!way.hasTag("railway", "light_rail")) {
    9191                        isCorrectRoadType = false;
     
    9494                        isUnderConstruction = true;
    9595                    }
    96                 } else if (relation.hasTag("route", "train")) {
     96                } else if (relation.hasTag(RouteUtils.TAG_ROUTE, "train")) {
    9797                    if (!way.hasTag("railway", "rail", "narrow_gauge")) {
    9898                        isCorrectRoadType = false;
     
    240240        }
    241241
    242         if (prev != null) {
    243 
    244             if (RouteUtils.waysTouch(curr, prev)) {
    245                 Node nodeInQuestion;
    246                 if (RouteUtils.isOnewayForPublicTransport(curr) == 1) {
    247                     nodeInQuestion = curr.firstNode();
    248                 } else {
    249                     nodeInQuestion = curr.lastNode();
    250                 }
    251 
    252                 List<Way> nb = findNeighborWays(curr, nodeInQuestion);
    253 
    254                 if (nb.size() < 2 && nodeInQuestion != prev.firstNode() && nodeInQuestion != prev.lastNode()) {
    255                     return false;
    256                 }
    257             }
    258         }
    259 
    260         if (next != null) {
    261 
    262             if (RouteUtils.waysTouch(curr, next)) {
    263                 Node nodeInQuestion;
    264                 if (RouteUtils.isOnewayForPublicTransport(curr) == 1) {
    265                     nodeInQuestion = curr.lastNode();
    266                 } else {
    267                     nodeInQuestion = curr.firstNode();
    268                 }
    269 
    270                 List<Way> nb = findNeighborWays(curr, nodeInQuestion);
    271 
    272                 if (nb.size() < 2 && nodeInQuestion != next.firstNode() && nodeInQuestion != next.lastNode()) {
    273                     return false;
    274                 }
     242        if (prev != null && RouteUtils.waysTouch(curr, prev)) {
     243            Node nodeInQuestion;
     244            if (RouteUtils.isOnewayForPublicTransport(curr) == 1) {
     245                nodeInQuestion = curr.firstNode();
     246            } else {
     247                nodeInQuestion = curr.lastNode();
     248            }
     249
     250            List<Way> nb = findNeighborWays(curr, nodeInQuestion);
     251
     252            if (nb.size() < 2 && nodeInQuestion != prev.firstNode() && nodeInQuestion != prev.lastNode()) {
     253                return false;
     254            }
     255        }
     256
     257        if (next != null && RouteUtils.waysTouch(curr, next)) {
     258            Node nodeInQuestion;
     259            if (RouteUtils.isOnewayForPublicTransport(curr) == 1) {
     260                nodeInQuestion = curr.lastNode();
     261            } else {
     262                nodeInQuestion = curr.firstNode();
     263            }
     264
     265            List<Way> nb = findNeighborWays(curr, nodeInQuestion);
     266
     267            if (nb.size() < 2 && nodeInQuestion != next.firstNode() && nodeInQuestion != next.lastNode()) {
     268                return false;
    275269            }
    276270        }
     
    288282
    289283        if (RouteUtils.isOnewayForPublicTransport(curr) == 0) {
    290             return null;
     284            return resultSet;
    291285        }
    292286
     
    310304            }
    311305
    312             if (RouteUtils.isOnewayForPublicTransport(nb) == 1 && nb.firstNode() == firstNodeInRouteDirection) {
    313                 Set<Way> newSet = this.checkAdjacentWays(nb, resultSet);
     306            int oneway = RouteUtils.isOnewayForPublicTransport(nb);
     307            if ((oneway == 1 && nb.firstNode() == firstNodeInRouteDirection) ||
     308                    (oneway == -1 && nb.lastNode() == firstNodeInRouteDirection)) {
     309                Set<Way> newSet = checkAdjacentWays(nb, resultSet);
    314310                resultSet.addAll(newSet);
    315 
    316             } else if (RouteUtils.isOnewayForPublicTransport(nb) == -1 && nb.lastNode() == firstNodeInRouteDirection) {
    317                 Set<Way> newSet = this.checkAdjacentWays(nb, resultSet);
    318                 resultSet.addAll(newSet);
    319 
    320311            }
    321312        }
     
    327318            }
    328319
    329             if (RouteUtils.isOnewayForPublicTransport(nb) == 1 && nb.lastNode() == lastNodeInRouteDirection) {
    330                 Set<Way> newSet = this.checkAdjacentWays(nb, resultSet);
     320            int oneway = RouteUtils.isOnewayForPublicTransport(nb);
     321            if ((oneway == 1 && nb.lastNode() == lastNodeInRouteDirection) ||
     322                    (oneway == -1 && nb.firstNode() == lastNodeInRouteDirection)) {
     323                Set<Way> newSet = checkAdjacentWays(nb, resultSet);
    331324                resultSet.addAll(newSet);
    332             } else if (RouteUtils.isOnewayForPublicTransport(nb) == -1 && nb.firstNode() == lastNodeInRouteDirection) {
    333                 Set<Way> newSet = this.checkAdjacentWays(nb, resultSet);
    334                 resultSet.addAll(newSet);
    335             }
    336 
     325            }
    337326        }
    338327
    339328        return resultSet;
    340 
    341329    }
    342330
     
    443431        modifiedRelation.setMembers(modifiedRelationMembers);
    444432
    445         ChangeCommand changeCommand = new ChangeCommand(originalRelation, modifiedRelation);
    446 
    447         return changeCommand;
     433        return new ChangeCommand(originalRelation, modifiedRelation);
    448434    }
    449435
Note: See TracChangeset for help on using the changeset viewer.