Changeset 1690 in josm for trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
- Timestamp:
- 23.06.2009 22:03:37 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/data/osm/DataSet.java
r1677 r1690 8 8 import java.util.HashSet; 9 9 import java.util.HashMap; 10 import java.util.Iterator; 10 11 import java.util.LinkedList; 11 12 import java.util.List; … … 80 81 Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 81 82 for (OsmPrimitive osm : allPrimitives()) 82 if ( !osm.deleted) {83 if (osm.visible && !osm.deleted) { 83 84 o.add(osm); 84 85 } … … 89 90 Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 90 91 for (OsmPrimitive osm : allPrimitives()) 91 if ( !osm.deleted && !osm.incomplete) {92 if (osm.visible && !osm.deleted && !osm.incomplete) { 92 93 o.add(osm); 93 94 } … … 98 99 Collection<OsmPrimitive> o = new LinkedList<OsmPrimitive>(); 99 100 for (OsmPrimitive osm : allPrimitives()) 100 if ( !osm.deleted && !osm.incomplete && !(osm instanceof Relation)) {101 if (osm.visible && !osm.deleted && !osm.incomplete && !(osm instanceof Relation)) { 101 102 o.add(osm); 102 103 } … … 311 312 return ret; 312 313 } 314 315 protected void deleteWay(Way way) { 316 way.nodes.clear(); 317 way.delete(true); 318 } 319 320 /** 321 * removes all references from ways in this dataset to a particular node 322 * 323 * @param node the node 324 */ 325 public void unlinkNodeFromWays(Node node) { 326 for (Way way: ways) { 327 if (way.nodes.contains(node)) { 328 way.nodes.remove(node); 329 if (way.nodes.size() < 2) { 330 deleteWay(way); 331 } 332 } 333 } 334 } 335 336 /** 337 * removes all references from relations in this dataset to this primitive 338 * 339 * @param primitive the primitive 340 */ 341 public void unlinkPrimitiveFromRelations(OsmPrimitive primitive) { 342 for (Relation relation : relations) { 343 Iterator<RelationMember> it = relation.members.iterator(); 344 while(it.hasNext()) { 345 RelationMember member = it.next(); 346 if (member.member.equals(primitive)) { 347 it.remove(); 348 } 349 } 350 } 351 } 352 353 /** 354 * removes all references from from other primitives to the 355 * referenced primitive 356 * 357 * @param referencedPrimitive the referenced primitive 358 */ 359 public void unlinkReferencesToPrimitive(OsmPrimitive referencedPrimitive) { 360 if (referencedPrimitive instanceof Node) { 361 unlinkNodeFromWays((Node)referencedPrimitive); 362 unlinkPrimitiveFromRelations(referencedPrimitive); 363 } else { 364 unlinkPrimitiveFromRelations(referencedPrimitive); 365 } 366 } 313 367 }
Note: See TracChangeset
for help on using the changeset viewer.
