/* (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.rest.catalog; import com.thoughtworks.xstream.XStream; import org.geoserver.config.util.SecureXStream; import org.geoserver.rest.converters.BaseMessageConverter; import org.springframework.http.HttpOutputMessage; import org.springframework.http.MediaType; import org.springframework.http.converter.HttpMessageNotWritableException; import org.springframework.stereotype.Component; import java.io.IOException; /** * Write a named {@link StringsList} to XML. */ @Component public class StringsListXMLConverter extends BaseMessageConverter<StringsList> { public StringsListXMLConverter() { super(MediaType.TEXT_XML, MediaType.APPLICATION_XML); } @Override protected boolean supports(Class<?> clazz) { return StringsList.class.isAssignableFrom(clazz); } // // reading // @Override protected boolean canRead(MediaType mediaType) { return false; } // // writing // @Override public void writeInternal(StringsList stringsList, HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException { XStream xstream = new SecureXStream(); xstream.alias(stringsList.getAlias(), String.class); xstream.toXML(stringsList.getValues(), outputMessage.getBody()); } }