001// License: GPL. For details, see LICENSE file. 002package org.openstreetmap.josm.io; 003 004import java.io.File; 005import java.io.FileOutputStream; 006import java.io.IOException; 007import java.io.ObjectOutputStream; 008 009import org.openstreetmap.josm.gui.layer.Layer; 010import org.openstreetmap.josm.gui.layer.WMSLayer; 011import 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 */ 018public 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 try (ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(file))) { 033 ((WMSLayer)layer).writeExternal(oos); 034 } 035 } 036 } 037 038 @Override 039 public void activeLayerChange(Layer oldLayer, Layer newLayer) { 040 setEnabled(newLayer instanceof WMSLayer); 041 } 042}