com.fasterxml.aalto.out
Class Utf8XmlWriter

java.lang.Object
  extended by com.fasterxml.aalto.out.WNameFactory
      extended by com.fasterxml.aalto.out.XmlWriter
          extended by com.fasterxml.aalto.out.ByteXmlWriter
              extended by com.fasterxml.aalto.out.Utf8XmlWriter

public final class Utf8XmlWriter
extends ByteXmlWriter

This is the generic implementation of XmlWriter, used if the destination is byte-based OutputStream, and encoding is UTF-8.


Field Summary
 
Fields inherited from class com.fasterxml.aalto.out.ByteXmlWriter
_out, _outputBuffer, _outputBufferLen, _outputPtr, mCharTypes, mCopyBuffer, mCopyBufferLen, mSurrogate
 
Fields inherited from class com.fasterxml.aalto.out.XmlWriter
ATTR_MIN_ARRAYCOPY, DEFAULT_COPYBUFFER_LEN, mCfgNsAware, mCheckContent, mCheckNames, MIN_ARRAYCOPY, mLocPastChars, mLocRowNr, mLocRowStartOffset, mXml11, SURR1_FIRST, SURR1_LAST, SURR2_FIRST, SURR2_LAST
 
Constructor Summary
Utf8XmlWriter(WriterConfig cfg, OutputStream out)
           
 
Method Summary
protected  WName doConstructName(String localName)
           
protected  WName doConstructName(String prefix, String localName)
           
 int getHighestEncodable()
          Method called by error reporting code, to figure out if a given character is encodable (without using character entities) with the current encoding or not.
protected  void output2ByteChar(int ch)
           
protected  int outputMultiByteChar(int ch, char[] cbuf, int inputOffset, int inputLen)
          Method called to output a character that is beyond range of 1- and 2-byte UTF-8 encodings.
protected  int outputStrictMultiByteChar(int ch, char[] cbuf, int inputOffset, int inputLen)
          Method called to output a character beyond basic 1- or 2-byte encoding (code 0x0800 and above), without being able to use character entities
protected  void outputSurrogates(int surr1, int surr2)
          Method called to output a composite character, result of combining 2 surrogate characters.
 void writeRaw(char[] cbuf, int offset, int len)
          This method is heavily encoding-dependant, so it needs to be deferred to sub-classes
 
Methods inherited from class com.fasterxml.aalto.out.ByteXmlWriter
_closeTarget, _releaseBuffers, calcSurrogate, constructName, constructName, fastWriteAttrValue, flush, flushBuffer, getAscii, getAscii, getAscii, getOutputPtr, throwUnpairedSurrogate, throwUnpairedSurrogate, verifyNameComponent, writeAsEntity, writeAttribute, writeAttribute, writeAttribute, writeAttrValue, writeCData, writeCData, writeCDataContents, writeCDataEnd, writeCDataStart, writeCharacters, writeCharacters, writeComment, writeCommentContents, writeCommentEnd, writeCommentStart, writeDTD, writeDTD, writeEndTag, writeEntityReference, writeLongAttribute, writeName, writeName, writeName, writePI, writePIData, writeRaw, writeRaw, writeRaw, writeRaw, writeRaw, writeSpace, writeSpace, writeStartTagEmptyEnd, writeStartTagEnd, writeStartTagStart, writeTypedValue, writeXmlDeclaration
 
Methods inherited from class com.fasterxml.aalto.out.XmlWriter
close, enableXml11, getAbsOffset, getColumn, getRow, guessEncodingBitSize, reportFailedEscaping, reportInvalidChar, reportInvalidEmptyName, reportNwfContent, reportNwfContent, reportNwfName, reportNwfName, throwOutputError, throwOutputError
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Utf8XmlWriter

public Utf8XmlWriter(WriterConfig cfg,
                     OutputStream out)
Method Detail

getHighestEncodable

public int getHighestEncodable()
Description copied from class: XmlWriter
Method called by error reporting code, to figure out if a given character is encodable (without using character entities) with the current encoding or not.

Specified by:
getHighestEncodable in class XmlWriter
Returns:
Character code of the highest character that can be natively encoded.

writeRaw

public void writeRaw(char[] cbuf,
                     int offset,
                     int len)
              throws IOException,
                     XMLStreamException
Description copied from class: ByteXmlWriter
This method is heavily encoding-dependant, so it needs to be deferred to sub-classes

Specified by:
writeRaw in class ByteXmlWriter
Throws:
IOException
XMLStreamException

doConstructName

protected WName doConstructName(String localName)
                         throws XMLStreamException
Specified by:
doConstructName in class ByteXmlWriter
Throws:
XMLStreamException

doConstructName

protected WName doConstructName(String prefix,
                                String localName)
                         throws XMLStreamException
Specified by:
doConstructName in class ByteXmlWriter
Throws:
XMLStreamException

outputSurrogates

protected final void outputSurrogates(int surr1,
                                      int surr2)
                               throws IOException,
                                      XMLStreamException
Description copied from class: ByteXmlWriter
Method called to output a composite character, result of combining 2 surrogate characters.

Specified by:
outputSurrogates in class ByteXmlWriter
Throws:
IOException
XMLStreamException

output2ByteChar

protected final void output2ByteChar(int ch)
                              throws IOException,
                                     XMLStreamException
Specified by:
output2ByteChar in class ByteXmlWriter
Throws:
IOException
XMLStreamException

outputMultiByteChar

protected final int outputMultiByteChar(int ch,
                                        char[] cbuf,
                                        int inputOffset,
                                        int inputLen)
                                 throws IOException,
                                        XMLStreamException
Method called to output a character that is beyond range of 1- and 2-byte UTF-8 encodings. This means it's either invalid character, or needs to be encoded using 3- or 4-byte encoding.

Specified by:
outputMultiByteChar in class ByteXmlWriter
Parameters:
inputOffset - Input pointer after character has been handled; either same as one passed in, or one more if a surrogate character was succesfully handled
Throws:
IOException
XMLStreamException

outputStrictMultiByteChar

protected final int outputStrictMultiByteChar(int ch,
                                              char[] cbuf,
                                              int inputOffset,
                                              int inputLen)
                                       throws IOException,
                                              XMLStreamException
Description copied from class: ByteXmlWriter
Method called to output a character beyond basic 1- or 2-byte encoding (code 0x0800 and above), without being able to use character entities

Specified by:
outputStrictMultiByteChar in class ByteXmlWriter
Throws:
IOException
XMLStreamException


Copyright © 2012 Fasterxml.com. All Rights Reserved.