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.acl.AccessManager; 22 import org.outerj.daisy.httpconnector.RequestHandler; 23 import org.outerj.daisy.httpconnector.HttpUtil; 24 import org.outerj.daisy.xmlutil.LocalSAXParserFactory; 25 import org.outerx.daisy.x10.IdsDocument; 26 import org.apache.xmlbeans.XmlOptions; 27 28 import java.util.Map ; 29 30 public class FilterDocumentTypesHandler implements RequestHandler { 31 public String getPathPattern() { 32 return "/filterDocumentTypes"; 33 } 34 35 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 36 String collectionIdString = request.getParameter("collectionId"); 37 long collectionId = -1; 38 if (collectionIdString != null) { 39 collectionId = HttpUtil.parseId("collection", collectionIdString); 40 } 41 42 XmlOptions xmlOptions = new XmlOptions().setLoadUseXMLReader(LocalSAXParserFactory.newXmlReader()); 43 long[] documentTypeIds = IdsDocument.Factory.parse(request.getInputStream(), xmlOptions).getIds().getIdArray(); 44 AccessManager accessManager = repository.getAccessManager(); 45 long[] filterDocumentTypeIds = accessManager.filterDocumentTypes(documentTypeIds, collectionId); 46 47 IdsDocument idsDocument = IdsDocument.Factory.newInstance(); 48 idsDocument.addNewIds().setIdArray(filterDocumentTypeIds); 49 idsDocument.save(response.getOutputStream()); 50 response.commit(); 51 } 52 } 53 | Popular Tags |