/* (c) 2017 Open Source Geospatial Foundation - all rights reserved * This code is licensed under the GPL 2.0 license, available at the root * application directory. */ package org.geoserver.opensearch.eo.response; import java.io.IOException; import java.io.OutputStream; import org.apache.commons.io.IOUtils; import org.geoserver.opensearch.eo.MetadataResults; import org.geoserver.ows.Response; import org.geoserver.platform.Operation; import org.geoserver.platform.ServiceException; /** * Writes out metadata in the requested format. Trusts that the steps before (kvp parsing, request processing) have verified the requested mime type * makes sense * * @author Andrea Aime - GeoSolutions */ public class MetadataResponse extends Response { public MetadataResponse() { super(MetadataResults.class); } @Override public String getMimeType(Object value, Operation operation) throws ServiceException { return ((MetadataResults) value).getRequest().getHttpAccept(); } @Override public void write(Object value, OutputStream output, Operation operation) throws IOException, ServiceException { MetadataResults results = (MetadataResults) value; IOUtils.write(results.getMetadata(), output); } @Override public String getAttachmentFileName(Object value, Operation operation) { return ((MetadataResults) value).getRequest().getId().toLowerCase() + "-metadata.xml"; } }