001    package com.thaiopensource.xml.sax;
002    
003    import org.xml.sax.ContentHandler;
004    import org.xml.sax.Locator;
005    import org.xml.sax.SAXException;
006    import org.xml.sax.Attributes;
007    
008    public class DelegatingContentHandler implements ContentHandler {
009      private ContentHandler delegate;
010    
011      public DelegatingContentHandler() {
012      }
013    
014      public DelegatingContentHandler(ContentHandler delegate) {
015        this.delegate = delegate;
016      }
017    
018      public ContentHandler getDelegate() {
019        return delegate;
020      }
021    
022      public void setDelegate(ContentHandler delegate) {
023        this.delegate = delegate;
024      }
025    
026      public void setDocumentLocator (Locator locator) {
027        if (delegate != null)
028          delegate.setDocumentLocator(locator);
029      }
030    
031      public void startDocument ()
032          throws SAXException {
033        if (delegate != null)
034          delegate.startDocument();
035      }
036    
037      public void endDocument()
038          throws SAXException {
039        if (delegate != null)
040          delegate.endDocument();
041      }
042    
043      public void startPrefixMapping (String prefix, String uri)
044          throws SAXException {
045        if (delegate != null)
046          delegate.startPrefixMapping(prefix, uri);
047      }
048    
049      public void endPrefixMapping (String prefix)
050          throws SAXException {
051        if (delegate != null)
052          delegate.endPrefixMapping(prefix);
053      }
054    
055      public void startElement (String namespaceURI, String localName,
056                                String qName, Attributes atts)
057          throws SAXException {
058        if (delegate != null)
059          delegate.startElement(namespaceURI, localName, qName, atts);
060      }
061    
062      public void endElement (String namespaceURI, String localName,
063                              String qName)
064          throws SAXException {
065        if (delegate != null)
066          delegate.endElement(namespaceURI, localName, qName);
067      }
068    
069      public void characters (char ch[], int start, int length)
070          throws SAXException {
071        if (delegate != null)
072          delegate.characters(ch, start, length);
073      }
074    
075      public void ignorableWhitespace (char ch[], int start, int length)
076          throws SAXException {
077        if (delegate != null)
078          delegate.ignorableWhitespace(ch, start, length);
079      }
080    
081      public void processingInstruction (String target, String data)
082          throws SAXException {
083        if (delegate != null)
084          delegate.processingInstruction(target, data);
085      }
086    
087      public void skippedEntity (String name)
088          throws SAXException {
089        if (delegate != null)
090          delegate.skippedEntity(name);
091      }
092    }