## com.icl.saxon.output
Class ProxyEmitter

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

All Implemented Interfaces:
  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
`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
`ProxyEmitter()`

Method Summary
`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 TransformerException

  Start of document

  Specified by:
    `startDocument` in class `Emitter`
  Throws:
    `TransformerException`

### endDocument

    public void endDocument()
                     throws TransformerException

  End of document

  Specified by:
    `endDocument` in class `Emitter`
  Throws:
    `TransformerException`

### startElement

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

  Start of element

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

### endElement

    public void endElement(int nameCode)
                    throws TransformerException

  End of element

  Specified by:
    `endElement` in class `Emitter`
  Throws:
    `TransformerException`

### characters

    public void characters(char[] chars,
                           int start,
                           int len)
                    throws TransformerException

  Character data

  Specified by:
    `characters` in class `Emitter`
  Throws:
    `TransformerException`

### processingInstruction

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

  Processing Instruction

  Specified by:
    `processingInstruction` in class `Emitter`
  Throws:
    `TransformerException`

### comment

    public void comment(char[] ch,
                        int start,
                        int length)
                 throws TransformerException

  Output a comment

  Specified by:
    `comment` in class `Emitter`
  Throws:
    `TransformerException`

### setEscaping

    public void setEscaping(boolean escaping)
                     throws 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:
    `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 TransformerException

  Set the URI for an unparsed entity in the document.

  Overrides:
    `setUnparsedEntity` in class `Emitter`
  Throws:
    `TransformerException`

### setDocumentLocator

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

  Set the Document Locator

  Overrides:
    `setDocumentLocator` in class `Emitter`