net.sf.saxon
Class TransformerHandlerImpl

java.lang.Object
  extended by net.sf.saxon.event.ReceivingContentHandler
      extended by net.sf.saxon.TransformerHandlerImpl
All Implemented Interfaces:
javax.xml.transform.sax.TransformerHandler, org.xml.sax.ContentHandler, org.xml.sax.DTDHandler, org.xml.sax.ext.LexicalHandler

public class TransformerHandlerImpl
extends ReceivingContentHandler
implements javax.xml.transform.sax.TransformerHandler

TransformerHandlerImpl implements the javax.xml.transform.sax.TransformerHandler interface. It acts as a ContentHandler and LexicalHandler which receives a stream of SAX events representing an input document, and performs a transformation treating this SAX stream as the source document of the transformation.

Author:
Michael H. Kay

Constructor Summary
protected TransformerHandlerImpl(Controller controller)
          Create a TransformerHandlerImpl and initialise variables.
 
Method Summary
 void endDocument()
          Override the behaviour of endDocument() in ReceivingContentHandler, so that it fires off the transformation of the constructed document
 javax.xml.transform.Result getResult()
          Get the output destination of the transformation
 java.lang.String getSystemId()
          Get the systemId of the document.
 javax.xml.transform.Transformer getTransformer()
          Get the Transformer used for this transformation
 void setResult(javax.xml.transform.Result result)
          Set the output destination of the transformation
 void setSystemId(java.lang.String url)
          Set the SystemId of the document.
 void startDocument()
          Start of a new document.
 
Methods inherited from class net.sf.saxon.event.ReceivingContentHandler
characters, comment, endCDATA, endDTD, endElement, endEntity, endPrefixMapping, getConfiguration, getPipelineConfiguration, ignorableWhitespace, isIgnoringIgnorableWhitespace, notationDecl, processingInstruction, reset, setDocumentLocator, setIgnoreIgnorableWhitespace, setPipelineConfiguration, setReceiver, skippedEntity, startCDATA, startDTD, startElement, startEntity, startPrefixMapping, unparsedEntityDecl
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.xml.sax.ContentHandler
characters, endElement, endPrefixMapping, ignorableWhitespace, processingInstruction, setDocumentLocator, skippedEntity, startElement, startPrefixMapping
 
Methods inherited from interface org.xml.sax.ext.LexicalHandler
comment, endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity
 
Methods inherited from interface org.xml.sax.DTDHandler
notationDecl, unparsedEntityDecl
 

Constructor Detail

TransformerHandlerImpl

protected TransformerHandlerImpl(Controller controller)
Create a TransformerHandlerImpl and initialise variables. The constructor is protected, because the Filter should be created using newTransformerHandler() in the SAXTransformerFactory class

Parameters:
controller - the Controller to be used
Method Detail

startDocument

public void startDocument()
                   throws org.xml.sax.SAXException
Start of a new document. The TransformerHandler is not serially reusable, so this method must only be called once.

Specified by:
startDocument in interface org.xml.sax.ContentHandler
Overrides:
startDocument in class ReceivingContentHandler
Throws:
org.xml.sax.SAXException - only if an overriding subclass throws this exception
java.lang.UnsupportedOperationException - if an attempt is made to reuse the TransformerHandler by calling startDocument() more than once.

getTransformer

public javax.xml.transform.Transformer getTransformer()
Get the Transformer used for this transformation

Specified by:
getTransformer in interface javax.xml.transform.sax.TransformerHandler

setSystemId

public void setSystemId(java.lang.String url)
Set the SystemId of the document. Note that in reporting location information, Saxon gives priority to the system Id reported by the SAX Parser in the Locator passed to the ReceivingContentHandler.setDocumentLocator(org.xml.sax.Locator) method. The SystemId passed to this method is used as the base URI for resolving relative references.

Specified by:
setSystemId in interface javax.xml.transform.sax.TransformerHandler
Parameters:
url - the systemId of the source document

getSystemId

public java.lang.String getSystemId()
Get the systemId of the document. This will be the systemId obtained from the Locator passed to the ReceivingContentHandler.setDocumentLocator(org.xml.sax.Locator) method if available, otherwise the SystemId passed to the setSystemId(String) method.

Specified by:
getSystemId in interface javax.xml.transform.sax.TransformerHandler

setResult

public void setResult(javax.xml.transform.Result result)
Set the output destination of the transformation

Specified by:
setResult in interface javax.xml.transform.sax.TransformerHandler

getResult

public javax.xml.transform.Result getResult()
Get the output destination of the transformation

Returns:
the output destination

endDocument

public void endDocument()
                 throws org.xml.sax.SAXException
Override the behaviour of endDocument() in ReceivingContentHandler, so that it fires off the transformation of the constructed document

Specified by:
endDocument in interface org.xml.sax.ContentHandler
Overrides:
endDocument in class ReceivingContentHandler
Throws:
org.xml.sax.SAXException


Copyright (c) Saxonica Limited. All rights reserved.