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.schema.RepositorySchema; 22 import org.outerj.daisy.repository.schema.DocumentType; 23 import org.outerj.daisy.repository.schema.DocumentTypes; 24 import org.outerj.daisy.httpconnector.RequestHandler; 25 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 26 import org.outerx.daisy.x10.DocumentTypeDocument; 27 import org.apache.xmlbeans.XmlOptions; 28 29 import java.util.Map ; 30 31 public class DocumentTypesHandler implements RequestHandler { 32 public String getPathPattern() { 33 return "/schema/documentType"; 34 } 35 36 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 37 RepositorySchema repositorySchema = repository.getRepositorySchema(); 38 39 if (request.getMethod().equals(HttpRequest.__POST)) { 40 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 42 DocumentTypeDocument documentTypeDocument = DocumentTypeDocument.Factory.parse(request.getInputStream(), xmlOptions); 43 DocumentTypeDocument.DocumentType documentTypeXml = documentTypeDocument.getDocumentType(); 44 DocumentType documentType = repositorySchema.createDocumentType(documentTypeXml.getName()); 45 documentType.setAllFromXml(documentTypeXml); 46 documentType.save(); 47 48 documentTypeDocument = documentType.getXml(); 49 documentTypeDocument.save(response.getOutputStream()); 50 response.commit(); 51 52 return; 53 } else if (request.getMethod().equals(HttpRequest.__GET)) { 54 DocumentTypes documentTypes = repositorySchema.getAllDocumentTypes(true); 56 documentTypes.getXml().save(response.getOutputStream()); 57 response.commit(); 58 } else { 59 response.sendError(HttpResponse.__405_Method_Not_Allowed); 60 return; 61 } 62 } 63 } 64 | Popular Tags |