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.ValueType; 22 import org.outerj.daisy.repository.schema.RepositorySchema; 23 import org.outerj.daisy.repository.schema.FieldType; 24 import org.outerj.daisy.repository.schema.FieldTypes; 25 import org.outerj.daisy.httpconnector.RequestHandler; 26 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 27 import org.outerx.daisy.x10.FieldTypeDocument; 28 import org.apache.xmlbeans.XmlOptions; 29 30 import java.util.Map ; 31 32 public class FieldTypesHandler implements RequestHandler { 33 public String getPathPattern() { 34 return "/schema/fieldType"; 35 } 36 37 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 38 RepositorySchema repositorySchema = repository.getRepositorySchema(); 39 40 if (request.getMethod().equals(HttpRequest.__POST)) { 41 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 43 FieldTypeDocument fieldTypeDocument = FieldTypeDocument.Factory.parse(request.getInputStream(), xmlOptions); 44 FieldTypeDocument.FieldType fieldTypeXml = fieldTypeDocument.getFieldType(); 45 FieldType fieldType = repositorySchema.createFieldType( 46 fieldTypeXml.getName(), ValueType.fromString(fieldTypeXml.getValueType()), fieldTypeXml.getMultiValue()); 47 fieldType.setAllFromXml(fieldTypeXml); 48 fieldType.save(); 49 50 fieldTypeDocument = fieldType.getXml(); 51 fieldTypeDocument.save(response.getOutputStream()); 52 response.commit(); 53 54 return; 55 } else if (request.getMethod().equals(HttpRequest.__GET)) { 56 FieldTypes fieldTypes = repositorySchema.getAllFieldTypes(true); 58 fieldTypes.getXml().save(response.getOutputStream()); 59 response.commit(); 60 } else { 61 response.sendError(HttpResponse.__405_Method_Not_Allowed); 62 return; 63 } 64 } 65 } 66 | Popular Tags |