Changeset 3457 in josm
- Timestamp:
- 2010-08-23T14:35:03+02:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
r3440 r3457 283 283 success = ways.remove((Way) primitive); 284 284 } else if (primitive instanceof Relation) { 285 success = relations.remove( primitive);285 success = relations.remove((Relation) primitive); 286 286 } 287 287 if (!success) … … 543 543 try { 544 544 DataSet ds = new DataSet(); 545 HashMap<OsmPrimitive, OsmPrimitive> prim itivesMap = new HashMap<OsmPrimitive, OsmPrimitive>();545 HashMap<OsmPrimitive, OsmPrimitive> primMap = new HashMap<OsmPrimitive, OsmPrimitive>(); 546 546 for (Node n : nodes) { 547 547 Node newNode = new Node(n); 548 prim itivesMap.put(n, newNode);548 primMap.put(n, newNode); 549 549 ds.addPrimitive(newNode); 550 550 } 551 551 for (Way w : ways) { 552 552 Way newWay = new Way(w); 553 prim itivesMap.put(w, newWay);553 primMap.put(w, newWay); 554 554 List<Node> newNodes = new ArrayList<Node>(); 555 555 for (Node n: w.getNodes()) { 556 newNodes.add((Node)prim itivesMap.get(n));556 newNodes.add((Node)primMap.get(n)); 557 557 } 558 558 newWay.setNodes(newNodes); … … 564 564 Relation newRelation = new Relation(r, r.isNew()); 565 565 newRelation.setMembers(null); 566 prim itivesMap.put(r, newRelation);566 primMap.put(r, newRelation); 567 567 ds.addPrimitive(newRelation); 568 568 } 569 569 for (Relation r : relations) { 570 Relation newRelation = (Relation)prim itivesMap.get(r);570 Relation newRelation = (Relation)primMap.get(r); 571 571 List<RelationMember> newMembers = new ArrayList<RelationMember>(); 572 572 for (RelationMember rm: r.getMembers()) { 573 newMembers.add(new RelationMember(rm.getRole(), prim itivesMap.get(rm.getMember())));573 newMembers.add(new RelationMember(rm.getRole(), primMap.get(rm.getMember()))); 574 574 } 575 575 newRelation.setMembers(newMembers); … … 671 671 try { 672 672 for (Way way: ways) { 673 List<Node> nodes = way.getNodes();674 if ( nodes.remove(node)) {675 if ( nodes.size() < 2) {673 List<Node> wayNodes = way.getNodes(); 674 if (wayNodes.remove(node)) { 675 if (wayNodes.size() < 2) { 676 676 deleteWay(way); 677 677 } else { 678 way.setNodes( nodes);678 way.setNodes(wayNodes); 679 679 } 680 680 }
Note:
See TracChangeset
for help on using the changeset viewer.