// License: GPL. For details, see LICENSE file.
package org.openstreetmap.josm.plugins.opendata.core.io;

import static org.openstreetmap.josm.tools.I18n.tr;

import java.io.File;
import java.io.InputStream;
import java.net.URL;

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;

public class XmlImporter extends AbstractImporter {

    public static final ExtensionFileFilter XML_FILE_FILTER = new ExtensionFileFilter(
            OdConstants.XML_EXT, OdConstants.XML_EXT, tr("OpenData XML files") + " (*."+OdConstants.XML_EXT+")");

    public XmlImporter() {
        super(XML_FILE_FILTER);
    }

    @Override
    public boolean acceptFile(File pathname) {
        if (super.acceptFile(pathname)) {
            for (URL schemaURL : NeptuneReader.getSchemas()) {
                if (NeptuneReader.acceptsXmlNeptuneFile(pathname, schemaURL)) {
                    return true;
                }
            }
        }
        return false;
    }

    @Override
    protected DataSet parseDataSet(InputStream in, ProgressMonitor instance)
            throws IllegalDataException {
        return NeptuneReader.parseDataSet(in, handler, instance);
    }
}
