Changeset 49 in josm for src/org/openstreetmap/josm/io/OsmWriter.java
- Timestamp:
- 2006-02-09T23:46:27+01:00 (20 years ago)
- File:
-
- 1 edited
-
src/org/openstreetmap/josm/io/OsmWriter.java (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/org/openstreetmap/josm/io/OsmWriter.java
r44 r49 4 4 import java.io.Writer; 5 5 import java.util.Collection; 6 import java.util.HashMap; 6 7 import java.util.LinkedList; 7 8 import java.util.List; … … 39 40 */ 40 41 private long newIdCounter = -1; 42 /** 43 * All newly created ids and their primitive that uses it. This is a back reference 44 * map to allow references to use the correnct primitives. 45 */ 46 private HashMap<OsmPrimitive, Long> usedNewIds = new HashMap<OsmPrimitive, Long>(); 41 47 42 48 /** … … 72 78 Collection<Element> allDeleted = deleted.getChildren(); 73 79 for (OsmPrimitive osm : ds.allPrimitives()) { 74 if (osm.isDeleted()) { 80 if (osm.isDeleted() && osm.id != 0) { 75 81 osm.visit(this); 76 82 allDeleted.add(element); … … 103 109 private void addProperties(Element e, OsmPrimitive osm) { 104 110 long id = osm.id; 105 if (id == 0) 111 if (id == 0) { 106 112 id = newIdCounter--; 113 usedNewIds.put(osm, id); 114 } 107 115 e.setAttribute("uid", ""+id); 108 116 if (osm.keys != null) … … 127 135 element = new Element("segment"); 128 136 addProperties(element, ls); 129 element.setAttribute("from", ""+ls.start.id); 130 element.setAttribute("to", ""+ls.end.id); 137 element.setAttribute("from", ""+getUsedId(ls.start)); 138 element.setAttribute("to", ""+getUsedId(ls.end)); 139 } 140 141 /** 142 * Return the id for the given osm primitive (may access the usedId map) 143 */ 144 private Long getUsedId(OsmPrimitive osm) { 145 return osm.id == 0 ? usedNewIds.get(osm) : osm.id; 131 146 } 132 147 … … 139 154 addProperties(element, t); 140 155 for (LineSegment ls : t.segments) 141 element.getChildren().add(new Element("segment").setAttribute("uid", ""+ ls.id));156 element.getChildren().add(new Element("segment").setAttribute("uid", ""+getUsedId(ls))); 142 157 } 143 158 … … 147 162 } 148 163 } 149
Note:
See TracChangeset
for help on using the changeset viewer.
