1 package org
.argeo
.server
.jcr
.mvc
;
3 import java
.io
.OutputStream
;
7 import javax
.servlet
.http
.HttpServletRequest
;
8 import javax
.servlet
.http
.HttpServletResponse
;
10 import org
.argeo
.ArgeoException
;
11 import org
.argeo
.server
.ServerSerializer
;
12 import org
.xml
.sax
.helpers
.DefaultHandler
;
14 public class JcrXmlServerSerializer
implements ServerSerializer
{
15 private String contentTypeCharset
= "UTF-8";
17 public void serialize(Object obj
, HttpServletRequest request
,
18 HttpServletResponse response
) {
19 if (!(obj
instanceof Node
))
20 throw new ArgeoException("Only " + Node
.class + " is supported");
22 String noRecurseStr
= request
.getParameter("noRecurse");
23 boolean noRecurse
= noRecurseStr
!= null && noRecurseStr
.equals("true");
25 Node node
= (Node
) obj
;
26 response
.setContentType("text/xml;charset=" + contentTypeCharset
);
28 node
.getSession().exportDocumentView(node
.getPath(),
29 response
.getOutputStream(), true, noRecurse
);
30 } catch (Exception e
) {
31 throw new ArgeoException("Cannot serialize " + node
, e
);
36 public void setContentTypeCharset(String contentTypeCharset
) {
37 this.contentTypeCharset
= contentTypeCharset
;