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 }