package com.revolsys.ui.web.rest.converter;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import org.springframework.http.HttpOutputMessage;
import org.springframework.http.MediaType;
import org.springframework.http.converter.HttpMessageNotWritableException;
import com.revolsys.ui.html.view.Element;
import com.revolsys.ui.web.utils.HttpServletUtils;
public class ElementHttpMessageConverter extends AbstractHttpMessageConverter<Element> {
private static final Collection<MediaType> WRITE_MEDIA_TYPES = Arrays
.asList(MediaType.APPLICATION_XHTML_XML, MediaType.TEXT_HTML);
public ElementHttpMessageConverter() {
super(Element.class, Collections.emptySet(), WRITE_MEDIA_TYPES);
}
@Override
public void write(final Element element, final MediaType mediaType,
final HttpOutputMessage outputMessage) throws IOException, HttpMessageNotWritableException {
if (!HttpServletUtils.getResponse().isCommitted()) {
if (element != null) {
HttpServletUtils.setContentTypeWithCharset(outputMessage, mediaType);
final OutputStream out = outputMessage.getBody();
if (MediaType.TEXT_HTML.equals(mediaType)
|| MediaType.APPLICATION_XHTML_XML.equals(mediaType)) {
element.serialize(out);
}
}
}
}
}