// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.plugins.opendata.core.io.archive; import static org.openstreetmap.josm.tools.I18n.tr; import java.io.File; import java.io.IOException; import java.io.InputStream; import javax.xml.stream.FactoryConfigurationError; import javax.xml.stream.XMLStreamException; import org.openstreetmap.josm.actions.ExtensionFileFilter; import org.openstreetmap.josm.data.osm.DataSet; import org.openstreetmap.josm.gui.progress.ProgressMonitor; import org.openstreetmap.josm.io.IllegalDataException; import org.openstreetmap.josm.plugins.opendata.core.OdConstants; import org.openstreetmap.josm.plugins.opendata.core.io.AbstractImporter; public class ZipImporter extends AbstractImporter { public static final ExtensionFileFilter ZIP_FILE_FILTER = new ExtensionFileFilter( OdConstants.ZIP_EXT, OdConstants.ZIP_EXT, tr("Zip Files") + " (*."+OdConstants.ZIP_EXT+")"); public ZipImporter() { super(ZIP_FILE_FILTER); } @Override protected DataSet parseDataSet(InputStream in, ProgressMonitor instance) throws IllegalDataException { try { return ZipReader.parseDataSet(in, handler, instance, true); } catch (IOException | XMLStreamException | FactoryConfigurationError e) { throw new IllegalDataException(e); } } @Override public boolean acceptFile(File pathname) { return super.acceptFile(pathname) && !pathname.getName().endsWith(".osm.zip"); } }