001 // License: GPL. For details, see LICENSE file. 002 package org.openstreetmap.josm.io; 003 004 import java.io.File; 005 import java.io.FileWriter; 006 import java.io.IOException; 007 import org.openstreetmap.josm.actions.ExtensionFileFilter; 008 import org.openstreetmap.josm.gui.layer.Layer; 009 import org.openstreetmap.josm.gui.layer.OsmDataLayer; 010 import static org.openstreetmap.josm.tools.I18n.tr; 011 012 public class GeoJSONExporter extends FileExporter { 013 014 public static final ExtensionFileFilter FILE_FILTER = new ExtensionFileFilter( 015 "json,geojson", "json", tr("GeoJSON Files") + " (*.json *.geojson)"); 016 017 public GeoJSONExporter() { 018 super(FILE_FILTER); 019 } 020 021 @Override 022 public void exportData(File file, Layer layer) throws IOException { 023 if (layer instanceof OsmDataLayer) { 024 String json = new GeoJSONWriter((OsmDataLayer) layer).write(); 025 FileWriter out = new FileWriter(file); 026 out.write(json); 027 out.close(); 028 } else { 029 throw new IllegalArgumentException(tr("Layer ''{0}'' not supported", layer.getClass().toString())); 030 } 031 } 032 }