source: josm/trunk/src/org/openstreetmap/josm/io/session/GpxTracksSessionExporter.java@ 18133

Last change on this file since 18133 was 18133, checked in by Don-vip, 4 years ago

fix #21223 - fix NPE

  • Property svn:eol-style set to native
File size: 1.2 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.io.session;
3
4import java.io.OutputStream;
5import java.io.OutputStreamWriter;
6import java.io.PrintWriter;
7import java.io.Writer;
8import java.nio.charset.StandardCharsets;
9
10import org.openstreetmap.josm.gui.layer.GpxLayer;
11import org.openstreetmap.josm.io.GpxWriter;
12
13/**
14 * Session exporter for {@link GpxLayer}.
15 * @since 5501
16 */
17public class GpxTracksSessionExporter extends GenericSessionExporter<GpxLayer> {
18
19 /**
20 * Constructs a new {@code GpxTracksSessionExporter}.
21 * @param layer GPX layer to export
22 */
23 public GpxTracksSessionExporter(GpxLayer layer) { // NO_UCD (test only)
24 this(layer, "tracks");
25 }
26
27 protected GpxTracksSessionExporter(GpxLayer layer, String type) {
28 super(layer, type, "0.1", "gpx");
29 if (layer.data == null) {
30 throw new IllegalArgumentException("GPX layer without data: " + layer);
31 }
32 }
33
34 @Override
35 @SuppressWarnings("resource")
36 protected void addDataFile(OutputStream out) {
37 Writer writer = new OutputStreamWriter(out, StandardCharsets.UTF_8);
38 GpxWriter w = new GpxWriter(new PrintWriter(writer));
39 w.write(layer.data);
40 w.flush();
41 }
42}
Note: See TracBrowser for help on using the repository browser.