org.jibx.runtime.impl
Class StreamWriterBase

java.lang.Object
  extended by org.jibx.runtime.impl.XMLWriterNamespaceBase
      extended by org.jibx.runtime.impl.XMLWriterBase
          extended by org.jibx.runtime.impl.StreamWriterBase
All Implemented Interfaces:
IExtensibleWriter, IXMLWriter
Direct Known Subclasses:
ISO88591StreamWriter, UTF8StreamWriter

public abstract class StreamWriterBase
extends XMLWriterBase

Base handler for marshalling text document to an output stream. This needs to be subclassed with implementation methods specific to the encoding used.

Author:
Dennis M. Sosnoski

Constructor Summary
StreamWriterBase(StreamWriterBase base, java.lang.String[] uris)
          Copy constructor.
 
Method Summary
 void close()
          Close document output.
 void flush()
          Flush document output.
 java.lang.String getEncodingName()
          Get the name of the character encoding used by this writer.
 void indent()
          Request output indent.
 void indent(int bias)
          Request output indent.
 void popExtensionNamespaces()
          Remove extension namespace URIs.
 void pushExtensionNamespaces(java.lang.String[] uris)
          Append extension namespace URIs to those in mapping.
 void setBuffer(IOutByteBuffer buff)
          Set the byte buffer.
 void setIndentSpaces(int count, java.lang.String newline, char indent)
          Set nesting indentation.
 void setNamespaceUris(java.lang.String[] uris)
          Set namespace URIs.
 
Methods inherited from class org.jibx.runtime.impl.XMLWriterBase
addAttribute, closeEmptyTag, closeStartTag, endTag, init, reset, startTagClosed, startTagNamespaces, startTagOpen, writeComment, writeDocType, writeEntityRef, writePI, writeXMLDecl
 
Methods inherited from class org.jibx.runtime.impl.XMLWriterNamespaceBase
getExtensionNamespaces, getNamespaceCount, getNamespacePrefix, getNamespaces, getNamespaceUri, getNestingDepth, getPrefixIndex, openNamespaces, popTranslationTable, pushTranslationTable, translateNamespace
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.jibx.runtime.IExtensibleWriter
createChildWriter
 
Methods inherited from interface org.jibx.runtime.IXMLWriter
getExtensionNamespaces, getNamespaceCount, getNamespacePrefix, getNamespaces, getNamespaceUri, getNestingDepth, getPrefixIndex, openNamespaces, popTranslationTable, pushTranslationTable, writeCData, writeTextContent
 

Constructor Detail

StreamWriterBase

public StreamWriterBase(StreamWriterBase base,
                        java.lang.String[] uris)
Copy constructor. This takes the stream and encoding information from a supplied instance, while setting a new array of namespace URIs. It's intended for use when invoking one binding from within another binding.

Parameters:
base - instance to be used as base for writer
uris - ordered array of URIs for namespaces used in document (see StreamWriterBase(String, String[]))
Method Detail

setBuffer

public void setBuffer(IOutByteBuffer buff)
Set the byte buffer.

Parameters:
buff -

getEncodingName

public java.lang.String getEncodingName()
Get the name of the character encoding used by this writer.

Returns:
encoding

setNamespaceUris

public void setNamespaceUris(java.lang.String[] uris)
                      throws java.io.IOException
Set namespace URIs. This forces a reset of the writer, clearing any buffered output. It is intended to be used only for reconfiguring an existing writer for reuse.

Parameters:
uris - ordered array of URIs for namespaces used in document
Throws:
java.io.IOException

setIndentSpaces

public void setIndentSpaces(int count,
                            java.lang.String newline,
                            char indent)
Set nesting indentation. This is advisory only, and implementations of this interface are free to ignore it. The intent is to indicate that the generated output should use indenting to illustrate element nesting.

Parameters:
count - number of character to indent per level, or disable indentation if negative (zero means new line only)
newline - sequence of characters used for a line ending (null means use the single character '\n')
indent - whitespace character used for indentation

pushExtensionNamespaces

public void pushExtensionNamespaces(java.lang.String[] uris)
Append extension namespace URIs to those in mapping.

Specified by:
pushExtensionNamespaces in interface IXMLWriter
Overrides:
pushExtensionNamespaces in class XMLWriterNamespaceBase
Parameters:
uris - namespace URIs to extend those in mapping

popExtensionNamespaces

public void popExtensionNamespaces()
Remove extension namespace URIs. This removes the last set of extension namespaces pushed using pushExtensionNamespaces(java.lang.String[]).

Specified by:
popExtensionNamespaces in interface IXMLWriter
Overrides:
popExtensionNamespaces in class XMLWriterNamespaceBase

indent

public void indent(int bias)
            throws java.io.IOException
Request output indent. Output the line end sequence followed by the appropriate number of indent characters.

Parameters:
bias - indent depth difference (positive or negative) from current element nesting depth
Throws:
java.io.IOException - on error writing to document

indent

public void indent()
            throws java.io.IOException
Request output indent. Output the line end sequence followed by the appropriate number of indent characters for the current nesting level.

Throws:
java.io.IOException - on error writing to document

flush

public void flush()
           throws java.io.IOException
Flush document output. Forces out all output generated to this point.

Specified by:
flush in interface IXMLWriter
Specified by:
flush in class XMLWriterBase
Throws:
java.io.IOException - on error writing to document

close

public void close()
           throws java.io.IOException
Close document output. Completes writing of document output, including closing the output medium.

Specified by:
close in interface IXMLWriter
Specified by:
close in class XMLWriterBase
Throws:
java.io.IOException - on error writing to document


Project Web Site