Changeset 23273 in osm


Ignore:
Timestamp:
2010-09-19T19:27:21+02:00 (14 years ago)
Author:
upliner
Message:

'fix #j5160, update MultiOsmReader, some refactoring, some small bugfixes'

Location:
applications/editors/josm/plugins/reverter
Files:
4 added
3 edited
2 moved

Legend:

Unmodified
Added
Removed
  • applications/editors/josm/plugins/reverter/build.xml

    r22533 r23273  
    3131
    3232        <!-- enter the SVN commit message -->
    33         <property name="commit.message" value="update to josm latest" />
     33        <property name="commit.message" value="fix #j5160, update MultiOsmReader, some refactoring, some small bugfixes" />
    3434        <!-- enter the *lowest* JOSM version this plugin is currently compatible with -->
    3535        <property name="plugin.main.version" value="3403" />
  • applications/editors/josm/plugins/reverter/src/reverter/ChangesetReverter.java

    r23192 r23273  
    33import static org.openstreetmap.josm.tools.I18n.tr;
    44
     5import java.util.Collections;
    56import java.util.HashSet;
    67import java.util.Iterator;
     
    1516import org.openstreetmap.josm.data.coor.LatLon;
    1617import org.openstreetmap.josm.data.osm.Changeset;
    17 import org.openstreetmap.josm.data.osm.ChangesetDataSet;
    1818import org.openstreetmap.josm.data.osm.DataSet;
    1919import org.openstreetmap.josm.data.osm.Node;
     
    2424import org.openstreetmap.josm.data.osm.SimplePrimitiveId;
    2525import org.openstreetmap.josm.data.osm.Way;
    26 import org.openstreetmap.josm.data.osm.ChangesetDataSet.ChangesetDataSetEntry;
    27 import org.openstreetmap.josm.data.osm.ChangesetDataSet.ChangesetModificationType;
    2826import org.openstreetmap.josm.data.osm.history.HistoryNode;
    2927import org.openstreetmap.josm.data.osm.history.HistoryOsmPrimitive;
     
    3432import org.openstreetmap.josm.gui.progress.ProgressMonitor;
    3533import org.openstreetmap.josm.io.MultiFetchServerObjectReader;
    36 import org.openstreetmap.josm.io.OsmServerChangesetReader;
    3734import org.openstreetmap.josm.io.OsmTransferException;
     35
     36import reverter.corehacks.ChangesetDataSet;
     37import reverter.corehacks.OsmServerChangesetReader;
     38import reverter.corehacks.ChangesetDataSet.ChangesetDataSetEntry;
     39import reverter.corehacks.ChangesetDataSet.ChangesetModificationType;
    3840
    3941/**
     
    167169        try {
    168170            for (HistoryOsmPrimitive entry : updated) {
    169                 rdr.ReadObject(entry.getPrimitiveId(), (int)entry.getVersion()-1,
     171                rdr.ReadObject(entry.getPrimitiveId(), cds.getEarliestVersion(entry.getPrimitiveId())-1,
    170172                        progressMonitor.createSubTaskMonitor(1, true));
    171173                if (progressMonitor.isCancelled()) return;
    172174            }
    173175            for (HistoryOsmPrimitive entry : deleted) {
    174                 rdr.ReadObject(entry.getPrimitiveId(), (int)entry.getVersion()-1,
     176                rdr.ReadObject(entry.getPrimitiveId(), cds.getEarliestVersion(entry.getPrimitiveId())-1,
    175177                        progressMonitor.createSubTaskMonitor(1, true));
    176178                if (progressMonitor.isCancelled()) return;
    177179            }
    178180            nds = rdr.parseOsm(progressMonitor.createSubTaskMonitor(1, true));
    179             addMissingIds(nds.allPrimitives());
     181            for (OsmPrimitive p : nds.allPrimitives()) {
     182                if (!p.isIncomplete()) addMissingIds(Collections.singleton(p));
     183            }
    180184        } finally {
    181185            progressMonitor.finishTask();
     
    246250                RelationMember historyMember = historyMembers.get(i);
    247251                if (!currentMember.getRole().equals(historyMember.getRole())) return false;
    248                 if (currentMember.getMember().getPrimitiveId().equals(new SimplePrimitiveId(
     252                if (!currentMember.getMember().getPrimitiveId().equals(new SimplePrimitiveId(
    249253                        historyMember.getPrimitiveId(),historyMember.getPrimitiveType()))) return false;
    250254            }
     
    263267        //////////////////////////////////////////////////////////////////////////
    264268        // Create commands to restore/update all affected objects
    265         DataSetToCmd merger = new DataSetToCmd(nds,ds);
     269        DataSetCommandMerger merger = new DataSetCommandMerger(nds,ds);
    266270        LinkedList<Command> cmds = merger.getCommandList();
    267271
  • applications/editors/josm/plugins/reverter/src/reverter/DataSetCommandMerger.java

    r22411 r23273  
    2323 *
    2424 */
    25 final class DataSetToCmd {
     25final class DataSetCommandMerger {
    2626
    2727    /** the collection of conflicts created during merging */
     
    3636     * constructor
    3737     */
    38     public DataSetToCmd(DataSet sourceDataSet, DataSet targetDataSet) {
     38    public DataSetCommandMerger(DataSet sourceDataSet, DataSet targetDataSet) {
    3939        this.sourceDataSet = sourceDataSet;
    4040        this.targetDataSet = targetDataSet;
  • applications/editors/josm/plugins/reverter/src/reverter/OsmServerMultiObjectReader.java

    r21634 r23273  
    1313import org.openstreetmap.josm.io.OsmTransferException;
    1414import org.xml.sax.SAXException;
     15
     16import reverter.corehacks.MultiOsmReader;
    1517
    1618public class OsmServerMultiObjectReader extends OsmServerReader {
  • applications/editors/josm/plugins/reverter/src/reverter/corehacks/MultiOsmReader.java

    r23271 r23273  
    1 package reverter;
     1package reverter.corehacks;
    22
    33import static org.openstreetmap.josm.tools.I18n.tr;
     
    5757     * The dataset to add parsed objects to.
    5858     */
    59     private DataSet ds = new DataSet();
     59    private final DataSet ds = new DataSet();
    6060
    6161    /**
     
    9797     * Data structure for the remaining way objects
    9898     */
    99     private Map<Long, Collection<Long>> ways = new HashMap<Long, Collection<Long>>();
     99    private final Map<Long, Collection<Long>> ways = new HashMap<Long, Collection<Long>>();
    100100
    101101    /**
    102102     * Data structure for relation objects
    103103     */
    104     private Map<Long, Collection<RelationMemberData>> relations = new HashMap<Long, Collection<RelationMemberData>>();
     104    private final Map<Long, Collection<RelationMemberData>> relations = new HashMap<Long, Collection<RelationMemberData>>();
    105105
    106106    private class Parser extends DefaultHandler {
     
    121121        private long currentExternalId;
    122122        private String generator;
    123         private Storage<String> internedStrings = new Storage<String>();
     123        private final Storage<String> internedStrings = new Storage<String>();
    124124
    125125        // Memory optimization - see #2312
     
    372372            } else if (action.equals("delete")) {
    373373                current.setDeleted(true);
    374                 current.setModified(true);
     374                current.setModified(current.isVisible());
    375375            } else if (action.equals("modify")) {
    376376                current.setModified(true);
Note: See TracChangeset for help on using the changeset viewer.