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}