com.icl.saxon.output

## Class ProxyEmitter

- java.lang.Object
- - com.icl.saxon.output.Emitter
  - - com.icl.saxon.output.ProxyEmitter

- All Implemented Interfaces:
    javax.xml.transform.Result
  Direct Known Subclasses:
    CDATAFilter, DTDEmitter, HTMLIndenter, NamespaceEmitter, Stripper, UncommittedEmitter, XMLIndenter

      public abstract class ProxyEmitter
      extends Emitter

  A ProxyEmitter is an Emitter that filters data before passing it to another underlying Emitter.

- - ### Field Summary

    Fields
    Modifier and Type | Field and Description
    --- | ---
    `protected Emitter` | `baseEmitter`
    `protected java.util.Properties` | `outputProperties`

    - ### Fields inherited from class com.icl.saxon.output.Emitter

      `locator, namePool, outputStream, systemId, writer`

    - ### Fields inherited from interface javax.xml.transform.Result

      `PI_DISABLE_OUTPUT_ESCAPING, PI_ENABLE_OUTPUT_ESCAPING`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `ProxyEmitter()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `characters(char[] chars, int start, int len)` Character data
    `void` | `comment(char[] ch, int start, int length)` Output a comment
    `void` | `endDocument()` End of document
    `void` | `endElement(int nameCode)` End of element
    `void` | `processingInstruction(java.lang.String target, java.lang.String data)` Processing Instruction
    `void` | `setDocumentLocator(org.xml.sax.Locator locator)` Set the Document Locator
    `void` | `setEscaping(boolean escaping)` Switch escaping on or off.
    `void` | `setNamePool(NamePool pool)` Set the name pool to be used for all name codes
    `void` | `setOutputProperties(java.util.Properties details)` Set the output details.
    `void` | `setUnderlyingEmitter(Emitter emitter)` Set the underlying emitter.
    `void` | `setUnparsedEntity(java.lang.String name, java.lang.String uri)` Set the URI for an unparsed entity in the document.
    `void` | `setWriter(java.io.Writer writer)` Set the result destination
    `void` | `startDocument()` Start of document
    `void` | `startElement(int nameCode, org.xml.sax.Attributes attributes, int[] namespaces, int nscount)` Start of element

    - ### Methods inherited from class com.icl.saxon.output.Emitter

      `getNamePool, getOutputProperties, getOutputStream, getSystemId, getWriter, makeEmitter, setOutputStream, setSystemId, usesWriter`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Field Detail

    - #### baseEmitter

          protected Emitter baseEmitter

    - #### outputProperties

          protected java.util.Properties outputProperties

  - ### Constructor Detail

    - #### ProxyEmitter

          public ProxyEmitter()

  - ### Method Detail

    - #### setUnderlyingEmitter

          public void setUnderlyingEmitter(Emitter emitter)

      Set the underlying emitter. This call is mandatory before using the Emitter.

    - #### setNamePool

          public void setNamePool(NamePool pool)

      Set the name pool to be used for all name codes
      Overrides:
        `setNamePool` in class `Emitter`

    - #### setWriter

          public void setWriter(java.io.Writer writer)

      Set the result destination
      Overrides:
        `setWriter` in class `Emitter`

    - #### startDocument

          public void startDocument()
                             throws javax.xml.transform.TransformerException

      Start of document
      Specified by:
        `startDocument` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### endDocument

          public void endDocument()
                           throws javax.xml.transform.TransformerException

      End of document
      Specified by:
        `endDocument` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### startElement

          public void startElement(int nameCode,
                          org.xml.sax.Attributes attributes,
                          int[] namespaces,
                          int nscount)
                            throws javax.xml.transform.TransformerException

      Start of element
      Specified by:
        `startElement` in class `Emitter`
        `namespaces` - Array of namespace codes identifying the namespace prefix/uri pairs associated with this element
        `nscount` - Number of significant entries within namespaces array
      Throws:
        `javax.xml.transform.TransformerException`

    - #### endElement

          public void endElement(int nameCode)
                          throws javax.xml.transform.TransformerException

      End of element
      Specified by:
        `endElement` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### characters

          public void characters(char[] chars,
                        int start,
                        int len)
                          throws javax.xml.transform.TransformerException

      Character data
      Specified by:
        `characters` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### processingInstruction

          public void processingInstruction(java.lang.String target,
                                   java.lang.String data)
                                     throws javax.xml.transform.TransformerException

      Processing Instruction
      Specified by:
        `processingInstruction` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### comment

          public void comment(char[] ch,
                     int start,
                     int length)
                       throws javax.xml.transform.TransformerException

      Output a comment
      Specified by:
        `comment` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### setEscaping

          public void setEscaping(boolean escaping)
                           throws javax.xml.transform.TransformerException

      Switch escaping on or off. This is called when the XSLT disable-output-escaping attribute is used to switch escaping on or off. It is not called for other sections of output (e.g. element names) where escaping is inappropriate.
      Overrides:
        `setEscaping` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### setOutputProperties

          public void setOutputProperties(java.util.Properties details)

      Set the output details.
      Overrides:
        `setOutputProperties` in class `Emitter`

    - #### setUnparsedEntity

          public void setUnparsedEntity(java.lang.String name,
                               java.lang.String uri)
                                 throws javax.xml.transform.TransformerException

      Set the URI for an unparsed entity in the document.
      Overrides:
        `setUnparsedEntity` in class `Emitter`
      Throws:
        `javax.xml.transform.TransformerException`

    - #### setDocumentLocator

          public void setDocumentLocator(org.xml.sax.Locator locator)

      Set the Document Locator
      Overrides:
        `setDocumentLocator` in class `Emitter`