Package net.sf.saxon.jaxp

## Class TransformerHandlerImpl

- java.lang.Object
- - net.sf.saxon.event.ReceivingContentHandler
  - - net.sf.saxon.jaxp.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.

  The `TransformerHandler` is written on the assumption that it is receiving events from a parser configured with `http://xml.org/sax/features/namespaces` set to true and `http://xml.org/sax/features/namespace-prefixes` set to false. The `TransformerHandler` has no control over the feature settings of the sender of the events (which is not even necessarily an `XMLReader`), and if the events do not follow this pattern then the class may fail in unpredictable ways.

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from class net.sf.saxon.event.ReceivingContentHandler

      `ReceivingContentHandler.LocalLocator`

  - ### Constructor Summary

    Constructors
    Modifier | Constructor | Description
    --- | --- | ---
    `protected` | `TransformerHandlerImpl​(TransformerImpl transformer)` | Create a TransformerHandlerImpl and initialise variables.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `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 `Result` associated with this `TransformerHandler` to be used for 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, getReceiver, 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.DTDHandler

      `notationDecl, unparsedEntityDecl`

    - ### Methods inherited from interface org.xml.sax.ext.LexicalHandler

      `comment, endCDATA, endDTD, endEntity, startCDATA, startDTD, startEntity`

- - ### Constructor Detail

    - #### TransformerHandlerImpl

          protected TransformerHandlerImpl​(TransformerImpl transformer)

      Create a TransformerHandlerImpl and initialise variables. The constructor is protected, because the Filter should be created using newTransformerHandler() in the SAXTransformerFactory class
      Parameters:
        `transformer` - 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 `Result` associated with this `TransformerHandler` to be used for the transformation.
      Specified by:
        `setResult` in interface `javax.xml.transform.sax.TransformerHandler`
      Parameters:
        `result` - A `Result` instance, should not be `null`.
      Throws:
        `java.lang.IllegalArgumentException` - if result is invalid for some reason.

    - #### 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`