]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org/argeo/server/MarshallerServerSerializer.java
Prepare next development cycle
[lgpl/argeo-commons.git] / org / argeo / 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 public void serialize(Object obj, HttpServletRequest request,
18 HttpServletResponse response) {
19 response.setContentType("text/xml;charset=" + contentTypeCharset);
20 try {
21 serialize(obj, response.getWriter());
22 } catch (IOException e) {
23 throw new ArgeoException("Cannot serialize " + obj, e);
24 }
25 }
26
27 public void serialize(Object obj, Writer writer) {
28 try {
29 StreamResult result = new StreamResult(writer);
30 marshaller.marshal(obj, result);
31 } catch (Exception e) {
32 throw new ArgeoException("Cannot serialize " + obj, e);
33 }
34 }
35
36 @Deprecated
37 public void serialize(Writer writer, Object obj) {
38 serialize(obj, writer);
39 }
40
41 public void setMarshaller(Marshaller marshaller) {
42 this.marshaller = marshaller;
43 }
44
45 public void setContentTypeCharset(String contentTypeCharset) {
46 this.contentTypeCharset = contentTypeCharset;
47 }
48
49 }