001 package com.thaiopensource.xml.sax;
002
003 import org.xml.sax.Locator;
004 import org.xml.sax.SAXException;
005 import org.xml.sax.Attributes;
006 import org.xml.sax.ContentHandler;
007
008 public class ForkContentHandler implements ContentHandler {
009 private final ContentHandler ch1;
010 private final ContentHandler ch2;
011
012 public ForkContentHandler(ContentHandler ch1, ContentHandler ch2) {
013 this.ch1 = ch1;
014 this.ch2 = ch2;
015 }
016
017 public void setDocumentLocator(Locator locator) {
018 ch1.setDocumentLocator(locator);
019 ch2.setDocumentLocator(locator);
020 }
021
022 public void startDocument() throws SAXException {
023 ch1.startDocument();
024 ch2.startDocument();
025 }
026
027 public void endDocument() throws SAXException {
028 ch1.endDocument();
029 ch2.endDocument();
030 }
031
032 public void startPrefixMapping(String s, String s1) throws SAXException {
033 ch1.startPrefixMapping(s, s1);
034 ch2.startPrefixMapping(s, s1);
035 }
036
037 public void endPrefixMapping(String s) throws SAXException {
038 ch1.endPrefixMapping(s);
039 ch2.endPrefixMapping(s);
040 }
041
042 public void startElement(String s, String s1, String s2, Attributes attributes) throws SAXException {
043 ch1.startElement(s, s1, s2, attributes);
044 ch2.startElement(s, s1, s2, attributes);
045 }
046
047 public void endElement(String s, String s1, String s2) throws SAXException {
048 ch1.endElement(s, s1, s2);
049 ch2.endElement(s, s1, s2);
050 }
051
052 public void characters(char[] chars, int i, int i1) throws SAXException {
053 ch1.characters(chars, i, i1);
054 ch2.characters(chars, i, i1);
055 }
056
057 public void ignorableWhitespace(char[] chars, int i, int i1) throws SAXException {
058 ch1.ignorableWhitespace(chars, i, i1);
059 ch2.ignorableWhitespace(chars, i, i1);
060 }
061
062 public void processingInstruction(String s, String s1) throws SAXException {
063 ch1.processingInstruction(s, s1);
064 ch2.processingInstruction(s, s1);
065 }
066
067 public void skippedEntity(String s) throws SAXException {
068 ch1.skippedEntity(s);
069 ch2.skippedEntity(s);
070 }
071 }