| 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.CollectionManager; 22 import org.outerj.daisy.repository.DocumentCollections; 23 import org.outerj.daisy.repository.DocumentCollection; 24 import org.outerj.daisy.httpconnector.RequestHandler; 25 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 26 import org.outerx.daisy.x10.CollectionDocument; 27 import org.apache.xmlbeans.XmlOptions; 28 29 import java.util.Map ; 30 31 public class CollectionsHandler implements RequestHandler { 32 public String getPathPattern() { 33 return "/collection"; 34 } 35 36 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 37 CollectionManager collMan = repository.getCollectionManager(); 38 39 if (request.getMethod().equals(HttpRequest.__GET)) { 40 DocumentCollections docColls = collMan.getCollections(false); 41 docColls.getXml().save(response.getOutputStream()); 42 response.commit(); 43 } else if (request.getMethod().equals(HttpRequest.__POST)) { 44 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 47 CollectionDocument collDoc = CollectionDocument.Factory.parse(request.getInputStream(), xmlOptions); 48 CollectionDocument.Collection collDocXml = collDoc.getCollection(); 49 50 DocumentCollection docColl = collMan.createCollection(collDocXml.getName()); 51 docColl.setName(collDocXml.getName()); 52 docColl.save(); 53 54 docColl.getXml().save(response.getOutputStream()); 55 response.commit(); 56 return; 57 } else { 58 response.sendError(HttpResponse.__405_Method_Not_Allowed); 59 return; 60 } 61 } 62 } 63 | Popular Tags |