// License: GPL. For details, see LICENSE file. package org.openstreetmap.josm.io.session; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.io.PrintWriter; import java.io.Writer; import java.nio.charset.StandardCharsets; import org.openstreetmap.josm.gui.layer.OsmDataLayer; import org.openstreetmap.josm.io.OsmWriter; import org.openstreetmap.josm.io.OsmWriterFactory; /** * Session exporter for {@link OsmDataLayer}. * @since 4685 */ public class OsmDataSessionExporter extends GenericSessionExporter<OsmDataLayer> { /** * Constructs a new {@code OsmDataSessionExporter}. * @param layer Data layer to export */ public OsmDataSessionExporter(OsmDataLayer layer) { // NO_UCD (test only) super(layer, "osm-data", "0.1", "osm"); } @Override protected void addDataFile(OutputStream out) { Writer writer = new OutputStreamWriter(out, StandardCharsets.UTF_8); OsmWriter w = OsmWriterFactory.createOsmWriter(new PrintWriter(writer), false, layer.data.getVersion()); layer.data.getReadLock().lock(); try { w.writeLayer(layer); w.flush(); } finally { layer.data.getReadLock().unlock(); } } }