Ignore:
Timestamp:
2020-01-27T02:35:43+01:00 (6 years ago)
Author:
Don-vip
Message:

see #18613 - rework download tasks / URL patterns

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/org/openstreetmap/josm/io/GeoJSONServerReader.java

    r15452 r15784  
    55
    66import java.io.IOException;
    7 import java.util.Objects;
     7import java.io.InputStream;
    88
    99import org.openstreetmap.josm.data.osm.DataSet;
    10 import org.openstreetmap.josm.gui.io.importexport.GeoJSONImporter;
    1110import org.openstreetmap.josm.gui.progress.ProgressMonitor;
     11import org.xml.sax.SAXException;
    1212
    1313/**
     
    1616 * @since 15424
    1717 */
    18 public class GeoJSONServerReader extends OsmServerReader {
    19 
    20     private final String url;
     18public class GeoJSONServerReader extends OsmServerLocationReader {
    2119
    2220    /**
     
    2523     */
    2624    public GeoJSONServerReader(String url) {
    27         this.url = Objects.requireNonNull(url);
     25        super(url);
     26    }
     27
     28    protected class GeoJsonParser extends Parser<DataSet> {
     29        protected GeoJsonParser(ProgressMonitor progressMonitor, Compression compression) {
     30            super(progressMonitor, compression);
     31        }
     32
     33        @Override
     34        public DataSet parse() throws OsmTransferException, IllegalDataException, IOException, SAXException {
     35            in = getInputStreamRaw(url, progressMonitor.createSubTaskMonitor(9, false));
     36            if (in == null)
     37                return null;
     38            progressMonitor.subTask(tr("Downloading OSM data..."));
     39            InputStream uncompressedInputStream = compression.getUncompressedInputStream(in); // NOPMD
     40            ProgressMonitor subTaskMonitor = progressMonitor.createSubTaskMonitor(1, false);
     41            return GeoJSONReader.parseDataSet(uncompressedInputStream, subTaskMonitor);
     42        }
    2843    }
    2944
    3045    @Override
    3146    public DataSet parseOsm(ProgressMonitor progressMonitor) throws OsmTransferException {
    32         try {
    33             progressMonitor.beginTask(tr("Contacting Server..."), 10);
    34             return new GeoJSONImporter().parseDataSet(url);
    35         } catch (IOException | IllegalDataException e) {
    36             throw new OsmTransferException(e);
    37         } finally {
    38             progressMonitor.finishTask();
    39         }
     47        return parseOsm(progressMonitor, Compression.NONE);
     48    }
     49
     50    @Override
     51    public DataSet parseOsm(ProgressMonitor progressMonitor, Compression compression) throws OsmTransferException {
     52        return doParse(new GeoJsonParser(progressMonitor, compression), progressMonitor);
    4053    }
    4154}
Note: See TracChangeset for help on using the changeset viewer.