Author: jukka
Date: Wed Mar 26 09:21:53 2008
New Revision: 641374
URL: http://svn.apache.org/viewvc?rev=641374&view=rev
Log:
TIKA-133: TeeContentHandler constructor should use varargs
Modified:
incubator/tika/trunk/CHANGES.txt
incubator/tika/trunk/src/main/java/org/apache/tika/sax/TeeContentHandler.java
Modified: incubator/tika/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/incubator/tika/trunk/CHANGES.txt?rev=641374&r1=641373&r2=641374&view=diff
==============================================================================
--- incubator/tika/trunk/CHANGES.txt (original)
+++ incubator/tika/trunk/CHANGES.txt Wed Mar 26 09:21:53 2008
@@ -33,6 +33,7 @@
14. TIKA-128 - HTML parser should produce XHTML SAX events (Jukka Zitting)
+15. TIKA-133 - TeeContentHandler constructor should use varargs (Jukka Zitting)
Release 0.1-incubating - 12/27/2007
Modified:
incubator/tika/trunk/src/main/java/org/apache/tika/sax/TeeContentHandler.java
URL:
http://svn.apache.org/viewvc/incubator/tika/trunk/src/main/java/org/apache/tika/sax/TeeContentHandler.java?rev=641374&r1=641373&r2=641374&view=diff
==============================================================================
---
incubator/tika/trunk/src/main/java/org/apache/tika/sax/TeeContentHandler.java
(original)
+++
incubator/tika/trunk/src/main/java/org/apache/tika/sax/TeeContentHandler.java
Wed Mar 26 09:21:53 2008
@@ -20,79 +20,102 @@
import org.xml.sax.ContentHandler;
import org.xml.sax.Locator;
import org.xml.sax.SAXException;
+import org.xml.sax.helpers.DefaultHandler;
/**
- * Content handler decorator that forwards the received SAX events to two
- * underlying content handlers.
+ * Content handler proxy that forwards the received SAX events to zero or
+ * more underlying content handlers.
*/
-public class TeeContentHandler extends ContentHandlerDecorator {
+public class TeeContentHandler extends DefaultHandler {
- private final ContentHandler branch;
+ private final ContentHandler[] handlers;
- public TeeContentHandler(ContentHandler handler, ContentHandler branch) {
- super(handler);
- this.branch = branch;
+ public TeeContentHandler(ContentHandler... handlers) {
+ this.handlers = handlers;
}
+ @Override
public void startPrefixMapping(String prefix, String uri)
throws SAXException {
- super.startPrefixMapping(prefix, uri);
- branch.startPrefixMapping(prefix, uri);
+ for (ContentHandler handler : handlers) {
+ handler.startPrefixMapping(prefix, uri);
+ }
}
+ @Override
public void endPrefixMapping(String prefix) throws SAXException {
- super.endPrefixMapping(prefix);
- branch.endPrefixMapping(prefix);
+ for (ContentHandler handler : handlers) {
+ handler.endPrefixMapping(prefix);
+ }
}
+ @Override
public void processingInstruction(String target, String data)
throws SAXException {
- super.processingInstruction(target, data);
- branch.processingInstruction(target, data);
+ for (ContentHandler handler : handlers) {
+ handler.processingInstruction(target, data);
+ }
}
+ @Override
public void setDocumentLocator(Locator locator) {
- super.setDocumentLocator(locator);
- branch.setDocumentLocator(locator);
+ for (ContentHandler handler : handlers) {
+ handler.setDocumentLocator(locator);
+ }
}
+ @Override
public void startDocument() throws SAXException {
- super.startDocument();
- branch.startDocument();
+ for (ContentHandler handler : handlers) {
+ handler.startDocument();
+ }
}
+ @Override
public void endDocument() throws SAXException {
- super.endDocument();
- branch.endDocument();
+ for (ContentHandler handler : handlers) {
+ handler.endDocument();
+ }
}
- public void startElement(String uri, String localName, String name,
- Attributes atts) throws SAXException {
- super.startElement(uri, localName, name, atts);
- branch.startElement(uri, localName, name, atts);
+ @Override
+ public void startElement(
+ String uri, String localName, String name, Attributes atts)
+ throws SAXException {
+ for (ContentHandler handler : handlers) {
+ handler.startElement(uri, localName, name, atts);
+ }
}
+ @Override
public void endElement(String uri, String localName, String name)
throws SAXException {
- super.endElement(uri, localName, name);
- branch.endElement(uri, localName, name);
+ for (ContentHandler handler : handlers) {
+ handler.endElement(uri, localName, name);
+ }
}
+ @Override
public void characters(char[] ch, int start, int length)
throws SAXException {
- super.characters(ch, start, length);
- branch.characters(ch, start, length);
+ for (ContentHandler handler : handlers) {
+ handler.characters(ch, start, length);
+ }
}
+ @Override
public void ignorableWhitespace(char[] ch, int start, int length)
throws SAXException {
- super.ignorableWhitespace(ch, start, length);
- branch.ignorableWhitespace(ch, start, length);
+ for (ContentHandler handler : handlers) {
+ handler.ignorableWhitespace(ch, start, length);
+ }
}
+ @Override
public void skippedEntity(String name) throws SAXException {
- super.skippedEntity(name);
- branch.skippedEntity(name);
+ for (ContentHandler handler : handlers) {
+ handler.skippedEntity(name);
+ }
}
}