/* (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 javax.xml.transform.TransformerException; import org.geoserver.opensearch.eo.OSEODescription; import org.geoserver.ows.Response; import org.geoserver.platform.Operation; import org.geoserver.platform.ServiceException; /** * Writes out a OSDD with the help of OSEODescriptionTransformer * * @author Andrea Aime - GeoSolutions */ public class DescriptionResponse extends Response { public static final String OS_DESCRIPTION_MIME = "application/opensearchdescription+xml"; public DescriptionResponse() { super(OSEODescription.class, OS_DESCRIPTION_MIME); } @Override public String getMimeType(Object value, Operation operation) throws ServiceException { return OS_DESCRIPTION_MIME; } @Override public void write(Object value, OutputStream output, Operation operation) throws IOException, ServiceException { OSEODescription description = (OSEODescription) value; try { DescriptionTransformer transformer = new DescriptionTransformer(); transformer.setIndentation(2); transformer.transform(description, output); } catch (TransformerException e) { throw new ServiceException(e); } } @Override public String getAttachmentFileName(Object value, Operation operation) { return "description.xml"; } }