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.LocaleHelper; 22 import org.outerj.daisy.repository.query.QueryManager; 23 import org.outerj.daisy.repository.query.SortOrder; 24 import org.outerj.daisy.httpconnector.RequestHandler; 25 import org.outerj.daisy.httpconnector.HttpUtil; 26 import org.outerx.daisy.x10.DistinctSearchResultDocument; 27 28 import java.util.Map ; 29 30 public class DistinctQueryHandler implements RequestHandler { 31 public String getPathPattern() { 32 return "/distinctquery"; 33 } 34 35 public void handleRequest(Map matchMap, HttpRequest request, HttpResponse response, Repository repository) throws Exception { 36 if (request.getMethod().equals(HttpRequest.__GET)) { 37 String query = HttpUtil.getStringParam(request, "q"); 38 String locale = HttpUtil.getStringParam(request, "locale"); 39 String sortOrderParam = HttpUtil.getStringParam(request, "sortOrder"); 40 SortOrder sortOrder = SortOrder.fromString(sortOrderParam); 41 String extraCond = request.getParameter("extraCondition"); 42 43 QueryManager queryManager = repository.getQueryManager(); 44 DistinctSearchResultDocument resultDoc = queryManager.performDistinctQuery(query, extraCond, sortOrder, LocaleHelper.parseLocale(locale)); 45 resultDoc.save(response.getOutputStream()); 46 response.commit(); 47 } else { 48 response.sendError(HttpResponse.__405_Method_Not_Allowed); 49 } 50 } 51 } 52 | Popular Tags |