org.apache.xml.serializer

Class SerializerTraceWriter


public class SerializerTraceWriter
extends 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(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(String s)
Write a string.
void
write(chars[] , int start, int length)
Write a portion of an array of characters.
void
write(int c)
Write a single character.

Constructor Details

SerializerTraceWriter

public SerializerTraceWriter(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 Details

close

public void close()
            throws java.io.IOException
Flush the internal buffer and close the Writer
See Also:
java.io.Writer.close()

flush

public void flush()
            throws java.io.IOException
Flush the internal buffer and flush the Writer
See Also:
java.io.Writer.flush()

write

public void write(String s)
            throws IOException
Write a string.
Parameters:
s - String to be written

write

public void write(chars[] ,
                  int start,
                  int length)
            throws java.io.IOException
Write a portion of an array of characters.
Parameters:
start - Offset from which to start writing characters
length - Number of characters to write

write

public void write(int c)
            throws 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.

Copyright B) 2004 Apache XML Project. All Rights Reserved.