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);
+        }
     }
 
 }


Reply via email to