Ignore:
Timestamp:
2018-06-13T23:37:59+02:00 (6 years ago)
Author:
Don-vip
Message:

fix #11000 - add layer_locked, download_policy, upload_policy to download handlers (import, load_data, load_object and load_and_zoom). Bump remote control version to 1.8

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/remotecontrol/handler/RequestHandler.java

    r13927 r13929  
    1414import java.util.Map;
    1515import java.util.Set;
     16import java.util.function.Function;
     17import java.util.function.Supplier;
    1618import java.util.regex.Pattern;
    1719
     
    2123import org.openstreetmap.josm.Main;
    2224import org.openstreetmap.josm.actions.downloadtasks.DownloadParams;
     25import org.openstreetmap.josm.data.osm.DownloadPolicy;
     26import org.openstreetmap.josm.data.osm.UploadPolicy;
    2327import org.openstreetmap.josm.io.remotecontrol.PermissionPrefWithDefault;
    2428import org.openstreetmap.josm.spi.preferences.Config;
     
    299303    }
    300304
     305    private <T> T get(String key, Function<String, T> parser, Supplier<T> defaultSupplier) {
     306        String val = args.get(key);
     307        return val != null && !val.isEmpty() ? parser.apply(val) : defaultSupplier.get();
     308    }
     309
    301310    private boolean isLoadInNewLayer() {
    302         return args.get("new_layer") != null && !args.get("new_layer").isEmpty()
    303                 ? Boolean.parseBoolean(args.get("new_layer"))
    304                 : Config.getPref().getBoolean(loadInNewLayerKey, loadInNewLayerDefault);
     311        return get("new_layer", Boolean::parseBoolean, () -> Config.getPref().getBoolean(loadInNewLayerKey, loadInNewLayerDefault));
     312    }
     313
     314    private boolean is(String key) {
     315        return get(key, Boolean::parseBoolean, () -> false);
    305316    }
    306317
     
    308319        return new DownloadParams()
    309320                .withNewLayer(isLoadInNewLayer())
    310                 .withLayerName(args.get("layer_name"));
     321                .withLayerName(args.get("layer_name"))
     322                .withLocked(is("layer_locked"))
     323                .withDownloadPolicy(get("download_policy", DownloadPolicy::of, () -> DownloadPolicy.NORMAL))
     324                .withUploadPolicy(get("upload_policy", UploadPolicy::of, () -> UploadPolicy.NORMAL));
     325    }
     326
     327    protected void validateDownloadParams() throws RequestHandlerBadRequestException {
     328        try {
     329            getDownloadParams();
     330        } catch (IllegalArgumentException e) {
     331            throw new RequestHandlerBadRequestException(e);
     332        }
    311333    }
    312334
Note: See TracChangeset for help on using the changeset viewer.