/* (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.config.GeoServer;
import org.geoserver.opensearch.eo.OSEOInfo;
import org.geoserver.opensearch.eo.SearchResults;
import org.geoserver.ows.Response;
import org.geoserver.platform.Operation;
import org.geoserver.platform.ServiceException;
public class AtomSearchResponse extends Response {
public static final String MIME = "application/atom+xml";
private GeoServer gs;
public AtomSearchResponse(GeoServer gs) {
super(SearchResults.class, MIME);
this.gs = gs;
}
@Override
public String getMimeType(Object value, Operation operation) throws ServiceException {
return MIME;
}
@Override
public void write(Object value, OutputStream output, Operation operation)
throws IOException, ServiceException {
SearchResults results = (SearchResults) value;
try {
AtomResultsTransformer transformer = new AtomResultsTransformer(gs.getGlobal(), gs.getService(OSEOInfo.class));
transformer.setIndentation(2);
transformer.transform(results, output);
} catch (TransformerException e) {
throw new ServiceException(e);
}
}
@Override
public String getAttachmentFileName(Object value, Operation operation) {
return "search.xml";
}
}