001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.io.session; 003 004import java.io.IOException; 005 006import org.openstreetmap.josm.gui.layer.Layer; 007import org.openstreetmap.josm.gui.progress.ProgressMonitor; 008import org.openstreetmap.josm.io.IllegalDataException; 009import org.openstreetmap.josm.io.session.SessionReader.ImportSupport; 010import org.w3c.dom.Element; 011 012/** 013 * Session layer importer. 014 * @since 4668 015 * @since 10600 (functional interface) 016 */ 017@FunctionalInterface 018public interface SessionLayerImporter { 019 020 /** 021 * Load the layer from xml meta-data. 022 * @param elem XML element 023 * @param support support class providing import utilities 024 * @param progressMonitor progress monitor 025 * @return the resulting layer 026 * @throws IOException if any I/O error occurs 027 * @throws IllegalDataException if invalid data is read 028 */ 029 Layer load(Element elem, ImportSupport support, ProgressMonitor progressMonitor) throws IOException, IllegalDataException; 030} 031