- Timestamp:
- 2009-11-10T21:25:40+01:00 (15 years ago)
- Location:
- trunk/src/org/openstreetmap/josm
- Files:
-
- 9 edited
- 1 moved
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/DownloadReferrersAction.java
r2343 r2433 18 18 import org.openstreetmap.josm.Main; 19 19 import org.openstreetmap.josm.data.osm.DataSet; 20 import org.openstreetmap.josm.data.osm.DataSetMerger; 20 21 import org.openstreetmap.josm.data.osm.OsmPrimitive; 21 22 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 22 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;23 23 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 24 24 import org.openstreetmap.josm.gui.layer.OsmDataLayer; … … 210 210 } 211 211 212 MergeVisitor visitor = newMergeVisitor(targetLayer.data, parents);212 DataSetMerger visitor = new DataSetMerger(targetLayer.data, parents); 213 213 visitor.merge(); 214 214 SwingUtilities.invokeLater( … … 239 239 reader = null; 240 240 } 241 MergeVisitor visitor = newMergeVisitor(parents, ds);241 DataSetMerger visitor = new DataSetMerger(parents, ds); 242 242 visitor.merge(); 243 243 } -
trunk/src/org/openstreetmap/josm/actions/UpdateSelectionAction.java
r2381 r2433 15 15 import org.openstreetmap.josm.Main; 16 16 import org.openstreetmap.josm.data.osm.DataSet; 17 import org.openstreetmap.josm.data.osm.DataSetMerger; 17 18 import org.openstreetmap.josm.data.osm.Node; 18 19 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 20 21 import org.openstreetmap.josm.data.osm.Relation; 21 22 import org.openstreetmap.josm.data.osm.Way; 22 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;23 23 import org.openstreetmap.josm.gui.ExceptionDialogUtil; 24 24 import org.openstreetmap.josm.gui.PleaseWaitRunnable; … … 213 213 initMultiFetchReaderWithRelations(reader); 214 214 theirDataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 215 MergeVisitor merger = newMergeVisitor(ds, theirDataSet);215 DataSetMerger merger = new DataSetMerger(ds, theirDataSet); 216 216 merger.merge(); 217 217 // a ways loaded with MultiFetch may be incomplete because at least one of its … … 223 223 OsmServerObjectReader reader = new OsmServerObjectReader(w.getId(), OsmPrimitiveType.WAY, true /* full */); 224 224 theirDataSet = reader.parseOsm(progressMonitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 225 merger = new MergeVisitor(ds, theirDataSet);225 merger = new DataSetMerger(ds, theirDataSet); 226 226 merger.merge(); 227 227 } -
trunk/src/org/openstreetmap/josm/data/osm/DataSetMerger.java
r2418 r2433 1 package org.openstreetmap.josm.data.osm .visitor;1 package org.openstreetmap.josm.data.osm; 2 2 3 3 import static org.openstreetmap.josm.tools.I18n.tr; … … 13 13 14 14 import org.openstreetmap.josm.data.conflict.ConflictCollection; 15 import org.openstreetmap.josm.data.osm.DataSet;16 import org.openstreetmap.josm.data.osm.Node;17 import org.openstreetmap.josm.data.osm.OsmPrimitive;18 import org.openstreetmap.josm.data.osm.Relation;19 import org.openstreetmap.josm.data.osm.RelationMember;20 import org.openstreetmap.josm.data.osm.Way;21 15 22 16 /** 23 * A visitor that gets a data set at construction timeand mergesevery visited object24 * into it.25 * 17 * A dataset merger which takes a target and a source dataset and merges the source data set 18 * onto the target dataset. 19 * 26 20 */ 27 public class MergeVisitor extends AbstractVisitor {28 private static Logger logger = Logger.getLogger( MergeVisitor.class.getName());21 public class DataSetMerger { 22 private static Logger logger = Logger.getLogger(DataSetMerger.class.getName()); 29 23 30 24 /** the collection of conflicts created during merging */ … … 51 45 * The visitor will merge <code>theirDataSet</code> onto <code>myDataSet</code> 52 46 * 53 * @param myDataSet dataset with my primitives 54 * @param theirDataSet dataset with their primitives. 55 */ 56 public MergeVisitor(DataSet myDataSet, DataSet theirDataSet) { 47 * @param myDataSet dataset with my primitives. Must not be null. 48 * @param theirDataSet dataset with their primitives. Ignored, if null. 49 * @throws IllegalArgumentException thrown if myDataSet is null 50 */ 51 public DataSetMerger(DataSet myDataSet, DataSet theirDataSet) throws IllegalArgumentException { 52 if (myDataSet == null) 53 throw new IllegalArgumentException(tr("Parameter ''{0}'' must not be null")); 57 54 this.myDataSet = myDataSet; 58 55 this.theirDataSet = theirDataSet; … … 82 79 // 83 80 if (mergeById(other)) 81 return; 82 if (!other.isVisible()) 83 // ignore it 84 84 return; 85 85 } else { … … 116 116 } 117 117 } 118 118 119 // If we get here we didn't find a suitable primitive in 119 120 // my dataset. Create a clone and add it to my dataset. … … 129 130 mergedMap.put(other.getUniqueId(), my.getUniqueId()); 130 131 fixReferences.add(other.getUniqueId()); 131 }132 133 public void visit(Node other) {134 mergePrimitive(other);135 }136 137 public void visit(Way other) {138 mergePrimitive(other);139 }140 141 public void visit(Relation other) {142 mergePrimitive(other);143 132 } 144 133 … … 357 346 */ 358 347 public void merge() { 348 if (theirDataSet == null) 349 return; 359 350 for (Node node: theirDataSet.getNodes()) { 360 node.visit(this);351 mergePrimitive(node); 361 352 } 362 353 for (Way way: theirDataSet.getWays()) { 363 way.visit(this);354 mergePrimitive(way); 364 355 } 365 356 for (Relation relation: theirDataSet.getRelations()) { 366 relation .visit(this);357 mergePrimitive(relation); 367 358 } 368 359 fixReferences(); -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ChildRelationBrowser.java
r2381 r2433 30 30 import org.openstreetmap.josm.Main; 31 31 import org.openstreetmap.josm.data.osm.DataSet; 32 import org.openstreetmap.josm.data.osm.DataSetMerger; 32 33 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 33 34 import org.openstreetmap.josm.data.osm.Relation; 34 35 import org.openstreetmap.josm.data.osm.RelationMember; 35 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;36 36 import org.openstreetmap.josm.gui.DefaultNameFormatter; 37 37 import org.openstreetmap.josm.gui.ExceptionDialogUtil; … … 380 380 protected void mergeDataSet(DataSet ds) { 381 381 if (ds != null) { 382 final MergeVisitor visitor = newMergeVisitor(getLayer().data, ds);382 final DataSetMerger visitor = new DataSetMerger(getLayer().data, ds); 383 383 visitor.merge(); 384 384 // FIXME: this is necessary because there are dialogs listening … … 490 490 protected void mergeDataSet(DataSet dataSet) { 491 491 if (dataSet != null) { 492 final MergeVisitor visitor = newMergeVisitor(getLayer().data, dataSet);492 final DataSetMerger visitor = new DataSetMerger(getLayer().data, dataSet); 493 493 visitor.merge(); 494 494 // FIXME: this is necessary because there are dialogs listening -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/GenericRelationEditor.java
r2381 r2433 57 57 import org.openstreetmap.josm.data.osm.DataSet; 58 58 import org.openstreetmap.josm.data.osm.DataSource; 59 import org.openstreetmap.josm.data.osm.DataSetMerger; 59 60 import org.openstreetmap.josm.data.osm.OsmPrimitive; 60 61 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 61 62 import org.openstreetmap.josm.data.osm.Relation; 62 63 import org.openstreetmap.josm.data.osm.RelationMember; 63 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;64 64 import org.openstreetmap.josm.gui.ConditionalOptionPaneUtil; 65 65 import org.openstreetmap.josm.gui.DefaultNameFormatter; … … 1447 1447 if (dataSet != null) { 1448 1448 changed = true; 1449 final MergeVisitor visitor = newMergeVisitor(curLayer.data, dataSet);1449 final DataSetMerger visitor = new DataSetMerger(curLayer.data, dataSet); 1450 1450 visitor.merge(); 1451 1451 -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/ParentRelationLoadingTask.java
r2401 r2433 14 14 import org.openstreetmap.josm.data.osm.DataSet; 15 15 import org.openstreetmap.josm.data.osm.DataSource; 16 import org.openstreetmap.josm.data.osm.DataSetMerger; 16 17 import org.openstreetmap.josm.data.osm.Relation; 17 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;18 18 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 19 19 import org.openstreetmap.josm.gui.layer.OsmDataLayer; … … 164 164 referrers = reader.parseOsm(progressMonitor.createSubTaskMonitor(1, false)); 165 165 if (referrers != null) { 166 final MergeVisitor visitor = newMergeVisitor(getLayer().data, referrers);166 final DataSetMerger visitor = new DataSetMerger(getLayer().data, referrers); 167 167 visitor.merge(); 168 168 -
trunk/src/org/openstreetmap/josm/gui/dialogs/relation/RelationTree.java
r2273 r2433 18 18 import org.openstreetmap.josm.Main; 19 19 import org.openstreetmap.josm.data.osm.DataSet; 20 import org.openstreetmap.josm.data.osm.DataSetMerger; 20 21 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 21 22 import org.openstreetmap.josm.data.osm.Relation; 22 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;23 23 import org.openstreetmap.josm.gui.PleaseWaitRunnable; 24 24 import org.openstreetmap.josm.gui.progress.PleaseWaitProgressMonitor; … … 136 136 return; 137 137 } 138 MergeVisitor visitor = newMergeVisitor(Main.main.getEditLayer().data, ds);138 DataSetMerger visitor = new DataSetMerger(Main.main.getEditLayer().data, ds); 139 139 visitor.merge(); 140 140 if (! visitor.getConflicts().isEmpty()) { -
trunk/src/org/openstreetmap/josm/gui/layer/OsmDataLayer.java
r2414 r2433 50 50 import org.openstreetmap.josm.data.osm.DataSet; 51 51 import org.openstreetmap.josm.data.osm.DataSource; 52 import org.openstreetmap.josm.data.osm.DataSetMerger; 52 53 import org.openstreetmap.josm.data.osm.Node; 53 54 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 57 58 import org.openstreetmap.josm.data.osm.visitor.BoundingXYVisitor; 58 59 import org.openstreetmap.josm.data.osm.visitor.MapPaintVisitor; 59 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;60 60 import org.openstreetmap.josm.data.osm.visitor.SimplePaintVisitor; 61 61 import org.openstreetmap.josm.gui.HelpAwareOptionPane; … … 277 277 */ 278 278 public void mergeFrom(final DataSet from) { 279 final MergeVisitor visitor = newMergeVisitor(data,from);279 final DataSetMerger visitor = new DataSetMerger(data,from); 280 280 visitor.merge(); 281 281 -
trunk/src/org/openstreetmap/josm/io/MultiFetchServerObjectReader.java
r2273 r2433 14 14 15 15 import org.openstreetmap.josm.data.osm.DataSet; 16 import org.openstreetmap.josm.data.osm.DataSetMerger; 16 17 import org.openstreetmap.josm.data.osm.Node; 17 18 import org.openstreetmap.josm.data.osm.OsmPrimitive; … … 20 21 import org.openstreetmap.josm.data.osm.RelationMember; 21 22 import org.openstreetmap.josm.data.osm.Way; 22 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;23 23 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 24 24 import org.openstreetmap.josm.gui.progress.ProgressMonitor; … … 387 387 */ 388 388 protected void merge(DataSet from) { 389 final MergeVisitor visitor = newMergeVisitor(outputDataSet,from);389 final DataSetMerger visitor = new DataSetMerger(outputDataSet,from); 390 390 visitor.merge(); 391 391 } -
trunk/src/org/openstreetmap/josm/io/OsmServerBackreferenceReader.java
r2381 r2433 9 9 10 10 import org.openstreetmap.josm.data.osm.DataSet; 11 import org.openstreetmap.josm.data.osm.DataSetMerger; 11 12 import org.openstreetmap.josm.data.osm.OsmPrimitive; 12 13 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 13 14 import org.openstreetmap.josm.data.osm.Relation; 14 15 import org.openstreetmap.josm.data.osm.Way; 15 import org.openstreetmap.josm.data.osm.visitor.MergeVisitor;16 16 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 17 17 import org.openstreetmap.josm.gui.progress.ProgressMonitor; … … 227 227 OsmServerObjectReader reader = new OsmServerObjectReader(way.getId(), OsmPrimitiveType.from(way), true /* read full */); 228 228 DataSet wayDs = reader.parseOsm(progressMonitor.createSubTaskMonitor(1, false)); 229 MergeVisitor visitor = newMergeVisitor(ds, wayDs);229 DataSetMerger visitor = new DataSetMerger(ds, wayDs); 230 230 visitor.merge(); 231 231 } … … 238 238 OsmServerObjectReader reader = new OsmServerObjectReader(relation.getId(), OsmPrimitiveType.from(relation), true /* read full */); 239 239 DataSet wayDs = reader.parseOsm(progressMonitor.createSubTaskMonitor(1, false)); 240 MergeVisitor visitor = newMergeVisitor(ds, wayDs);240 DataSetMerger visitor = new DataSetMerger(ds, wayDs); 241 241 visitor.merge(); 242 242 } … … 267 267 if (primitiveType.equals(OsmPrimitiveType.NODE)) { 268 268 DataSet ds = getReferringWays(progressMonitor.createSubTaskMonitor(1, false)); 269 MergeVisitor visitor = newMergeVisitor(ret,ds);269 DataSetMerger visitor = new DataSetMerger(ret,ds); 270 270 visitor.merge(); 271 271 ret = visitor.getMyDataSet(); 272 272 } 273 273 DataSet ds = getReferringRelations(progressMonitor.createSubTaskMonitor(1, false)); 274 MergeVisitor visitor = newMergeVisitor(ret,ds);274 DataSetMerger visitor = new DataSetMerger(ret,ds); 275 275 visitor.merge(); 276 276 ret = visitor.getMyDataSet();
Note:
See TracChangeset
for help on using the changeset viewer.