- java.lang.Object
-
- org.glassfish.jaxb.runtime.v2.runtime.output.XmlOutputAbstractImpl
-
- org.glassfish.jaxb.runtime.v2.runtime.output.UTF8XmlOutput
-
- All Implemented Interfaces:
XmlOutput
- Direct Known Subclasses:
C14nXmlOutput,IndentingUTF8XmlOutput
public class UTF8XmlOutput extends XmlOutputAbstractImpl
XmlOutputimplementation specialized for UTF-8.- Author:
- Kohsuke Kawaguchi, Paul Sandoz
-
-
Field Summary
Fields Modifier and Type Field Description protected booleancloseStartTagPendingSet to true to indicate that we need to write'>'to close a start tag.protected byte[]octetBufferBuffer of octets for writing.protected intoctetBufferIndexIndex in buffer to write to.protected OutputStreamout-
Fields inherited from class org.glassfish.jaxb.runtime.v2.runtime.output.XmlOutputAbstractImpl
nsContext, nsUriIndex2prefixIndex, serializer
-
-
Constructor Summary
Constructors Constructor Description UTF8XmlOutput(OutputStream out, Encoded[] localNames, CharacterEscapeHandler escapeHandler)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidattribute(int prefix, String localName, String value)voidattribute(Name name, String value)voidbeginStartTag(int prefix, String localName)voidbeginStartTag(Name name)Writes a start tag.protected voidcloseStartTag()Writes'>'to close the start tag, if necessary.voidendDocument(boolean fragment)Called at the very end.voidendStartTag()voidendTag(int prefix, String localName)voidendTag(Name name)protected voidflushBuffer()voidsetHeader(String header)voidstartDocument(XMLSerializer serializer, boolean fragment, int[] nsUriIndex2prefixIndex, NamespaceContextImpl nsContext)Called at the very beginning.voidtext(byte[] data, int dataLen)Writes the given byte[] as base64 encoded binary to the output.voidtext(int value)voidtext(String value, boolean needSP)Writes XML text with character escaping, if necessary.voidtext(Pcdata value, boolean needSP)Writes XML text with character escaping, if necessary.protected voidwrite(byte[] b)protected voidwrite(byte[] b, int start, int length)voidwrite(int i)Writes one byte directly into the buffer.protected voidwriteNsDecl(int prefixIndex)Writes a single namespace declaration for the specified prefix.protected voidwriteNsDecls(int base)
-
-
-
Field Detail
-
out
protected final OutputStream out
-
octetBuffer
protected final byte[] octetBuffer
Buffer of octets for writing.
-
octetBufferIndex
protected int octetBufferIndex
Index in buffer to write to.
-
closeStartTagPending
protected boolean closeStartTagPending
Set to true to indicate that we need to write'>'to close a start tag. Deferring the write of this char allows us to write"/>"for empty elements.
-
-
Constructor Detail
-
UTF8XmlOutput
public UTF8XmlOutput(OutputStream out, Encoded[] localNames, CharacterEscapeHandler escapeHandler)
- Parameters:
localNames- local names encoded in UTF-8.
-
-
Method Detail
-
setHeader
public void setHeader(String header)
-
startDocument
public void startDocument(XMLSerializer serializer, boolean fragment, int[] nsUriIndex2prefixIndex, NamespaceContextImpl nsContext) throws IOException, SAXException, XMLStreamException
Description copied from class:XmlOutputAbstractImplCalled at the very beginning.- Specified by:
startDocumentin interfaceXmlOutput- Overrides:
startDocumentin classXmlOutputAbstractImpl- Parameters:
serializer- theXMLSerializerthat coordinates this whole marshalling episode.fragment- true if we are marshalling a fragment.- Throws:
IOExceptionSAXExceptionXMLStreamException
-
endDocument
public void endDocument(boolean fragment) throws IOException, SAXException, XMLStreamExceptionDescription copied from class:XmlOutputAbstractImplCalled at the very end.- Specified by:
endDocumentin interfaceXmlOutput- Overrides:
endDocumentin classXmlOutputAbstractImpl- Parameters:
fragment- false if we are writing the whole document.- Throws:
IOExceptionSAXExceptionXMLStreamException
-
closeStartTag
protected final void closeStartTag() throws IOExceptionWrites'>'to close the start tag, if necessary.- Throws:
IOException
-
beginStartTag
public void beginStartTag(int prefix, String localName) throws IOException- Specified by:
beginStartTagin interfaceXmlOutput- Specified by:
beginStartTagin classXmlOutputAbstractImpl- Throws:
IOException
-
beginStartTag
public void beginStartTag(Name name) throws IOException
Description copied from class:XmlOutputAbstractImplWrites a start tag.At this point
XmlOutputAbstractImpl.nsContextholds namespace declarations needed for this new element.This method is used for writing tags that are indexed.
- Specified by:
beginStartTagin interfaceXmlOutput- Overrides:
beginStartTagin classXmlOutputAbstractImpl- Throws:
IOException
-
writeNsDecls
protected void writeNsDecls(int base) throws IOException- Throws:
IOException
-
writeNsDecl
protected final void writeNsDecl(int prefixIndex) throws IOExceptionWrites a single namespace declaration for the specified prefix.- Throws:
IOException
-
attribute
public void attribute(Name name, String value) throws IOException
- Specified by:
attributein interfaceXmlOutput- Overrides:
attributein classXmlOutputAbstractImpl- Throws:
IOException
-
attribute
public void attribute(int prefix, String localName, String value) throws IOException- Specified by:
attributein interfaceXmlOutput- Specified by:
attributein classXmlOutputAbstractImpl- Parameters:
prefix- -1 if this attribute does not have a prefix (this handling differs from that of elements.)- Throws:
IOException
-
endStartTag
public void endStartTag() throws IOException- Specified by:
endStartTagin interfaceXmlOutput- Specified by:
endStartTagin classXmlOutputAbstractImpl- Throws:
IOException
-
endTag
public void endTag(Name name) throws IOException
- Specified by:
endTagin interfaceXmlOutput- Overrides:
endTagin classXmlOutputAbstractImpl- Throws:
IOException
-
endTag
public void endTag(int prefix, String localName) throws IOException- Specified by:
endTagin interfaceXmlOutput- Specified by:
endTagin classXmlOutputAbstractImpl- Throws:
IOException
-
text
public void text(String value, boolean needSP) throws IOException
Description copied from interface:XmlOutputWrites XML text with character escaping, if necessary.- Parameters:
value- this string can contain characters that might need escaping (such as'&' or '>')- Throws:
IOException
-
text
public void text(Pcdata value, boolean needSP) throws IOException
Description copied from interface:XmlOutputWrites XML text with character escaping, if necessary.- Parameters:
value- this string can contain characters that might need escaping (such as'&' or '>')- Throws:
IOException
-
text
public final void text(int value) throws IOException- Throws:
IOException
-
text
public void text(byte[] data, int dataLen) throws IOExceptionWrites 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:
IOException
-
write
public final void write(int i) throws IOExceptionWrites one byte directly into the buffer.This method can be used somewhat like the
textmethod, but it doesn't perform character escaping.- Throws:
IOException
-
write
protected final void write(byte[] b) throws IOException- Throws:
IOException
-
write
protected final void write(byte[] b, int start, int length) throws IOException- Throws:
IOException
-
flushBuffer
protected final void flushBuffer() throws IOException- Throws:
IOException
-
-