TransformerHandlerFilter.java

package com.ziesemer.utils.xml.sax;

import javax.xml.transform.Result;
import javax.xml.transform.Transformer;
import javax.xml.transform.sax.TransformerHandler;

import org.xml.sax.SAXException;
import org.xml.sax.ext.DeclHandler;

/**
 * @author Mark A. Ziesemer
 * 	<a href="http://www.ziesemer.com">&lt;www.ziesemer.com&gt;</a>
 */
public class TransformerHandlerFilter
		extends ContentHandlerFilter
		implements TransformerHandler, DeclHandler{
	
	protected final TransformerHandler base;
	
	public TransformerHandlerFilter(final TransformerHandler base){
		super(base);
		this.base = base;
	}
	
	@Override
	public void startDTD(final String name, final String publicId, final String systemId) throws SAXException{
		base.startDTD(name, publicId, systemId);
	}
	
	@Override
	public void endDTD() throws SAXException{
		base.endDTD();
	}
	
	@Override
	public void startEntity(final String name) throws SAXException{
		base.startEntity(name);
	}
	
	@Override
	public void endEntity(final String name) throws SAXException{
		base.endEntity(name);
	}
	
	@Override
	public void startCDATA() throws SAXException{
		base.startCDATA();
	}
	
	@Override
	public void endCDATA() throws SAXException{
		base.endCDATA();
	}
	
	@Override
	public void comment(final char[] ch, final int start, final int length) throws SAXException{
		base.comment(ch, start, length);
	}
	
	@Override
	public void notationDecl(final String name, final String publicId, final String systemId) throws SAXException{
		base.notationDecl(name, publicId, systemId);
	}
	
	@Override
	public void unparsedEntityDecl(final String name, final String publicId, final String systemId, final String notationName)
			throws SAXException{
		base.unparsedEntityDecl(name, publicId, systemId, notationName);
	}
	
	@Override
	public void setResult(final Result result) throws IllegalArgumentException{
		base.setResult(result);
	}
	
	@Override
	public void setSystemId(final String systemID){
		base.setSystemId(systemID);
	}
	
	@Override
	public String getSystemId(){
		return base.getSystemId();
	}
	
	@Override
	public Transformer getTransformer(){
		return base.getTransformer();
	}
	
	@Override
	public void elementDecl(final String name, final String model) throws SAXException{
		if(base instanceof DeclHandler){
			((DeclHandler)base).elementDecl(name, model);
		}
	}
	
	@Override
	public void attributeDecl(final String eName, final String aName, final String type, final String mode, final String value)
			throws SAXException{
		if(base instanceof DeclHandler){
			((DeclHandler)base).attributeDecl(eName, aName, type, mode, value);
		}
	}
	
	@Override
	public void internalEntityDecl(final String name, final String value) throws SAXException{
		if(base instanceof DeclHandler){
			((DeclHandler)base).internalEntityDecl(name, value);
		}
	}
	
	@Override
	public void externalEntityDecl(final String name, final String publicId, final String systemId) throws SAXException{
		if(base instanceof DeclHandler){
			((DeclHandler)base).externalEntityDecl(name, publicId, systemId);
		}
	}
	
}