## org.apache.xml.serializer
Class SerializerTraceWriter

    java.lang.Object
      java.io.Writer
          org.apache.xml.serializer.SerializerTraceWriter

public class SerializerTraceWriter
extends java.io.Writer

This class wraps the real writer, it only purpose is to send CHARACTERTOSTREAM events to the trace listener. Each method immediately sends the call to the wrapped writer unchanged, but in addition it collects characters to be issued to a trace listener. In this way the trace listener knows what characters have been written to the output Writer. There may still be differences in what the trace events say is going to the output writer and what is really going there. These differences will be due to the fact that this class is UTF-8 encoding before emiting the trace event and the underlying writer may not be UTF-8 encoding. There may also be encoding differences. So the main pupose of this class is to provide a resonable facsimile of the true output.

Constructor Summary
`SerializerTraceWriter(java.io.Writer out, SerializerTrace tracer)` Constructor.

Method Summary
`void` `close()` Flush the internal buffer and close the Writer
`void` `flush()` Flush the internal buffer and flush the Writer
`void` `write(char[] chars, int start, int length)` Write a portion of an array of characters.
`void` `write(int c)` Write a single character.
`void` `write(java.lang.String s)` Write a string.

Methods inherited from class java.io.Writer
`write, write`

Methods inherited from class java.lang.Object
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Constructor Detail

### SerializerTraceWriter

    public SerializerTraceWriter(java.io.Writer out,
                                 SerializerTrace tracer)

  Constructor. If the writer passed in is null, then this SerializerTraceWriter will only signal trace events of what would have been written to that writer. If the writer passed in is not null then the trace events will mirror what is going to that writer. In this way tools, such as a debugger, can gather information on what is being written out.

Parameters:
  `out` - the Writer to write to (possibly null)
  `tracer` - the tracer to inform that characters are being written

Method Detail

### flush

    public void flush()
               throws java.io.IOException

  Flush the internal buffer and flush the Writer

  Throws:
    `java.io.IOException`
  See Also:
    `Writer.flush()`

### close

    public void close()
               throws java.io.IOException

  Flush the internal buffer and close the Writer

  Throws:
    `java.io.IOException`
  See Also:
    `Writer.close()`

### write

    public void write(int c)
               throws java.io.IOException

  Write a single character. The character to be written is contained in the 16 low-order bits of the given integer value; the 16 high-order bits are ignored.

  Subclasses that intend to support efficient single-character output should override this method.

  Parameters:
    `c` - int specifying a character to be written.
  Throws:
    `java.io.IOException` - If an I/O error occurs

### write

    public void write(char[] chars,
                      int start,
                      int length)
               throws java.io.IOException

  Write a portion of an array of characters.

  Parameters:
    `chars` - Array of characters
    `start` - Offset from which to start writing characters
    `length` - Number of characters to write
  Throws:
    `java.io.IOException` - If an I/O error occurs
    `java.io.IOException`

### write

    public void write(java.lang.String s)
               throws java.io.IOException

  Write a string.

  Parameters:
    `s` - String to be written
  Throws:
    `java.io.IOException` - If an I/O error occurs

Copyright © 2004 Apache XML Project. All Rights Reserved.