Changeset 2604 in josm for trunk/src/org/openstreetmap/josm/io/OsmApi.java
- Timestamp:
- 2009-12-10T18:42:41+01:00 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/OsmApi.java
r2599 r2604 19 19 import java.net.URL; 20 20 import java.net.UnknownHostException; 21 import java.util.ArrayList;22 21 import java.util.Collection; 23 22 import java.util.Collections; … … 30 29 import org.openstreetmap.josm.data.osm.OsmPrimitive; 31 30 import org.openstreetmap.josm.data.osm.OsmPrimitiveType; 32 import org.openstreetmap.josm.data.osm.visitor.CreateOsmChangeVisitor;33 31 import org.openstreetmap.josm.gui.progress.NullProgressMonitor; 34 32 import org.openstreetmap.josm.gui.progress.ProgressMonitor; … … 240 238 ret = sendRequest("PUT", OsmPrimitiveType.from(osm).getAPIName()+"/create", toXml(osm, true),monitor); 241 239 osm.setOsmId(Long.parseLong(ret.trim()), 1); 240 osm.setChangesetId(getChangeset().getId()); 242 241 } catch(NumberFormatException e){ 243 242 throw new OsmTransferException(tr("Unexpected format of ID replied by the server. Got ''{0}''.", ret)); … … 260 259 ret = sendRequest("PUT", OsmPrimitiveType.from(osm).getAPIName()+"/" + osm.getId(), toXml(osm, true), monitor); 261 260 osm.setOsmId(osm.getId(), Integer.parseInt(ret.trim())); 261 osm.setChangesetId(getChangeset().getId()); 262 262 } catch(NumberFormatException e) { 263 263 throw new OsmTransferException(tr("Unexpected format of new version of modified primitive ''{0}''. Got ''{1}''.", osm.getId(), ret)); … … 301 301 try { 302 302 ret = sendRequest("PUT", "changeset/create", toXml(changeset),progressMonitor); 303 changeset.setId( Long.parseLong(ret.trim()));303 changeset.setId(Integer.parseInt(ret.trim())); 304 304 changeset.setOpen(true); 305 305 } catch(NumberFormatException e){ … … 398 398 399 399 initialize(monitor); 400 final ArrayList<OsmPrimitive> processed = new ArrayList<OsmPrimitive>(); 401 402 CreateOsmChangeVisitor duv = new CreateOsmChangeVisitor(changeset, OsmApi.this); 403 404 monitor.subTask(tr("Preparing...")); 405 for (OsmPrimitive osm : list) { 406 osm.visit(duv); 407 monitor.worked(1); 408 } 409 monitor.indeterminateSubTask(tr("Uploading...")); 410 411 String diff = duv.getDocument(); 412 String diffresult = sendRequest("POST", "changeset/" + changeset.getId() + "/upload", diff,monitor); 413 DiffResultReader.parseDiffResult(diffresult, list, processed, duv.getNewIdMap(), 414 monitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 415 return processed; 400 401 // prepare upload request 402 // 403 OsmChangeBuilder changeBuilder = new OsmChangeBuilder(changeset); 404 monitor.subTask(tr("Preparing upload request...")); 405 changeBuilder.start(); 406 changeBuilder.append(list); 407 changeBuilder.finish(); 408 String diffUploadRequest = changeBuilder.getDocument(); 409 410 // Upload to the server 411 // 412 monitor.indeterminateSubTask(tr("Uploading {0} objects...", list.size())); 413 String diffUploadResponse = sendRequest("POST", "changeset/" + changeset.getId() + "/upload", diffUploadRequest,monitor); 414 415 // Process the response from the server 416 // 417 DiffResultProcessor reader = new DiffResultProcessor(list); 418 reader.parse(diffUploadResponse, monitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false)); 419 return reader.postProcess( 420 getChangeset(), 421 monitor.createSubTaskMonitor(ProgressMonitor.ALL_TICKS, false) 422 ); 416 423 } catch(OsmTransferException e) { 417 424 throw e; 418 } catch( Exception e) {425 } catch(OsmDataParsingException e) { 419 426 throw new OsmTransferException(e); 420 427 } finally {
Note:
See TracChangeset
for help on using the changeset viewer.