001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.io;
003
004import static org.openstreetmap.josm.tools.I18n.tr;
005
006import java.io.IOException;
007import java.util.Objects;
008
009import org.openstreetmap.josm.data.osm.DataSet;
010import org.openstreetmap.josm.gui.io.importexport.GeoJSONImporter;
011import org.openstreetmap.josm.gui.progress.ProgressMonitor;
012
013/**
014 * GeoJson server reader.
015 * @author Omar Vega Ramos <ovruni@riseup.net>
016 * @since 15424
017 */
018public class GeoJSONServerReader extends OsmServerReader {
019
020    private final String url;
021
022    /**
023     * Constructs a new {@code GeoJSONServerReader}.
024     * @param url geojson URL
025     */
026    public GeoJSONServerReader(String url) {
027        this.url = Objects.requireNonNull(url);
028    }
029
030    @Override
031    public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException {
032        try {
033            progressMonitor.beginTask(tr("Contacting Server..."), 10);
034            return new GeoJSONImporter().parseDataSet(url);
035        } catch (IOException | IllegalDataException e) {
036            throw new OsmTransferException(e);
037        } finally {
038            progressMonitor.finishTask();
039        }
040    }
041}