Changeset 14347 in josm
- Timestamp:
- 2018-10-18T16:55:57+02:00 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/org/openstreetmap/josm/actions/downloadtasks/DownloadOsmTask.java
r14247 r14347 12 12 import java.util.HashSet; 13 13 import java.util.Objects; 14 import java.util.Optional; 14 15 import java.util.Set; 15 16 import java.util.concurrent.Future; … … 251 252 } 252 253 253 protected OsmDataLayer createNewLayer(String layerName) { 254 if (layerName == null || layerName.isEmpty()) { 255 layerName = settings.getLayerName(); 256 } 257 if (layerName == null || layerName.isEmpty()) { 258 layerName = OsmDataLayer.createNewName(); 259 } 260 if (settings.getDownloadPolicy() != null) { 261 dataSet.setDownloadPolicy(settings.getDownloadPolicy()); 262 } 263 if (settings.getUploadPolicy() != null) { 264 dataSet.setUploadPolicy(settings.getUploadPolicy()); 265 } 254 /** 255 * Creates a name for a new layer by utilizing the settings ({@link DownloadParams#getLayerName()}) or 256 * {@link OsmDataLayer#createNewName()} if the former option is {@code null}. 257 * 258 * @return a name for a new layer 259 * @since 14347 260 */ 261 protected String generateLayerName() { 262 return Optional.ofNullable(settings.getLayerName()) 263 .filter(layerName -> !Utils.isStripEmpty(layerName)) 264 .orElse(OsmDataLayer.createNewName()); 265 } 266 267 /** 268 * Can be overridden (e.g. by plugins) if a subclass of {@link OsmDataLayer} is needed. 269 * If you want to change how the name is determined, consider overriding 270 * {@link #generateLayerName()} instead. 271 * 272 * @param dataset the dataset on which the layer is based, must be non-null 273 * @param layerName the name of the new layer, must be either non-blank or non-present 274 * @return a new instance of {@link OsmDataLayer} constructed with the given arguments 275 * @since 14347 276 */ 277 protected OsmDataLayer createNewLayer(final DataSet dataset, final Optional<String> layerName) { 278 if (layerName.filter(Utils::isStripEmpty).isPresent()) { 279 throw new IllegalArgumentException("Blank layer name!"); 280 } 281 return new OsmDataLayer( 282 Objects.requireNonNull(dataset, "dataset parameter"), 283 layerName.orElseGet(this::generateLayerName), 284 null 285 ); 286 } 287 288 /** 289 * Convenience method for {@link #createNewLayer(DataSet, Optional)}, uses the dataset 290 * from field {@link #dataSet} and applies the settings from field {@link #settings}. 291 * 292 * @param layerName an optional layer name, must be non-blank if the [Optional] is present 293 * @return a newly constructed layer 294 * @since 14347 295 */ 296 protected final OsmDataLayer createNewLayer(final Optional<String> layerName) { 297 Optional.ofNullable(settings.getDownloadPolicy()) 298 .ifPresent(dataSet::setDownloadPolicy); 299 Optional.ofNullable(settings.getUploadPolicy()) 300 .ifPresent(dataSet::setUploadPolicy); 266 301 if (dataSet.isLocked() && !settings.isLocked()) { 267 302 dataSet.unlock(); … … 269 304 dataSet.lock(); 270 305 } 271 return new OsmDataLayer(dataSet, layerName, null); 272 } 273 306 return createNewLayer(dataSet, layerName); 307 } 308 309 /** 310 * @param layerName the name of the new layer 311 * @deprecated Use {@link #createNewLayer(DataSet, Optional)} 312 * @return a newly constructed layer 313 */ 314 @Deprecated 315 protected OsmDataLayer createNewLayer(final String layerName) { 316 return createNewLayer(Optional.ofNullable(layerName).filter(it -> !Utils.isStripEmpty(it))); 317 } 318 319 /** 320 * @deprecated Use {@link #createNewLayer(Optional)} 321 * @return a newly constructed layer 322 */ 323 @Deprecated 274 324 protected OsmDataLayer createNewLayer() { 275 return createNewLayer( null);325 return createNewLayer(Optional.empty()); 276 326 } 277 327
Note:
See TracChangeset
for help on using the changeset viewer.