001 // License: GPL. For details, see LICENSE file.
002 package org.openstreetmap.josm.io;
003
004 import java.io.File;
005 import java.io.FileOutputStream;
006 import java.io.IOException;
007 import java.io.ObjectOutputStream;
008
009 import org.openstreetmap.josm.gui.layer.Layer;
010 import org.openstreetmap.josm.gui.layer.WMSLayer;
011 import org.openstreetmap.josm.tools.CheckParameterUtil;
012
013 /**
014 * Export a WMS layer to a serialized binary file that can be imported later via {@link WMSLayerImporter}.
015 *
016 * @since 5457
017 */
018 public class WMSLayerExporter extends FileExporter {
019
020 /**
021 * Constructs a new {@code WMSLayerExporter}
022 */
023 public WMSLayerExporter() {
024 super(WMSLayerImporter.FILE_FILTER);
025 }
026
027 @Override
028 public void exportData(File file, Layer layer) throws IOException {
029 CheckParameterUtil.ensureParameterNotNull(file, "file");
030 CheckParameterUtil.ensureParameterNotNull(layer, "layer");
031 if (layer instanceof WMSLayer) {
032 ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file));
033 try {
034 ((WMSLayer)layer).writeExternal(oos);
035 } finally {
036 oos.close();
037 }
038 }
039 }
040
041 @Override
042 public void activeLayerChange(Layer oldLayer, Layer newLayer) {
043 setEnabled(newLayer instanceof WMSLayer);
044 }
045 }