1 16 package org.outerj.daisy.publisher.serverimpl.requestmodel; 17 18 import org.xml.sax.ContentHandler ; 19 import org.outerj.daisy.repository.query.QueryManager; 20 import org.outerj.daisy.repository.query.EvaluationContext; 21 import org.outerj.daisy.publisher.serverimpl.StripDocumentHandler; 22 import org.outerj.daisy.publisher.serverimpl.DummyLexicalHandler; 23 import org.outerx.daisy.x10.SearchResultDocument; 24 25 import java.util.Locale ; 26 import java.util.Map ; 27 import java.util.HashMap ; 28 29 public class PerformQueryRequest implements Request { 30 private final String query; 31 private final String extraConditions; 32 33 public PerformQueryRequest(String query, String extraConditions) { 34 this.query = query; 35 this.extraConditions = extraConditions; 36 } 37 38 public void process(ContentHandler contentHandler, PublisherContext publisherContext) throws Exception { 39 QueryManager queryManager = publisherContext.getRepository().getQueryManager(); 40 Locale locale = publisherContext.getLocale(); 41 42 EvaluationContext evaluationContext = new EvaluationContext(); 43 if (publisherContext.hasDocument()) 44 evaluationContext.setContextDocument(publisherContext.getDocument(), publisherContext.getVersion()); 45 46 Map queryOptions = null; 47 if (publisherContext.getVersionMode() == PublisherVersionMode.LAST) { 48 queryOptions = new HashMap (3); 49 queryOptions.put("search_last_version", "true"); 50 } 51 52 SearchResultDocument searchResultDocument = 53 queryManager.performQuery(query, extraConditions, queryOptions, locale, evaluationContext); 54 55 searchResultDocument.save(new StripDocumentHandler(contentHandler), new DummyLexicalHandler()); 56 } 57 } 58 | Popular Tags |