001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.io.session;
003
004import java.util.Collection;
005import java.util.Collections;
006
007import javax.swing.JCheckBox;
008
009import org.openstreetmap.josm.gui.layer.Layer;
010
011/**
012 * Abstract superclass of all session layer exporters.
013 * @param <T> Type of exported layer
014 * @since 9455
015 */
016public abstract class AbstractSessionExporter<T extends Layer> implements SessionLayerExporter {
017
018    protected final T layer;
019    protected final JCheckBox export = new JCheckBox();
020
021    /**
022     * Constructs a new {@code AbstractSessionExporter}.
023     * @param layer layer to export
024     */
025    protected AbstractSessionExporter(T layer) {
026        this.layer = layer;
027    }
028
029    @Override
030    public Collection<Layer> getDependencies() {
031        return Collections.emptySet();
032    }
033
034    @Override
035    public boolean shallExport() {
036        return export.isSelected();
037    }
038
039    @Override
040    public boolean requiresZip() {
041        return false;
042    }
043}