001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.actions.downloadtasks;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.util.concurrent.Future;
007
008import org.openstreetmap.josm.gui.progress.ProgressMonitor;
009import org.openstreetmap.josm.tools.OsmUrlToBounds;
010
011/**
012 * Specialized task for downloading OSM notes within bounds.
013 * <p>
014 * It handles one URL pattern: openstreetmap website URL with {@code #map?} argument.
015 * @since 8195
016 */
017public class DownloadNotesUrlBoundsTask extends DownloadNotesTask {
018
019    @Override
020    public Future<?> loadUrl(boolean newLayer, String url, ProgressMonitor progressMonitor) {
021        return download(newLayer, OsmUrlToBounds.parse(url), null);
022    }
023
024    @Override
025    public String[] getPatterns() {
026        return new String[]{
027                "https?://www\\.(osm|openstreetmap)\\.org/(.*)?#map=\\p{Digit}+/.*/.*&layers=[A-MO-Z]*N[A-MO-Z]*"};
028    }
029
030    @Override
031    public String getTitle() {
032        return tr("Download OSM Notes within Bounds");
033    }
034}