Changeset 35292 in osm for applications/editors


Ignore:
Timestamp:
2020-01-13T21:45:38+01:00 (5 years ago)
Author:
simon04
Message:

JOSM/comfort0: fix generated Level0L

Location:
applications/editors/josm/plugins/comfort0
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/comfort0/src/net/simon04/comfort0/OsmToLevel0L.java

    r35289 r35292  
    2222    private final StringBuilder sb = new StringBuilder();
    2323
    24     public void visit(Collection<OsmPrimitive> primitives) {
     24    /**
     25     * Visits a collection of primitives
     26     * @param primitives The collection of primitives
     27     * @return {@code this}
     28     */
     29    public OsmToLevel0L visit(Collection<OsmPrimitive> primitives) {
    2530        primitives.stream()
    2631                .sorted(OsmPrimitiveComparator.orderingWaysRelationsNodes().thenComparing(OsmPrimitiveComparator.comparingUniqueId()))
    2732                .forEachOrdered(p -> p.accept(this));
     33        return this;
    2834    }
    2935
     
    3743        appendCommon(w);
    3844        for (Node node : w.getNodes()) {
    39             sb.append("  n").append(node.getUniqueId());
    40             appendDisplayName(node);
     45            appendRef(node, "");
    4146        }
    4247    }
     
    4651        appendCommon(r);
    4752        for (RelationMember member : r.getMembers()) {
    48             sb.append("  ");
    49             switch (member.getType()) {
    50                 case NODE:
    51                     sb.append("nd ");
    52                     break;
    53                 case WAY:
    54                     sb.append("wy ");
    55                     break;
    56                 case RELATION:
    57                     sb.append("rel ");
    58                     break;
    59                 default:
    60                     break;
    61             }
    62             sb.append(member.getUniqueId()).append(" ");
    63             sb.append(member.getRole());
    64             appendDisplayName(member.getMember());
     53            appendRef(member.getMember(), " " + member.getRole());
    6554        }
     55    }
     56
     57    private void appendRef(OsmPrimitive primitive, String mixin) {
     58        sb.append("  ");
     59        switch (primitive.getType()) {
     60            case NODE:
     61                sb.append("nd ");
     62                break;
     63            case WAY:
     64                sb.append("wy ");
     65                break;
     66            case RELATION:
     67                sb.append("rel ");
     68                break;
     69            default:
     70                break;
     71        }
     72        sb.append(primitive.getUniqueId());
     73        sb.append(mixin);
     74        appendDisplayName(primitive);
    6675    }
    6776
     
    93102    @Override
    94103    public String toString() {
    95         return sb.toString().trim();
     104        return sb.toString().replaceFirst("^\\n", "");
    96105    }
    97106}
  • applications/editors/josm/plugins/comfort0/test/unit/net/simon04/comfort0/OsmToLevel0LTest.java

    r35289 r35292  
    4040        assertThat(converter.toString(), is(""
    4141                + "node 1234: 123.45, 67.89 #Comfort0 \u200E(123.45, 67.89)\n"
    42                 + "  name = Comfort0"));
     42                + "  name = Comfort0\n"));
    4343    }
    4444
     
    5757                    "  highway = unclassified\n" +
    5858                    "  name = Pastower Straße\n" +
    59                     "  n292403538 #incomplete\n" +
    60                     "  n298884289 #incomplete\n" +
    61                     "  n261728686 #261728686 \u200E(54.0906309, 12.2441924)\n" +
     59                    "  nd 292403538 #incomplete\n" +
     60                    "  nd 298884289 #incomplete\n" +
     61                    "  nd 261728686 #261728686 \u200E(54.0906309, 12.2441924)\n" +
    6262                    "\n" +
    6363                    "relation 56688 #route (\"Küstenbus Linie 123\", 4 members, incomplete)\n" +
     
    9191                    "node 1831881213: 54.0900666, 12.2539381 #Neu Broderstorf \u200E(54.0900666, 12.2539381)\n" +
    9292                    "  name = Neu Broderstorf\n" +
    93                     "  traffic_sign = city_limit"));
     93                    "  traffic_sign = city_limit\n"));
    9494        }
    9595    }
Note: See TracChangeset for help on using the changeset viewer.