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.GeoUrlToBounds;
010import org.openstreetmap.josm.tools.OsmUrlToBounds;
011
012/**
013 * Task allowing to download an OSM url containing coordinates
014 * @since 4996
015 */
016public class DownloadOsmUrlTask extends DownloadOsmTask {
017
018    @Override
019    public Future<?> loadUrl(boolean newLayer, String url, ProgressMonitor progressMonitor) {
020        return download(newLayer, OsmUrlToBounds.parse(url), null);
021    }
022
023    @Override
024    public String[] getPatterns() {
025        return new String[]{
026                "https?://www\\.(osm|openstreetmap)\\.org/\\?lat=.*&lon=.*",
027                "https?://www\\.(osm|openstreetmap)\\.org/(.*)?#map=\\p{Digit}+/.*/.*",
028                GeoUrlToBounds.PATTERN.toString(),
029        };
030    }
031
032    @Override
033    public String getTitle() {
034        return tr("Download OSM URL");
035    }
036}