]> git.argeo.org Git - lgpl/argeo-commons.git/blob - server/MarshallerServerSerializer.java
Prepare next development cycle
[lgpl/argeo-commons.git] / server / MarshallerServerSerializer.java
1 package org.argeo.server;
2
3 import java.io.IOException;
4 import java.io.Writer;
5
6 import javax.servlet.http.HttpServletRequest;
7 import javax.servlet.http.HttpServletResponse;
8 import javax.xml.transform.stream.StreamResult;
9
10 import org.argeo.ArgeoException;
11 import org.springframework.oxm.Marshaller;
12
13 public class MarshallerServerSerializer implements ServerSerializer, Serializer {
14 private Marshaller marshaller;
15 private String contentTypeCharset = "UTF-8";
16
17 @SuppressWarnings("restriction")
18 public void serialize(Object obj, HttpServletRequest request,
19 HttpServletResponse response) {
20 response.setContentType("text/xml;charset=" + contentTypeCharset);
21 try {
22 serialize(obj, response.getWriter());
23 } catch (IOException e) {
24 throw new ArgeoException("Cannot serialize " + obj, e);
25 }
26 }
27
28 public void serialize(Object obj, Writer writer) {
29 try {
30 StreamResult result = new StreamResult(writer);
31 marshaller.marshal(obj, result);
32 } catch (Exception e) {
33 throw new ArgeoException("Cannot serialize " + obj, e);
34 }
35 }
36
37 @Deprecated
38 public void serialize(Writer writer, Object obj) {
39 serialize(obj, writer);
40 }
41
42 public void setMarshaller(Marshaller marshaller) {
43 this.marshaller = marshaller;
44 }
45
46 public void setContentTypeCharset(String contentTypeCharset) {
47 this.contentTypeCharset = contentTypeCharset;
48 }
49
50 }