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}