1 16 package org.outerj.daisy.linkextraction; 17 18 import org.xml.sax.ContentHandler ; 19 import org.xml.sax.Attributes ; 20 import org.xml.sax.SAXException ; 21 import org.xml.sax.helpers.DefaultHandler ; 22 import org.outerj.daisy.repository.Part; 23 24 28 public class PropertiesLinkExtractor extends AbstractLinkExtractor { 29 public ContentHandler getContentHandler(Part part, LinkCollector linkCollector, long defaultBranchId, long defaultLanguageId) { 30 return new PropertiesLinkExtractionHandler(linkCollector); 31 } 32 33 public class PropertiesLinkExtractionHandler extends DefaultHandler { 34 private final LinkCollector linkCollector; 35 private StringBuffer buffer; 36 private int nestingLevel = 0; 37 38 public PropertiesLinkExtractionHandler(LinkCollector linkCollector) { 39 this.linkCollector = linkCollector; 40 } 41 42 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException { 43 nestingLevel++; 44 if (nestingLevel == 2 && localName.equals("entry") && uri.equals("")) { 45 buffer = new StringBuffer (); 46 } 47 } 48 49 public void characters(char ch[], int start, int length) throws SAXException { 50 if (buffer != null) 51 buffer.append(ch, start, length); 52 } 53 54 public void endElement(String uri, String localName, String qName) throws SAXException { 55 if (nestingLevel == 2 && buffer != null) { 56 if (buffer.length() > 0) 57 linkCollector.addLink(LinkType.OTHER, buffer.toString().trim()); 58 buffer = null; 59 } 60 nestingLevel--; 61 } 62 } 63 } 64 | Popular Tags |