com.sun.xml.bind.v2.runtime.output
Class UTF8XmlOutput

java.lang.Object
  extended by com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl
      extended by com.sun.xml.bind.v2.runtime.output.UTF8XmlOutput
All Implemented Interfaces:
XmlOutput
Direct Known Subclasses:
C14nXmlOutput, IndentingUTF8XmlOutput

public class UTF8XmlOutput
extends XmlOutputAbstractImpl

XmlOutput implementation specialized for UTF-8.


Field Summary
protected  byte[] _octetBuffer
          Buffer of octets for writing.
protected  int _octetBufferIndex
          Index in buffer to write to.
protected  java.io.OutputStream out
           
 
Fields inherited from class com.sun.xml.bind.v2.runtime.output.XmlOutputAbstractImpl
nsContext, nsUriIndex2prefixIndex, serializer
 
Constructor Summary
UTF8XmlOutput(java.io.OutputStream out, Encoded[] localNames)
           
 
Method Summary
 void attribute(int prefix, java.lang.String localName, java.lang.String value)
           
 void attribute(Name name, java.lang.String value)
           
 void beginStartTag(int prefix, java.lang.String localName)
           
 void beginStartTag(Name name)
          Writes a start tag.
 void endDocument(boolean fragment)
          Called at the very end.
 void endStartTag()
           
 void endTag(int prefix, java.lang.String localName)
           
 void endTag(Name name)
           
 void flush()
          Flush the output.
protected  void flushBuffer()
           
 void startDocument(XMLSerializer serializer, boolean fragment, int[] nsUriIndex2prefixIndex, NamespaceContextImpl nsContext)
          Called at the very beginning.
 void text(byte[] data, int dataLen)
          Writes the given byte[] as base64 encoded binary to the output.
 void text(int value)
           
 void text(Pcdata value, boolean needSP)
          Writes XML text with character escaping, if necessary.
 void text(java.lang.String value, boolean needSP)
          Writes XML text with character escaping, if necessary.
(package private) static byte[] toBytes(java.lang.String s)
           
protected  void write(byte[] b)
           
protected  void write(byte[] b, int start, int length)
           
 void write(int i)
          Writes one byte directly into the buffer.
protected  void writeNsDecl(int prefixIndex)
          Writes a single namespace declaration for the specified prefix.
protected  void writeNsDecls(int base)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

out

protected final java.io.OutputStream out

_octetBuffer

protected final byte[] _octetBuffer
Buffer of octets for writing.


_octetBufferIndex

protected int _octetBufferIndex
Index in buffer to write to.

Constructor Detail

UTF8XmlOutput

public UTF8XmlOutput(java.io.OutputStream out,
                     Encoded[] localNames)
Parameters:
localNames - local names encoded in UTF-8.
Method Detail

startDocument

public void startDocument(XMLSerializer serializer,
                          boolean fragment,
                          int[] nsUriIndex2prefixIndex,
                          NamespaceContextImpl nsContext)
                   throws java.io.IOException,
                          org.xml.sax.SAXException,
                          javax.xml.stream.XMLStreamException
Description copied from class: XmlOutputAbstractImpl
Called at the very beginning.

Specified by:
startDocument in interface XmlOutput
Overrides:
startDocument in class XmlOutputAbstractImpl
Parameters:
serializer - the XMLSerializer that coordinates this whole marshalling episode.
fragment - true if we are marshalling a fragment.
Throws:
java.io.IOException
org.xml.sax.SAXException
javax.xml.stream.XMLStreamException

endDocument

public void endDocument(boolean fragment)
                 throws java.io.IOException,
                        org.xml.sax.SAXException,
                        javax.xml.stream.XMLStreamException
Description copied from class: XmlOutputAbstractImpl
Called at the very end.

Specified by:
endDocument in interface XmlOutput
Overrides:
endDocument in class XmlOutputAbstractImpl
Parameters:
fragment - false if we are writing the whole document.
Throws:
java.io.IOException
org.xml.sax.SAXException
javax.xml.stream.XMLStreamException

beginStartTag

public void beginStartTag(int prefix,
                          java.lang.String localName)
                   throws java.io.IOException
Specified by:
beginStartTag in interface XmlOutput
Specified by:
beginStartTag in class XmlOutputAbstractImpl
Throws:
java.io.IOException

beginStartTag

public void beginStartTag(Name name)
                   throws java.io.IOException
Description copied from class: XmlOutputAbstractImpl
Writes a start tag.

At this point XmlOutputAbstractImpl.nsContext holds namespace declarations needed for this new element.

This method is used for writing tags that are indexed.

Specified by:
beginStartTag in interface XmlOutput
Overrides:
beginStartTag in class XmlOutputAbstractImpl
Throws:
java.io.IOException

writeNsDecls

protected void writeNsDecls(int base)
                     throws java.io.IOException
Throws:
java.io.IOException

writeNsDecl

protected final void writeNsDecl(int prefixIndex)
                          throws java.io.IOException
Writes a single namespace declaration for the specified prefix.

Throws:
java.io.IOException

attribute

public void attribute(Name name,
                      java.lang.String value)
               throws java.io.IOException
Specified by:
attribute in interface XmlOutput
Overrides:
attribute in class XmlOutputAbstractImpl
Throws:
java.io.IOException

attribute

public void attribute(int prefix,
                      java.lang.String localName,
                      java.lang.String value)
               throws java.io.IOException
Specified by:
attribute in interface XmlOutput
Specified by:
attribute in class XmlOutputAbstractImpl
Parameters:
prefix - -1 if this attribute does not have a prefix (this handling differs from that of elements.)
Throws:
java.io.IOException

endStartTag

public void endStartTag()
                 throws java.io.IOException
Specified by:
endStartTag in interface XmlOutput
Specified by:
endStartTag in class XmlOutputAbstractImpl
Throws:
java.io.IOException

endTag

public void endTag(Name name)
            throws java.io.IOException
Specified by:
endTag in interface XmlOutput
Overrides:
endTag in class XmlOutputAbstractImpl
Throws:
java.io.IOException

endTag

public void endTag(int prefix,
                   java.lang.String localName)
            throws java.io.IOException
Specified by:
endTag in interface XmlOutput
Specified by:
endTag in class XmlOutputAbstractImpl
Throws:
java.io.IOException

text

public void text(java.lang.String value,
                 boolean needSP)
          throws java.io.IOException
Description copied from interface: XmlOutput
Writes XML text with character escaping, if necessary.

Parameters:
value - this string can contain characters that might need escaping (such as '&' or '>')
Throws:
java.io.IOException

text

public void text(Pcdata value,
                 boolean needSP)
          throws java.io.IOException
Description copied from interface: XmlOutput
Writes XML text with character escaping, if necessary.

Parameters:
value - this string can contain characters that might need escaping (such as '&' or '>')
Throws:
java.io.IOException

text

public final void text(int value)
                throws java.io.IOException
Throws:
java.io.IOException

text

public void text(byte[] data,
                 int dataLen)
          throws java.io.IOException
Writes the given byte[] as base64 encoded binary to the output.

Being defined on this class allows this method to access the buffer directly, which translates to a better performance.

Throws:
java.io.IOException

write

public final void write(int i)
                 throws java.io.IOException
Writes one byte directly into the buffer.

This method can be used somewhat like the text method, but it doesn't perform character escaping.

Throws:
java.io.IOException

write

protected final void write(byte[] b)
                    throws java.io.IOException
Throws:
java.io.IOException

write

protected final void write(byte[] b,
                           int start,
                           int length)
                    throws java.io.IOException
Throws:
java.io.IOException

flushBuffer

protected final void flushBuffer()
                          throws java.io.IOException
Throws:
java.io.IOException

flush

public void flush()
           throws java.io.IOException
Description copied from class: XmlOutputAbstractImpl
Flush the output.

Specified by:
flush in interface XmlOutput
Overrides:
flush in class XmlOutputAbstractImpl
Throws:
java.io.IOException
See Also:
OutputStream.flush()

toBytes

static byte[] toBytes(java.lang.String s)