Ignore:
Timestamp:
2019-01-21T10:30:46+01:00 (6 years ago)
Author:
gerdp
Message:

fix some sonar issues, no functional change expected

Location:
applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/AngleSnap.java

    r34572 r34850  
    2525    public final Double addSnap(Node[] nodes) {
    2626        if (nodes.length == 2) {
    27             EastNorth p1, p2;
    28             p1 = latlon2eastNorth(nodes[0].getCoor());
    29             p2 = latlon2eastNorth(nodes[1].getCoor());
     27            EastNorth p1 = latlon2eastNorth(nodes[0].getCoor());
     28            EastNorth p2 = latlon2eastNorth(nodes[1].getCoor());
    3029            double heading = p1.heading(p2);
    3130            addSnap(heading);
     
    3938    public final void addSnap(Way way) {
    4039        for (Pair<Node, Node> pair : way.getNodePairs(false)) {
    41             EastNorth a, b;
    42             a = latlon2eastNorth(pair.a.getCoor());
    43             b = latlon2eastNorth(pair.b.getCoor());
     40            EastNorth a = latlon2eastNorth(pair.a.getCoor());
     41            EastNorth b = latlon2eastNorth(pair.b.getCoor());
    4442            double heading = a.heading(b);
    4543            addSnap(heading);
  • applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/Building.java

    r34807 r34850  
    4444    private final EastNorth[] en = new EastNorth[4];
    4545
    46     double meter = 0;
    47 
    48     private double len = 0;
     46    double meter;
     47
     48    private double len;
    4949    private double width;
    5050    private double heading;
    5151    private AngleSnap angleSnap = new AngleSnap();
    5252    private Double drawingAngle;
    53     private final static double EQUAL_NODE_DIST_TOLERANCE = 1e-6;
     53    private static final double EQUAL_NODE_DIST_TOLERANCE = 1e-6;
    5454
    5555    public void clearAngleSnap() {
     
    227227    }
    228228
    229     private Node findNode(EastNorth pos) {
     229    private static Node findNode(EastNorth pos) {
    230230        MapView mv = MainApplication.getMap().mapView;
    231231        Node n = mv.getNearestNode(mv.getPoint(eastNorth2latlon(pos)), OsmPrimitive::isSelectable);
     
    249249        nodesloop:
    250250        for (Node n : MainApplication.getLayerManager().getEditDataSet().searchNodes(bbox)) {
    251             if (!n.isUsable())
    252                 continue;
    253             tagcheck: do {
    254                 for (String key : n.getKeys().keySet()) {
    255                     if (key.equals("building") || key.startsWith("addr:"))
    256                         break tagcheck;
     251            if (n.isUsable() && findUsableTag(n)) {
     252                double x = projection1(latlon2eastNorth(n.getCoor()));
     253                double y = projection2(latlon2eastNorth(n.getCoor()));
     254                if (Math.signum(x) != Math.signum(len) || Math.signum(y) != Math.signum(width))
     255                    continue;
     256                if (Math.abs(x) > Math.abs(len) || Math.abs(y) > Math.abs(width))
     257                    continue;
     258                for (OsmPrimitive p : n.getReferrers()) {
     259                    // Don't use nodes if they're referenced by ways
     260                    if (p.getType() == OsmPrimitiveType.WAY)
     261                        continue nodesloop;
    257262                }
    258                 continue nodesloop;
    259             } while (false);
    260             double x = projection1(latlon2eastNorth(n.getCoor()));
    261             double y = projection2(latlon2eastNorth(n.getCoor()));
    262             if (Math.signum(x) != Math.signum(len) || Math.signum(y) != Math.signum(width))
    263                 continue;
    264             if (Math.abs(x) > Math.abs(len) || Math.abs(y) > Math.abs(width))
    265                 continue;
    266             for (OsmPrimitive p : n.getReferrers()) {
    267                 // Don't use nodes if they're referenced by ways
    268                 if (p.getType() == OsmPrimitiveType.WAY)
    269                     continue nodesloop;
    270             }
    271             nodes.add(n);
     263                nodes.add(n);
     264            }
    272265        }
    273266        if (nodes.size() != 1)
    274267            return null;
    275268        return nodes.get(0);
     269    }
     270
     271    static boolean findUsableTag(OsmPrimitive p) {
     272        for (String key : p.getKeys().keySet()) {
     273            if ("building".equals(key) || key.startsWith("addr:")) {
     274                return true;
     275            }
     276        }
     277        return false;
    276278    }
    277279
     
    315317
    316318        snapBuildings(w, nodes, addNodesCmd);
    317         if (addNodesCmd.size() > 0) {
     319        if (!addNodesCmd.isEmpty()) {
    318320            Command addNodes = new SequenceCommand(tr("Add nodes for building"), addNodesCmd);
    319321            UndoRedoHandler.getInstance().add(addNodes);
     
    396398    }
    397399
    398     private void snapBuildings(Way w, Node[] nodes, Collection<Command> cmds) {
     400    private static void snapBuildings(Way w, Node[] nodes, Collection<Command> cmds) {
    399401        // calculate BBox which is slightly larger than the new building
    400402        List<Node> wayNodes = w.getNodes();
     
    435437     */
    436438    private static void snapToWay(List<Node> wayNodes, Collection<Node> otherNodes) {
    437         for (int i = 0; i < wayNodes.size(); i++) {
     439        int i = 0;
     440        while (i < wayNodes.size()) {
    438441            Node n0 = wayNodes.get(i);
    439442            Node n1 = wayNodes.get(i + 1 == wayNodes.size() ? 0 : i + 1);
    440443            for (Node n2 : otherNodes) {
    441                 if (n2 == n0 || n2 == n1)
    442                     continue;
    443                 EastNorth x = Geometry.closestPointToSegment(n0.getEastNorth(), n1.getEastNorth(), n2.getEastNorth());
    444                 if (x.distance(n2.getEastNorth()) <= EQUAL_NODE_DIST_TOLERANCE && !wayNodes.contains(n2)) {
    445                     wayNodes.add(i + 1, n2);
    446                     // we may add multiple nodes to one segment, so repeat it
    447                     i--;
    448                     break;
     444                if (n2 != n0 && n2 != n1) {
     445                    EastNorth x = Geometry.closestPointToSegment(n0.getEastNorth(), n1.getEastNorth(),
     446                            n2.getEastNorth());
     447                    if (x.distance(n2.getEastNorth()) <= EQUAL_NODE_DIST_TOLERANCE && !wayNodes.contains(n2)) {
     448                        wayNodes.add(i + 1, n2);
     449                        // we may add multiple nodes to one segment, so repeat
     450                        // it
     451                        i--;
     452                        break;
     453                    }
    449454                }
    450455            }
     456            i++;
    451457        }
    452458    }
  • applications/editors/josm/plugins/buildings_tools/src/org/openstreetmap/josm/plugins/buildings_tools/MergeAddrPointsAction.java

    r34572 r34850  
    9191                    if (mergeNode != null) {
    9292                        multi++;
    93                         continue buildingsLoop; // Multiple address nodes inside
    94                                                 // one building -- skipping
     93                        // Multiple address nodes inside one building --
     94                        // skipping
     95                        continue buildingsLoop;
    9596                    } else
    9697                        mergeNode = n;
Note: See TracChangeset for help on using the changeset viewer.