source: josm/trunk/src/org/openstreetmap/josm/gui/io/importexport/ValidatorErrorExporter.java@ 12767

Last change on this file since 12767 was 12671, checked in by Don-vip, 7 years ago

see #15182 - move file importers/exporters from io package to gui.io.importexport package, as they rely heavily on GUI and are mainly used from Open/Save actions

File size: 1.9 KB
Line 
1// License: GPL. For details, see LICENSE file.
2package org.openstreetmap.josm.gui.io.importexport;
3
4import static org.openstreetmap.josm.tools.I18n.tr;
5
6import java.io.File;
7import java.io.FileOutputStream;
8import java.io.IOException;
9import java.io.OutputStream;
10
11import org.openstreetmap.josm.actions.ExtensionFileFilter;
12import org.openstreetmap.josm.gui.MainApplication;
13import org.openstreetmap.josm.gui.layer.Layer;
14import org.openstreetmap.josm.gui.layer.OsmDataLayer;
15import org.openstreetmap.josm.gui.layer.ValidatorLayer;
16import org.openstreetmap.josm.io.ValidatorErrorWriter;
17import org.openstreetmap.josm.tools.Logging;
18
19/**
20 * Exporter to write validator errors to an XML file.
21 * @since 12667
22 */
23public class ValidatorErrorExporter extends FileExporter {
24
25 /** File extension filter for .xml files */
26 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter(
27 "xml", "xml", tr("Validation Error Files") + " (*.xml)");
28
29 /** Create a new validator error exporter with the default .xml file filter */
30 public ValidatorErrorExporter() {
31 super(FILE_FILTER);
32 }
33
34 @Override
35 public boolean acceptFile(File pathname, Layer layer) {
36 if (!(layer instanceof ValidatorLayer))
37 return false;
38 return super.acceptFile(pathname, layer);
39 }
40
41 @Override
42 public void exportData(File file, Layer layer) throws IOException {
43 OsmDataLayer editLayer = MainApplication.getLayerManager().getEditLayer();
44 if (layer instanceof ValidatorLayer && editLayer != null) {
45 Logging.info("exporting validation errors to file: " + file);
46 try (OutputStream os = new FileOutputStream(file);
47 ValidatorErrorWriter writer = new ValidatorErrorWriter(os)) {
48 writer.write(editLayer.validationErrors);
49 }
50 }
51 }
52}
Note: See TracBrowser for help on using the repository browser.