|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object java.io.Writer org.apache.xml.serializer.SerializerTraceWriter
final class SerializerTraceWriter
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.
Field Summary | |
---|---|
private byte[] |
buf
Internal buffer to collect the characters to go to the trace listener. |
private int |
buf_length
The size of the internal buffer, just to keep too many events from being sent to the tracer |
private int |
count
How many bytes have been collected and still need to go to trace listener. |
private SerializerTrace |
m_tracer
The tracer to send events to |
private java.io.Writer |
m_writer
The real writer to immediately write to. |
Fields inherited from class java.io.Writer |
---|
lock |
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 |
private void |
flushBuffer()
Flush out the collected characters by sending them to the trace listener. |
java.io.OutputStream |
getOutputStream()
Get the OutputStream that is the at the end of the chain of writers. |
java.io.Writer |
getWriter()
Get the writer that this one directly wraps. |
private void |
setBufferSize(int size)
Creates or replaces the internal buffer, and makes sure it has a few extra bytes slight overflow of the last UTF8 encoded character. |
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 |
---|
append, append, append, write, write |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Methods inherited from interface org.apache.xml.serializer.WriterChain |
---|
write, write |
Field Detail |
---|
private final java.io.Writer m_writer
private final SerializerTrace m_tracer
private int buf_length
private byte[] buf
private int count
Constructor Detail |
---|
public SerializerTraceWriter(java.io.Writer out, SerializerTrace tracer)
out
- the Writer to write to (possibly null)tracer
- the tracer to inform that characters are being writtenMethod Detail |
---|
private void setBufferSize(int size)
size
- private void flushBuffer() throws java.io.IOException
java.io.IOException
public void flush() throws java.io.IOException
flush
in interface java.io.Flushable
flush
in interface WriterChain
flush
in class java.io.Writer
java.io.IOException
Writer.flush()
public void close() throws java.io.IOException
close
in interface java.io.Closeable
close
in interface WriterChain
close
in class java.io.Writer
java.io.IOException
Writer.close()
public void write(int c) throws java.io.IOException
Subclasses that intend to support efficient single-character output should override this method.
write
in interface WriterChain
write
in class java.io.Writer
c
- int specifying a character to be written.
java.io.IOException
- If an I/O error occurspublic void write(char[] chars, int start, int length) throws java.io.IOException
write
in interface WriterChain
write
in class java.io.Writer
chars
- Array of charactersstart
- Offset from which to start writing characterslength
- Number of characters to write
java.io.IOException
- If an I/O error occurs
java.io.IOException
public void write(java.lang.String s) throws java.io.IOException
write
in interface WriterChain
write
in class java.io.Writer
s
- String to be written
java.io.IOException
- If an I/O error occurspublic java.io.Writer getWriter()
getWriter
in interface WriterChain
public java.io.OutputStream getOutputStream()
getOutputStream
in interface WriterChain
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |