source: josm/trunk/src/org/openstreetmap/josm/io/ValidatorErrorExporter.java@ 12667

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

see #14704 - allow to export validator errors ("Save as" in validator layer contextual menu). Same format than Osmose

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