1 16 package org.outerj.daisy.publisher.serverimpl.docpreparation; 17 18 import org.xml.sax.SAXException ; 19 import org.xml.sax.ContentHandler ; 20 import org.xml.sax.helpers.AttributesImpl ; 21 import org.outerj.daisy.repository.VariantKey; 22 import org.outerj.daisy.repository.query.EvaluationContext; 23 import org.outerj.daisy.publisher.serverimpl.requestmodel.PublisherVersionMode; 24 25 import java.util.Map ; 26 import java.util.HashMap ; 27 28 33 public class QueryIncludeProcessor extends QueriesProcessor { 34 public QueryIncludeProcessor(ContentHandler consumer, ContentProcessor owner) { 35 super(consumer, owner); 36 } 37 38 protected String getSensitiveClass() { 39 return "query-and-include"; 40 } 41 42 protected void executeQuery(String query) throws SAXException { 43 VariantKey[] result = null; 44 try { 45 EvaluationContext evaluationContext = new EvaluationContext(); 46 evaluationContext.setContextDocument(owner.getDocument(), owner.getVersion()); 47 result = queryManager.performQueryReturnKeys(query, null, getQueryOptions(), locale, evaluationContext); 48 } catch (Exception e) { 49 outputFailedQueryMessage(e, query); 50 } 51 52 if (result != null) { 53 for (int i = 0; i < result.length; i++) { 55 AttributesImpl attrs = new AttributesImpl (); 56 attrs.addAttribute("", "class", "class", "CDATA", "include"); 57 consumer.startElement("", "pre", "pre", attrs); 58 VariantKey key = result[i]; 59 String url = "daisy:" + String.valueOf(key.getDocumentId()) + "@" + String.valueOf(key.getBranchId()) + ":" + String.valueOf(key.getLanguageId()); 60 characters(url.toCharArray(), 0, url.length()); 61 consumer.endElement("", "pre", "pre"); 62 } 63 } 64 } 65 } 66 | Popular Tags |