Class SmileGenerator
- java.lang.Object
-
- com.fasterxml.jackson.core.JsonGenerator
-
- com.fasterxml.jackson.core.base.GeneratorBase
-
- com.fasterxml.jackson.dataformat.smile.SmileGenerator
-
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned,java.io.Closeable,java.io.Flushable,java.lang.AutoCloseable
public class SmileGenerator extends com.fasterxml.jackson.core.base.GeneratorBaseJsonGeneratorimplementation for Smile-encoded content (see Smile Format Specification)
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSmileGenerator.FeatureEnumeration that defines all togglable features for Smile generators.static classSmileGenerator.SharedStringNodeHelper class used for keeping track of possibly shareable String references (for field names and/or short String values)
-
Field Summary
Fields Modifier and Type Field Description protected boolean_bufferRecyclableFlag that indicates whether the output buffer is recyclable (and needs to be returned to recycler once we are done) or not.protected int_bytesWrittenLet's keep track of how many bytes have been output, may prove useful when debugging.protected int_formatFeaturesBit flag composed of bits that indicate whichSmileGenerator.Features are enabled.protected java.io.OutputStream_outprotected byte[]_outputBufferIntermediate buffer in which contents are buffered before being written using_out.protected int_outputEndOffset to index after the last valid index in_outputBuffer.protected int_outputTailPointer to the next available byte in_outputBufferprotected int_seenNameCountNumber of entries in_seenNames; -1 if no shared name detection is enabledprotected SmileGenerator.SharedStringNode[]_seenNamesRaw data structure used for checking whether field name to write can be output using back reference or not.protected int_seenStringValueCountNumber of entries in_seenStringValues; -1 if no shared text value detection is enabledprotected SmileGenerator.SharedStringNode[]_seenStringValuesRaw data structure used for checking whether String value to write can be output using back reference or not.protected com.fasterxml.jackson.core.StreamWriteConstraints_streamWriteConstraintsprotected SmileWriteContext_streamWriteContextprotected static intDEFAULT_NAME_BUFFER_LENGTHprotected static intDEFAULT_STRING_VALUE_BUFFER_LENGTHprotected static longMAX_INT_AS_LONGprivate static intMIN_BUFFER_LENGTHTo simplify certain operations, we require output buffer length to allow outputting of contiguous 256 character UTF-8 encoded String value.protected static longMIN_INT_AS_LONGprotected static intREPLACEMENT_CHARThe replacement character to use to fix invalid Unicode sequences (mismatched surrogate pair).protected static byteTOKEN_BYTE_BIG_DECIMALprotected static byteTOKEN_BYTE_BIG_INTEGERprotected static byteTOKEN_BYTE_FLOAT_32protected static byteTOKEN_BYTE_FLOAT_64protected static byteTOKEN_BYTE_INT_32protected static byteTOKEN_BYTE_INT_64protected static byteTOKEN_BYTE_LONG_STRING_ASCII-
Fields inherited from class com.fasterxml.jackson.core.base.GeneratorBase
_cfgNumbersAsStrings, _closed, _features, _ioContext, _objectCodec, _writeContext, DERIVED_FEATURES_MASK, MAX_BIG_DECIMAL_SCALE, SURR1_FIRST, SURR1_LAST, SURR2_FIRST, SURR2_LAST, WRITE_BINARY, WRITE_BOOLEAN, WRITE_NULL, WRITE_NUMBER, WRITE_RAW, WRITE_STRING
-
-
Constructor Summary
Constructors Constructor Description SmileGenerator(com.fasterxml.jackson.core.io.IOContext ioCtxt, int stdFeatures, int smileFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out)SmileGenerator(com.fasterxml.jackson.core.io.IOContext ioCtxt, int stdFeatures, int smileFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out, byte[] outputBuffer, int offset, boolean bufferRecyclable)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description private void_addSeenName(java.lang.String name)private void_addSeenStringValue(java.lang.String text)private int_appendReplacementChar(byte[] outBuf, int outputPtr)private int_decodeAndWriteSurrogate(int surr1, int surr2, byte[] outBuf, int outputPtr)private void_ensureRoomForOutput(int needed)private int_findSeenName(java.lang.String name)private int_findSeenStringValue(java.lang.String text)protected void_flushBuffer()private int_invalidSurrogateEnd(int surr1, int surr2, byte[] outBuf, int outputPtr)private int_invalidSurrogateStart(int code, byte[] outBuf, int outputPtr)private void_mediumUTF8Encode(char[] str, int inputPtr, int inputEnd)private void_mediumUTF8Encode(java.lang.String str, int inputPtr, int inputEnd)protected java.lang.UnsupportedOperationException_notSupported()private int_readMore(java.io.InputStream in, byte[] readBuffer, int inputPtr, int inputEnd, int maxRead)protected void_releaseBuffers()private int_shortUTF8Encode(char[] str, int i, int end)Helper method called when the whole character sequence is known to fit in the output buffer regardless of UTF-8 expansion.private int_shortUTF8Encode(java.lang.String str, int i, int end)private int_shortUTF8Encode2(char[] str, int i, int end, int outputPtr)Helper method called when the whole character sequence is known to fit in the output buffer, but not all characters are single-byte (ASCII) characters.private int_shortUTF8Encode2(java.lang.String str, int i, int end, int outputPtr)protected com.fasterxml.jackson.core.StreamReadConstraints_streamReadConstraints()We need access to some reader-side constraints for safety-check within number decoding for : for now we need to rely on global defaults; should be ok for basic safeguarding.private static boolean_validBackRef(int index)Helper method used to ensure that we do not use back-reference values that would produce illegal byte sequences (ones with byte 0xFE or 0xFF).protected void_verifyValueWrite(java.lang.String typeMsg)protected void_write7BitBinaryWithLength(byte[] data, int offset, int len)protected int_write7BitBinaryWithLength(java.io.InputStream in, int bytesLeft, byte[] buffer)private void_writeByte(byte b)private void_writeBytes(byte[] data, int offset, int len)private void_writeBytes(byte b1, byte b2)private void_writeBytes(byte b1, byte b2, byte b3)private void_writeBytes(byte b1, byte b2, byte b3, byte b4)private void_writeBytes(byte b1, byte b2, byte b3, byte b4, byte b5)private void_writeBytes(byte b1, byte b2, byte b3, byte b4, byte b5, byte b6)private int_writeBytes(java.io.InputStream in, int bytesLeft)private void_writeBytesLong(byte[] data, int offset, int len)protected void_writeDecimalNumber(java.lang.String enc)protected void_writeFieldName(com.fasterxml.jackson.core.SerializableString name)private void_writeFieldName(java.lang.String name)protected void_writeFieldNameUnicode(com.fasterxml.jackson.core.SerializableString name, byte[] bytes)protected void_writeIntegralNumber(java.lang.String enc, boolean neg)private void_writeLongAsciiFieldName(byte[] bytes)private void_writeNonSharedString(java.lang.String text, int len)Helper method called to handle cases where String value to write is known to be long enough not to be shareable.private void_writeNonShortFieldName(java.lang.String name, int len)private int_writeNumberNoChecks(int ptr, double d)private int_writeNumberNoChecks(int ptr, int i)private int_writeNumberNoChecks(int ptr, long l)private void_writePositiveVInt(int i)Helper method for writing a 32-bit positive (really 31-bit then) value.private void_writeSharedNameReference(int ix)private void_writeSharedStringValueReference(int ix)private void_writeSignedVInt(int input)Helper method for writing 32-bit signed value, using "zig zag encoding" (see protocol buffers for explanation -- basically, sign bit is moved as LSB, rest of value shifted left by one) coupled with basic variable length encodingvoidassignCurrentValue(java.lang.Object v)booleancanWriteBinaryNatively()voidclose()SmileGeneratorconfigure(SmileGenerator.Feature f, boolean state)java.lang.ObjectcurrentValue()SmileGeneratordisable(SmileGenerator.Feature f)SmileGeneratorenable(SmileGenerator.Feature f)voidflush()java.lang.ObjectgetCurrentValue()Deprecated.intgetFormatFeatures()intgetOutputBuffered()com.fasterxml.jackson.core.JsonStreamContextgetOutputContext()java.lang.ObjectgetOutputTarget()com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamWriteCapability>getWriteCapabilities()booleanisEnabled(SmileGenerator.Feature f)protected longoutputOffset()Method for accessing offset of the next byte within the whole output stream that this generator has produced.com.fasterxml.jackson.core.JsonGeneratoroverrideFormatFeatures(int values, int mask)voidsetCurrentValue(java.lang.Object v)Deprecated.com.fasterxml.jackson.core.JsonGeneratorsetPrettyPrinter(com.fasterxml.jackson.core.PrettyPrinter pp)No way (or need) to indent anything, so let's block any attempts.com.fasterxml.jackson.core.StreamWriteConstraintsstreamWriteConstraints()com.fasterxml.jackson.core.JsonGeneratoruseDefaultPrettyPrinter()No way (or need) to indent anything, so let's block any attempts.com.fasterxml.jackson.core.Versionversion()voidwriteArray(double[] array, int offset, int length)voidwriteArray(int[] array, int offset, int length)voidwriteArray(long[] array, int offset, int length)voidwriteBinary(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len)intwriteBinary(com.fasterxml.jackson.core.Base64Variant b64variant, java.io.InputStream data, int dataLength)intwriteBinary(java.io.InputStream data, int dataLength)voidwriteBoolean(boolean state)voidwriteBytes(byte[] data, int offset, int len)Method for directly inserting specified bytes in output at current position.voidwriteEndArray()voidwriteEndObject()voidwriteFieldName(com.fasterxml.jackson.core.SerializableString name)voidwriteFieldName(java.lang.String name)voidwriteHeader()Method that can be called to explicitly write Smile document header.voidwriteNull()voidwriteNumber(double d)voidwriteNumber(float f)voidwriteNumber(int i)voidwriteNumber(long l)voidwriteNumber(java.lang.String encodedValue)voidwriteNumber(java.math.BigDecimal dec)voidwriteNumber(java.math.BigInteger v)voidwriteRaw(byte b)Method for directly inserting specified byte in output at current position.voidwriteRaw(char c)voidwriteRaw(char[] text, int offset, int len)voidwriteRaw(java.lang.String text)voidwriteRaw(java.lang.String text, int offset, int len)voidwriteRawUTF8String(byte[] text, int offset, int len)voidwriteRawValue(char[] text, int offset, int len)voidwriteRawValue(java.lang.String text)voidwriteRawValue(java.lang.String text, int offset, int len)voidwriteStartArray()voidwriteStartArray(int size)Deprecated.voidwriteStartArray(java.lang.Object forValue)voidwriteStartArray(java.lang.Object forValue, int elementsToWrite)voidwriteStartObject()voidwriteStartObject(java.lang.Object forValue)voidwriteStartObject(java.lang.Object forValue, int elementsToWrite)voidwriteString(char[] text, int offset, int len)voidwriteString(com.fasterxml.jackson.core.SerializableString sstr)voidwriteString(java.lang.String text)voidwriteUTF8String(byte[] text, int offset, int len)-
Methods inherited from class com.fasterxml.jackson.core.base.GeneratorBase
_asString, _checkRangeBoundsForByteArray, _checkRangeBoundsForCharArray, _checkRangeBoundsForString, _checkStdFeatureChanges, _constructDefaultPrettyPrinter, _decodeSurrogate, disable, enable, getCodec, getFeatureMask, ioContext, isClosed, isEnabled, overrideStdFeatures, setCodec, setFeatureMask, writeObject, writeRawValue, writeTree
-
Methods inherited from class com.fasterxml.jackson.core.JsonGenerator
_constructWriteException, _constructWriteException, _constructWriteException, _constructWriteException, _copyCurrentContents, _copyCurrentFloatValue, _copyCurrentFloatValueExact, _copyCurrentIntValue, _copyCurrentStringValue, _reportError, _reportUnsupportedOperation, _reportUnsupportedOperation, _throwInternal, _verifyOffsets, _writeSimpleObject, canOmitFields, canUseSchema, canWriteFormattedNumbers, canWriteObjectId, canWriteTypeId, configure, copyCurrentEvent, copyCurrentEventExact, copyCurrentStructure, getCharacterEscapes, getHighestEscapedChar, getPrettyPrinter, getSchema, isEnabled, setCharacterEscapes, setHighestNonEscapedChar, setRootValueSeparator, setSchema, writeArray, writeArrayFieldStart, writeBinary, writeBinary, writeBinaryField, writeBooleanField, writeEmbeddedObject, writeFieldId, writeNullField, writeNumber, writeNumber, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeObjectId, writeObjectRef, writeOmittedField, writePOJO, writePOJOField, writeRaw, writeString, writeStringField, writeTypeId, writeTypePrefix, writeTypeSuffix
-
-
-
-
Field Detail
-
DEFAULT_NAME_BUFFER_LENGTH
protected static final int DEFAULT_NAME_BUFFER_LENGTH
- See Also:
- Constant Field Values
-
DEFAULT_STRING_VALUE_BUFFER_LENGTH
protected static final int DEFAULT_STRING_VALUE_BUFFER_LENGTH
- See Also:
- Constant Field Values
-
MIN_BUFFER_LENGTH
private static final int MIN_BUFFER_LENGTH
To simplify certain operations, we require output buffer length to allow outputting of contiguous 256 character UTF-8 encoded String value. Length of the longest UTF-8 code point (from Java char) is 3 bytes, and we need both initial token byte and single-byte end marker so we get following value.Note: actually we could live with shorter one; absolute minimum would be for encoding 64-character Strings.
- See Also:
- Constant Field Values
-
TOKEN_BYTE_LONG_STRING_ASCII
protected static final byte TOKEN_BYTE_LONG_STRING_ASCII
- See Also:
- Constant Field Values
-
TOKEN_BYTE_INT_32
protected static final byte TOKEN_BYTE_INT_32
- See Also:
- Constant Field Values
-
TOKEN_BYTE_INT_64
protected static final byte TOKEN_BYTE_INT_64
- See Also:
- Constant Field Values
-
TOKEN_BYTE_BIG_INTEGER
protected static final byte TOKEN_BYTE_BIG_INTEGER
- See Also:
- Constant Field Values
-
TOKEN_BYTE_FLOAT_32
protected static final byte TOKEN_BYTE_FLOAT_32
- See Also:
- Constant Field Values
-
TOKEN_BYTE_FLOAT_64
protected static final byte TOKEN_BYTE_FLOAT_64
- See Also:
- Constant Field Values
-
TOKEN_BYTE_BIG_DECIMAL
protected static final byte TOKEN_BYTE_BIG_DECIMAL
- See Also:
- Constant Field Values
-
MIN_INT_AS_LONG
protected static final long MIN_INT_AS_LONG
- See Also:
- Constant Field Values
-
MAX_INT_AS_LONG
protected static final long MAX_INT_AS_LONG
- See Also:
- Constant Field Values
-
REPLACEMENT_CHAR
protected static final int REPLACEMENT_CHAR
The replacement character to use to fix invalid Unicode sequences (mismatched surrogate pair).- Since:
- 2.13
- See Also:
- Constant Field Values
-
_streamWriteConstraints
protected final com.fasterxml.jackson.core.StreamWriteConstraints _streamWriteConstraints
- Since:
- 2.16
-
_out
protected final java.io.OutputStream _out
-
_formatFeatures
protected int _formatFeatures
Bit flag composed of bits that indicate whichSmileGenerator.Features are enabled.
-
_streamWriteContext
protected SmileWriteContext _streamWriteContext
-
_outputBuffer
protected byte[] _outputBuffer
Intermediate buffer in which contents are buffered before being written using_out.
-
_outputTail
protected int _outputTail
Pointer to the next available byte in_outputBuffer
-
_outputEnd
protected final int _outputEnd
Offset to index after the last valid index in_outputBuffer. Typically same as length of the buffer.
-
_bytesWritten
protected int _bytesWritten
Let's keep track of how many bytes have been output, may prove useful when debugging. This does not include bytes buffered in the output buffer, just bytes that have been written using underlying stream writer.
-
_seenNames
protected SmileGenerator.SharedStringNode[] _seenNames
Raw data structure used for checking whether field name to write can be output using back reference or not.
-
_seenNameCount
protected int _seenNameCount
Number of entries in_seenNames; -1 if no shared name detection is enabled
-
_seenStringValues
protected SmileGenerator.SharedStringNode[] _seenStringValues
Raw data structure used for checking whether String value to write can be output using back reference or not.
-
_seenStringValueCount
protected int _seenStringValueCount
Number of entries in_seenStringValues; -1 if no shared text value detection is enabled
-
_bufferRecyclable
protected boolean _bufferRecyclable
Flag that indicates whether the output buffer is recyclable (and needs to be returned to recycler once we are done) or not.
-
-
Constructor Detail
-
SmileGenerator
public SmileGenerator(com.fasterxml.jackson.core.io.IOContext ioCtxt, int stdFeatures, int smileFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out)- Since:
- 2.16
-
SmileGenerator
public SmileGenerator(com.fasterxml.jackson.core.io.IOContext ioCtxt, int stdFeatures, int smileFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out, byte[] outputBuffer, int offset, boolean bufferRecyclable)- Since:
- 2.16
-
-
Method Detail
-
writeHeader
public void writeHeader() throws java.io.IOExceptionMethod that can be called to explicitly write Smile document header. Note that usually you do not need to call this for first document to output, but rather only if you intend to write multiple root-level documents with same generator (and even in that case this is optional thing to do). As a result usually onlySmileFactorycalls this method.- Throws:
java.io.IOException
-
version
public com.fasterxml.jackson.core.Version version()
- Specified by:
versionin interfacecom.fasterxml.jackson.core.Versioned- Overrides:
versionin classcom.fasterxml.jackson.core.base.GeneratorBase
-
canWriteBinaryNatively
public boolean canWriteBinaryNatively()
- Overrides:
canWriteBinaryNativelyin classcom.fasterxml.jackson.core.JsonGenerator
-
getWriteCapabilities
public com.fasterxml.jackson.core.util.JacksonFeatureSet<com.fasterxml.jackson.core.StreamWriteCapability> getWriteCapabilities()
- Overrides:
getWriteCapabilitiesin classcom.fasterxml.jackson.core.JsonGenerator
-
useDefaultPrettyPrinter
public com.fasterxml.jackson.core.JsonGenerator useDefaultPrettyPrinter()
No way (or need) to indent anything, so let's block any attempts. (should we throw an exception instead?)- Overrides:
useDefaultPrettyPrinterin classcom.fasterxml.jackson.core.base.GeneratorBase
-
setPrettyPrinter
public com.fasterxml.jackson.core.JsonGenerator setPrettyPrinter(com.fasterxml.jackson.core.PrettyPrinter pp)
No way (or need) to indent anything, so let's block any attempts. (should we throw an exception instead?)- Overrides:
setPrettyPrinterin classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputTarget
public java.lang.Object getOutputTarget()
- Overrides:
getOutputTargetin classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputBuffered
public int getOutputBuffered()
- Overrides:
getOutputBufferedin classcom.fasterxml.jackson.core.JsonGenerator
-
getFormatFeatures
public int getFormatFeatures()
- Overrides:
getFormatFeaturesin classcom.fasterxml.jackson.core.JsonGenerator
-
overrideFormatFeatures
public com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures(int values, int mask)- Overrides:
overrideFormatFeaturesin classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputContext
public com.fasterxml.jackson.core.JsonStreamContext getOutputContext()
- Overrides:
getOutputContextin classcom.fasterxml.jackson.core.base.GeneratorBase
-
currentValue
public java.lang.Object currentValue()
- Overrides:
currentValuein classcom.fasterxml.jackson.core.base.GeneratorBase
-
assignCurrentValue
public void assignCurrentValue(java.lang.Object v)
- Overrides:
assignCurrentValuein classcom.fasterxml.jackson.core.base.GeneratorBase
-
getCurrentValue
@Deprecated public java.lang.Object getCurrentValue()
Deprecated.- Overrides:
getCurrentValuein classcom.fasterxml.jackson.core.JsonGenerator
-
setCurrentValue
@Deprecated public void setCurrentValue(java.lang.Object v)
Deprecated.- Overrides:
setCurrentValuein classcom.fasterxml.jackson.core.JsonGenerator
-
writeFieldName
public final void writeFieldName(java.lang.String name) throws java.io.IOException- Specified by:
writeFieldNamein classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeFieldName
public final void writeFieldName(com.fasterxml.jackson.core.SerializableString name) throws java.io.IOException- Overrides:
writeFieldNamein classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
enable
public SmileGenerator enable(SmileGenerator.Feature f)
-
disable
public SmileGenerator disable(SmileGenerator.Feature f)
-
isEnabled
public final boolean isEnabled(SmileGenerator.Feature f)
-
configure
public SmileGenerator configure(SmileGenerator.Feature f, boolean state)
-
streamWriteConstraints
public com.fasterxml.jackson.core.StreamWriteConstraints streamWriteConstraints()
- Overrides:
streamWriteConstraintsin classcom.fasterxml.jackson.core.JsonGenerator
-
writeRaw
public void writeRaw(byte b) throws java.io.IOExceptionMethod for directly inserting specified byte in output at current position.NOTE: only use this method if you really know what you are doing.
- Throws:
java.io.IOException
-
writeBytes
public void writeBytes(byte[] data, int offset, int len) throws java.io.IOExceptionMethod for directly inserting specified bytes in output at current position.NOTE: only use this method if you really know what you are doing.
- Throws:
java.io.IOException
-
writeStartArray
public final void writeStartArray() throws java.io.IOException- Specified by:
writeStartArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeStartArray
public final void writeStartArray(java.lang.Object forValue) throws java.io.IOException- Overrides:
writeStartArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeStartArray
public final void writeStartArray(java.lang.Object forValue, int elementsToWrite) throws java.io.IOException- Overrides:
writeStartArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeStartArray
@Deprecated public final void writeStartArray(int size) throws java.io.IOExceptionDeprecated.- Overrides:
writeStartArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeEndArray
public final void writeEndArray() throws java.io.IOException- Specified by:
writeEndArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeStartObject
public final void writeStartObject() throws java.io.IOException- Specified by:
writeStartObjectin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeStartObject
public final void writeStartObject(java.lang.Object forValue) throws java.io.IOException- Overrides:
writeStartObjectin classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
writeStartObject
public void writeStartObject(java.lang.Object forValue, int elementsToWrite) throws java.io.IOException- Overrides:
writeStartObjectin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeEndObject
public final void writeEndObject() throws java.io.IOException- Specified by:
writeEndObjectin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeArray
public void writeArray(int[] array, int offset, int length) throws java.io.IOException- Overrides:
writeArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeArray
public void writeArray(long[] array, int offset, int length) throws java.io.IOException- Overrides:
writeArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeArray
public void writeArray(double[] array, int offset, int length) throws java.io.IOException- Overrides:
writeArrayin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
_writeFieldName
private final void _writeFieldName(java.lang.String name) throws java.io.IOException- Throws:
java.io.IOException
-
_writeNonShortFieldName
private final void _writeNonShortFieldName(java.lang.String name, int len) throws java.io.IOException- Throws:
java.io.IOException
-
_writeFieldName
protected final void _writeFieldName(com.fasterxml.jackson.core.SerializableString name) throws java.io.IOException- Throws:
java.io.IOException
-
_writeLongAsciiFieldName
private final void _writeLongAsciiFieldName(byte[] bytes) throws java.io.IOException- Throws:
java.io.IOException
-
_writeFieldNameUnicode
protected final void _writeFieldNameUnicode(com.fasterxml.jackson.core.SerializableString name, byte[] bytes) throws java.io.IOException- Throws:
java.io.IOException
-
_writeSharedNameReference
private final void _writeSharedNameReference(int ix) throws java.io.IOException- Throws:
java.io.IOException
-
writeString
public void writeString(java.lang.String text) throws java.io.IOException- Specified by:
writeStringin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
_writeSharedStringValueReference
private final void _writeSharedStringValueReference(int ix) throws java.io.IOException- Throws:
java.io.IOException
-
_writeNonSharedString
private final void _writeNonSharedString(java.lang.String text, int len) throws java.io.IOExceptionHelper method called to handle cases where String value to write is known to be long enough not to be shareable.- Throws:
java.io.IOException
-
writeString
public void writeString(char[] text, int offset, int len) throws java.io.IOException- Specified by:
writeStringin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeString
public final void writeString(com.fasterxml.jackson.core.SerializableString sstr) throws java.io.IOException- Overrides:
writeStringin classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
writeRawUTF8String
public void writeRawUTF8String(byte[] text, int offset, int len) throws java.io.IOException- Specified by:
writeRawUTF8Stringin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeUTF8String
public final void writeUTF8String(byte[] text, int offset, int len) throws java.io.IOException- Specified by:
writeUTF8Stringin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(java.lang.String text) throws java.io.IOException- Specified by:
writeRawin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(java.lang.String text, int offset, int len) throws java.io.IOException- Specified by:
writeRawin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(char[] text, int offset, int len) throws java.io.IOException- Specified by:
writeRawin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(char c) throws java.io.IOException- Specified by:
writeRawin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeRawValue
public void writeRawValue(java.lang.String text) throws java.io.IOException- Overrides:
writeRawValuein classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
writeRawValue
public void writeRawValue(java.lang.String text, int offset, int len) throws java.io.IOException- Overrides:
writeRawValuein classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
writeRawValue
public void writeRawValue(char[] text, int offset, int len) throws java.io.IOException- Overrides:
writeRawValuein classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
writeBinary
public void writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len) throws java.io.IOException- Specified by:
writeBinaryin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeBinary
public int writeBinary(java.io.InputStream data, int dataLength) throws java.io.IOException- Overrides:
writeBinaryin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeBinary
public int writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, java.io.InputStream data, int dataLength) throws java.io.IOException- Overrides:
writeBinaryin classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
writeBoolean
public void writeBoolean(boolean state) throws java.io.IOException- Specified by:
writeBooleanin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeNull
public void writeNull() throws java.io.IOException- Specified by:
writeNullin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(int i) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
_writeNumberNoChecks
private final int _writeNumberNoChecks(int ptr, int i) throws java.io.IOException- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(long l) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
_writeNumberNoChecks
private final int _writeNumberNoChecks(int ptr, long l) throws java.io.IOException- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.math.BigInteger v) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(double d) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
_writeNumberNoChecks
private final int _writeNumberNoChecks(int ptr, double d) throws java.io.IOException- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(float f) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.math.BigDecimal dec) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.lang.String encodedValue) throws java.io.IOException- Specified by:
writeNumberin classcom.fasterxml.jackson.core.JsonGenerator- Throws:
java.io.IOException
-
_writeIntegralNumber
protected void _writeIntegralNumber(java.lang.String enc, boolean neg) throws java.io.IOException- Throws:
java.io.IOException
-
_writeDecimalNumber
protected void _writeDecimalNumber(java.lang.String enc) throws java.io.IOException- Throws:
java.io.IOException
-
_verifyValueWrite
protected final void _verifyValueWrite(java.lang.String typeMsg) throws java.io.IOException- Specified by:
_verifyValueWritein classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
flush
public final void flush() throws java.io.IOException- Specified by:
flushin interfacejava.io.Flushable- Specified by:
flushin classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException- Specified by:
closein interfacejava.lang.AutoCloseable- Specified by:
closein interfacejava.io.Closeable- Overrides:
closein classcom.fasterxml.jackson.core.base.GeneratorBase- Throws:
java.io.IOException
-
_shortUTF8Encode
private final int _shortUTF8Encode(char[] str, int i, int end) throws java.io.IOExceptionHelper method called when the whole character sequence is known to fit in the output buffer regardless of UTF-8 expansion.- Throws:
java.io.IOException
-
_shortUTF8Encode2
private final int _shortUTF8Encode2(char[] str, int i, int end, int outputPtr) throws java.io.IOExceptionHelper method called when the whole character sequence is known to fit in the output buffer, but not all characters are single-byte (ASCII) characters.- Throws:
java.io.IOException
-
_shortUTF8Encode
private final int _shortUTF8Encode(java.lang.String str, int i, int end) throws java.io.IOException- Throws:
java.io.IOException
-
_shortUTF8Encode2
private final int _shortUTF8Encode2(java.lang.String str, int i, int end, int outputPtr) throws java.io.IOException- Throws:
java.io.IOException
-
_mediumUTF8Encode
private void _mediumUTF8Encode(char[] str, int inputPtr, int inputEnd) throws java.io.IOException- Throws:
java.io.IOException
-
_mediumUTF8Encode
private void _mediumUTF8Encode(java.lang.String str, int inputPtr, int inputEnd) throws java.io.IOException- Throws:
java.io.IOException
-
_invalidSurrogateStart
private int _invalidSurrogateStart(int code, byte[] outBuf, int outputPtr) throws java.io.IOException- Throws:
java.io.IOException
-
_invalidSurrogateEnd
private int _invalidSurrogateEnd(int surr1, int surr2, byte[] outBuf, int outputPtr) throws java.io.IOException- Throws:
java.io.IOException
-
_appendReplacementChar
private int _appendReplacementChar(byte[] outBuf, int outputPtr)
-
_decodeAndWriteSurrogate
private int _decodeAndWriteSurrogate(int surr1, int surr2, byte[] outBuf, int outputPtr)
-
_ensureRoomForOutput
private final void _ensureRoomForOutput(int needed) throws java.io.IOException- Throws:
java.io.IOException
-
_writeByte
private final void _writeByte(byte b) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final void _writeBytes(byte b1, byte b2) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final void _writeBytes(byte b1, byte b2, byte b3) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final void _writeBytes(byte b1, byte b2, byte b3, byte b4) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final void _writeBytes(byte b1, byte b2, byte b3, byte b4, byte b5) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final void _writeBytes(byte b1, byte b2, byte b3, byte b4, byte b5, byte b6) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final void _writeBytes(byte[] data, int offset, int len) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytes
private final int _writeBytes(java.io.InputStream in, int bytesLeft) throws java.io.IOException- Throws:
java.io.IOException
-
_writeBytesLong
private final void _writeBytesLong(byte[] data, int offset, int len) throws java.io.IOException- Throws:
java.io.IOException
-
_writePositiveVInt
private void _writePositiveVInt(int i) throws java.io.IOExceptionHelper method for writing a 32-bit positive (really 31-bit then) value. Value is NOT zigzag encoded (since there is no sign bit to worry about)- Throws:
java.io.IOException
-
_writeSignedVInt
private void _writeSignedVInt(int input) throws java.io.IOExceptionHelper method for writing 32-bit signed value, using "zig zag encoding" (see protocol buffers for explanation -- basically, sign bit is moved as LSB, rest of value shifted left by one) coupled with basic variable length encoding- Throws:
java.io.IOException
-
_write7BitBinaryWithLength
protected void _write7BitBinaryWithLength(byte[] data, int offset, int len) throws java.io.IOException- Throws:
java.io.IOException
-
_write7BitBinaryWithLength
protected int _write7BitBinaryWithLength(java.io.InputStream in, int bytesLeft, byte[] buffer) throws java.io.IOException- Throws:
java.io.IOException
-
_readMore
private int _readMore(java.io.InputStream in, byte[] readBuffer, int inputPtr, int inputEnd, int maxRead) throws java.io.IOException- Throws:
java.io.IOException
-
_releaseBuffers
protected void _releaseBuffers()
- Specified by:
_releaseBuffersin classcom.fasterxml.jackson.core.base.GeneratorBase
-
_flushBuffer
protected final void _flushBuffer() throws java.io.IOException- Throws:
java.io.IOException
-
_findSeenName
private final int _findSeenName(java.lang.String name)
-
_addSeenName
private final void _addSeenName(java.lang.String name)
-
_findSeenStringValue
private final int _findSeenStringValue(java.lang.String text)
-
_addSeenStringValue
private final void _addSeenStringValue(java.lang.String text)
-
_validBackRef
private static final boolean _validBackRef(int index)
Helper method used to ensure that we do not use back-reference values that would produce illegal byte sequences (ones with byte 0xFE or 0xFF). Note that we do not try to avoid null byte (0x00) by default, although it would be technically possible as well.
-
outputOffset
protected long outputOffset()
Method for accessing offset of the next byte within the whole output stream that this generator has produced.
-
_notSupported
protected java.lang.UnsupportedOperationException _notSupported()
-
_streamReadConstraints
protected com.fasterxml.jackson.core.StreamReadConstraints _streamReadConstraints()
We need access to some reader-side constraints for safety-check within number decoding for : for now we need to rely on global defaults; should be ok for basic safeguarding.- Since:
- 2.17
-
-