1 16 package org.outerj.daisy.books.publisher.impl.dataretrieval; 17 18 import org.xml.sax.ContentHandler ; 19 import org.xml.sax.Attributes ; 20 import org.xml.sax.SAXException ; 21 import org.xml.sax.Locator ; 22 import org.outerj.daisy.util.Constants; 23 import org.outerj.daisy.books.publisher.impl.VersionKey; 24 import org.outerj.daisy.books.publisher.impl.dataretrieval.BookDependencies; 25 26 30 public class DependencyCollector implements ContentHandler { 31 private BookDependencies bookDependencies; 32 private ContentHandler consumer; 33 34 public DependencyCollector(BookDependencies bookDependencies, ContentHandler consumer) { 35 this.bookDependencies = bookDependencies; 36 this.consumer = consumer; 37 } 38 39 public void startElement(String namespaceURI, String localName, String qName, Attributes atts) throws SAXException { 40 if (namespaceURI.equals(Constants.DAISY_NAMESPACE) && localName.equals("document")) { 41 long documentId = Long.parseLong(atts.getValue("id")); 42 long branchId = Long.parseLong(atts.getValue("branchId")); 43 long languageId = Long.parseLong(atts.getValue("languageId")); 44 long versionId = Long.parseLong(atts.getValue("dataVersionId")); 45 VersionKey key = new VersionKey(documentId, branchId, languageId, versionId); 46 bookDependencies.addDependency(key); 47 } 48 consumer.startElement(namespaceURI, localName, qName, atts); 49 } 50 51 public void endDocument() throws SAXException { 52 consumer.endDocument(); 53 } 54 55 public void startDocument() throws SAXException { 56 consumer.startDocument(); 57 } 58 59 public void characters(char ch[], int start, int length) throws SAXException { 60 consumer.characters(ch, start, length); 61 } 62 63 public void ignorableWhitespace(char ch[], int start, int length) throws SAXException { 64 consumer.ignorableWhitespace(ch, start, length); 65 } 66 67 public void endPrefixMapping(String prefix) throws SAXException { 68 consumer.endPrefixMapping(prefix); 69 } 70 71 public void skippedEntity(String name) throws SAXException { 72 consumer.skippedEntity(name); 73 } 74 75 public void setDocumentLocator(Locator locator) { 76 consumer.setDocumentLocator(locator); 77 } 78 79 public void processingInstruction(String target, String data) throws SAXException { 80 consumer.processingInstruction(target, data); 81 } 82 83 public void startPrefixMapping(String prefix, String uri) throws SAXException { 84 consumer.startPrefixMapping(prefix, uri); 85 } 86 87 public void endElement(String namespaceURI, String localName, String qName) throws SAXException { 88 consumer.endElement(namespaceURI, localName, qName); 89 } 90 } 91 | Popular Tags |