Changeset 7092 in josm for trunk/src/org/openstreetmap/josm/io
- Timestamp:
- 2014-05-10T02:51:06+02:00 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/io/OsmServerBackreferenceReader.java
r7050 r7092 22 22 * OsmServerBackreferenceReader fetches the primitives from the OSM server which 23 23 * refer to a specific primitive. For a {@link org.openstreetmap.josm.data.osm.Node Node}, ways and relations are retrieved 24 * which refer to the node. For a {@link Way} or a {@link Relation}, only relations are 25 * read. 24 * which refer to the node. For a {@link Way} or a {@link Relation}, only relations are read. 26 25 * 27 26 * OsmServerBackreferenceReader uses the API calls <code>[node|way|relation]/#id/relations</code> … … 32 31 * to complete incomplete primitives. 33 32 * 34 * 33 * @since 1806 35 34 */ 36 35 public class OsmServerBackreferenceReader extends OsmServerReader { … … 123 122 } 124 123 125 /** 126 * Reads referring ways from the API server and replies them in a {@link DataSet} 127 * 128 * @return the data set 129 * @throws OsmTransferException 130 */ 131 protected DataSet getReferringWays(ProgressMonitor progressMonitor) throws OsmTransferException { 124 private DataSet getReferringPrimitives(ProgressMonitor progressMonitor, String type, String message) throws OsmTransferException { 132 125 progressMonitor.beginTask(null, 2); 133 126 try { 134 progressMonitor. indeterminateSubTask(tr("Downloading fromOSM Server..."));127 progressMonitor.subTask(tr("Contacting OSM Server...")); 135 128 StringBuilder sb = new StringBuilder(); 136 sb.append(primitiveType.getAPIName()) 137 .append("/").append(id).append("/ways"); 129 sb.append(primitiveType.getAPIName()).append("/").append(id).append(type); 138 130 139 131 try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) { 140 132 if (in == null) 141 133 return null; 142 progressMonitor.subTask( tr("Downloading referring ways ..."));134 progressMonitor.subTask(message); 143 135 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, true)); 144 136 } … … 156 148 157 149 /** 150 * Reads referring ways from the API server and replies them in a {@link DataSet} 151 * 152 * @return the data set 153 * @throws OsmTransferException 154 */ 155 protected DataSet getReferringWays(ProgressMonitor progressMonitor) throws OsmTransferException { 156 return getReferringPrimitives(progressMonitor, "/ways", tr("Downloading referring ways ...")); 157 } 158 159 /** 158 160 * Reads referring relations from the API server and replies them in a {@link DataSet} 159 161 * … … 163 165 */ 164 166 protected DataSet getReferringRelations(ProgressMonitor progressMonitor) throws OsmTransferException { 165 progressMonitor.beginTask(null, 2); 166 try { 167 progressMonitor.subTask(tr("Contacting OSM Server...")); 168 StringBuilder sb = new StringBuilder(); 169 sb.append(primitiveType.getAPIName()) 170 .append("/").append(id).append("/relations"); 171 172 try (InputStream in = getInputStream(sb.toString(), progressMonitor.createSubTaskMonitor(1, true))) { 173 if (in == null) 174 return null; 175 progressMonitor.subTask(tr("Downloading referring relations ...")); 176 return OsmReader.parseDataSet(in, progressMonitor.createSubTaskMonitor(1, true)); 177 } 178 } catch(OsmTransferException e) { 179 throw e; 180 } catch (Exception e) { 181 if (cancel) 182 return null; 183 throw new OsmTransferException(e); 184 } finally { 185 progressMonitor.finishTask(); 186 activeConnection = null; 187 } 167 return getReferringPrimitives(progressMonitor, "/relations", tr("Downloading referring relations ...")); 188 168 } 189 169
Note:
See TracChangeset
for help on using the changeset viewer.