1 16 package org.outerj.daisy.httpconnector.handlers; 17 18 import org.mortbay.http.HttpRequest; 19 import org.mortbay.http.HttpResponse; 20 import org.outerj.daisy.repository.Repository; 21 import org.outerj.daisy.repository.comment.Comment; 22 import org.outerj.daisy.repository.comment.CommentVisibility; 23 import org.outerj.daisy.httpconnector.RequestHandler; 24 import org.outerj.daisy.httpconnector.HttpUtil; 25 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 26 import org.outerx.daisy.x10.CommentDocument; 27 import org.apache.xmlbeans.XmlOptions; 28 29 import java.util.Map ; 30 31 public class CommentsHandler implements RequestHandler { 32 public String getPathPattern() { 33 return "/document/*/comment"; 34 } 35 36 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 37 long id = HttpUtil.parseId("document", (String )matchMap.get("1")); 38 39 if (request.getMethod().equals(HttpRequest.__GET)) { 40 long branchId = HttpUtil.getBranchId(request, repository); 41 long languageId = HttpUtil.getLanguageId(request, repository); 42 response.setContentType("text/xml"); 43 repository.getCommentManager().getComments(id, branchId, languageId).getXml().save(response.getOutputStream()); 44 response.commit(); 45 return; 46 } else if (request.getMethod().equals(HttpRequest.__POST)) { 47 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 48 CommentDocument commentDocument = CommentDocument.Factory.parse(request.getInputStream(), xmlOptions); 49 CommentDocument.Comment commentXml = commentDocument.getComment(); 50 Comment comment = repository.getCommentManager().addComment(id, commentXml.getBranchId(), commentXml.getLanguageId(), CommentVisibility.fromString(commentXml.getVisibility().toString()), commentXml.getContent()); 51 52 comment.getXml().save(response.getOutputStream()); 53 response.commit(); 54 return; 55 } else { 56 response.sendError(HttpResponse.__405_Method_Not_Allowed); 57 return; 58 } 59 } 60 } 61 | Popular Tags |