Fields Summary |
---|
protected final OutputFormat | _formatThe output format associated with this serializer. This will never
be a null reference. If no format was passed to the constructor,
the default one for this document type will be used. The format
object is never changed by the serializer. |
protected Writer | _writerThe writer to which the document is written. |
protected StringWriter | _dtdWriterThe DTD writer. When we switch to DTD mode, all output is
accumulated in this DTD writer. When we switch out of it,
the output is obtained as a string. Must not be reset to
null until we're done with the document. |
protected Writer | _docWriterHolds a reference to the document writer while we are
in DTD mode. |
protected IOException | _exceptionHolds the exception thrown by the serializer. Exceptions do not cause
the serializer to quit, but are held and one is thrown at the end. |
private static final int | BufferSizeThe size of the output buffer. |
private final char[] | _bufferOutput buffer. |
private int | _posPosition within the output buffer. |
Methods Summary |
---|
public void | breakLine()
try {
if ( _pos == BufferSize ) {
_writer.write( _buffer );
_pos = 0;
}
_buffer[ _pos ] = '\n";
++_pos;
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
|
public void | breakLine(boolean preserveSpace)
breakLine();
|
public void | enterDTD()Called by any of the DTD handlers to enter DTD mode.
Once entered, all output will be accumulated in a string
that can be printed as part of the document's DTD.
This method may be called any number of time but will only
have affect the first time it's called. To exist DTD state
and get the accumulated DTD, call {@link #leaveDTD}.
// Can only enter DTD state once. Once we're out of DTD
// state, can no longer re-enter it.
if ( _dtdWriter == null ) {
flushLine( false );
_dtdWriter = new StringWriter();
_docWriter = _writer;
_writer = _dtdWriter;
}
|
public void | flush()Flush the output stream. Must be called when done printing
the document, otherwise some text might be buffered.
try {
_writer.write( _buffer, 0, _pos );
_writer.flush();
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
_pos = 0;
|
public void | flushLine(boolean preserveSpace)
// Write anything left in the buffer into the writer.
try {
_writer.write( _buffer, 0, _pos );
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
}
_pos = 0;
|
public java.io.IOException | getException()
return _exception;
|
public int | getNextIndent()
return 0;
|
public void | indent()
// NOOP
|
public java.lang.String | leaveDTD()Called by the root element to leave DTD mode and if any
DTD parts were printer, will return a string with their
textual content.
// Only works if we're going out of DTD mode.
if ( _writer == _dtdWriter ) {
flushLine( false );
_writer = _docWriter;
return _dtdWriter.toString();
} else
return null;
|
public void | printSpace()
try {
if ( _pos == BufferSize ) {
_writer.write( _buffer );
_pos = 0;
}
_buffer[ _pos ] = ' ";
++_pos;
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
|
public void | printText(java.lang.String text)
try {
int length = text.length();
for ( int i = 0 ; i < length ; ++i ) {
if ( _pos == BufferSize ) {
_writer.write( _buffer );
_pos = 0;
}
_buffer[ _pos ] = text.charAt( i );
++_pos;
}
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
|
public void | printText(java.lang.StringBuffer text)
try {
int length = text.length();
for ( int i = 0 ; i < length ; ++i ) {
if ( _pos == BufferSize ) {
_writer.write( _buffer );
_pos = 0;
}
_buffer[ _pos ] = text.charAt( i );
++_pos;
}
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
|
public void | printText(char[] chars, int start, int length)
try {
while ( length-- > 0 ) {
if ( _pos == BufferSize ) {
_writer.write( _buffer );
_pos = 0;
}
_buffer[ _pos ] = chars[ start ];
++start;
++_pos;
}
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
|
public void | printText(char ch)
try {
if ( _pos == BufferSize ) {
_writer.write( _buffer );
_pos = 0;
}
_buffer[ _pos ] = ch;
++_pos;
} catch ( IOException except ) {
// We don't throw an exception, but hold it
// until the end of the document.
if ( _exception == null )
_exception = except;
throw except;
}
|
public void | setNextIndent(int indent)
|
public void | setThisIndent(int indent)
|
public void | unindent()
// NOOP
|