001// License: GPL. For details, see LICENSE file.
002package org.openstreetmap.josm.io.session;
003
004import java.io.OutputStream;
005import java.io.OutputStreamWriter;
006import java.io.PrintWriter;
007import java.io.Writer;
008import java.nio.charset.StandardCharsets;
009
010import org.openstreetmap.josm.gui.layer.GpxLayer;
011import org.openstreetmap.josm.io.GpxWriter;
012
013/**
014 * Session exporter for {@link GpxLayer}.
015 * @since 5501
016 */
017public class GpxTracksSessionExporter extends GenericSessionExporter<GpxLayer> {
018
019    /**
020     * Constructs a new {@code GpxTracksSessionExporter}.
021     * @param layer GPX layer to export
022     */
023    public GpxTracksSessionExporter(GpxLayer layer) { // NO_UCD (test only)
024        super(layer, "tracks", "0.1", "gpx");
025    }
026
027    @Override
028    @SuppressWarnings("resource")
029    protected void addDataFile(OutputStream out) {
030        Writer writer = new OutputStreamWriter(out, StandardCharsets.UTF_8);
031        GpxWriter w = new GpxWriter(new PrintWriter(writer));
032        w.write(layer.data);
033        w.flush();
034    }
035}