Class CBORGenerator
- java.lang.Object
-
- com.fasterxml.jackson.core.JsonGenerator
-
- com.fasterxml.jackson.core.base.GeneratorBase
-
- com.fasterxml.jackson.dataformat.cbor.CBORGenerator
-
- All Implemented Interfaces:
com.fasterxml.jackson.core.Versioned
,java.io.Closeable
,java.io.Flushable
,java.lang.AutoCloseable
public class CBORGenerator extends com.fasterxml.jackson.core.base.GeneratorBase
JsonGenerator
implementation that writes CBOR encoded content.- Author:
- Tatu Saloranta
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
CBORGenerator.Feature
Enumeration that defines all togglable features for CBOR generator.
-
Field Summary
Fields Modifier and Type Field Description protected boolean
_bufferRecyclable
Flag that indicates whether the output buffer is recycable (and needs to be returned to recycler once we are done) or not.protected int
_bytesWritten
Let's keep track of how many bytes have been output, may prove useful when debugging.protected boolean
_cfgMinimalInts
protected char[]
_charBuffer
Intermediate buffer in which characters of a String are copied before being encoded.protected int
_charBufferLength
protected int
_formatFeatures
Bit flag composed of bits that indicate whichCBORGenerator.Feature
s are enabled.protected com.fasterxml.jackson.core.io.IOContext
_ioContext
protected java.io.OutputStream
_out
protected byte[]
_outputBuffer
Intermediate buffer in which contents are buffered before being written using_out
.protected int
_outputEnd
Offset to index after the last valid index in_outputBuffer
.protected int
_outputTail
Pointer to the next available byte in_outputBuffer
-
Fields inherited from class com.fasterxml.jackson.core.base.GeneratorBase
_cfgNumbersAsStrings, _closed, _features, _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 CBORGenerator(com.fasterxml.jackson.core.io.IOContext ctxt, int stdFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out)
CBORGenerator(com.fasterxml.jackson.core.io.IOContext ctxt, int stdFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out, byte[] outputBuffer, int offset, boolean bufferRecyclable)
Alternative constructor that may be used to feed partially initialized content.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected void
_ensureSpace(int needed)
protected void
_flushBuffer()
protected java.lang.UnsupportedOperationException
_notSupported()
protected void
_releaseBuffers()
protected void
_verifyValueWrite(java.lang.String typeMsg)
protected void
_writeChunkedString(char[] text, int offset, int len)
protected void
_writeString(char[] text, int offset, int len)
protected void
_writeString(java.lang.String name)
boolean
canWriteBinaryNatively()
void
close()
CBORGenerator
configure(CBORGenerator.Feature f, boolean state)
void
copyCurrentEvent(com.fasterxml.jackson.core.JsonParser p)
SpecializeJsonGenerator.copyCurrentEvent(com.fasterxml.jackson.core.JsonParser)
to handle tags.void
copyCurrentStructure(com.fasterxml.jackson.core.JsonParser p)
SpecializeJsonGenerator.copyCurrentStructure(com.fasterxml.jackson.core.JsonParser)
to handle tags.CBORGenerator
disable(CBORGenerator.Feature f)
CBORGenerator
enable(CBORGenerator.Feature f)
void
flush()
int
getFormatFeatures()
int
getOutputBuffered()
java.lang.Object
getOutputTarget()
boolean
isEnabled(CBORGenerator.Feature f)
protected void
maybeCopyTag(com.fasterxml.jackson.core.JsonParser p)
com.fasterxml.jackson.core.JsonGenerator
overrideFormatFeatures(int values, int mask)
com.fasterxml.jackson.core.JsonGenerator
overrideStdFeatures(int values, int mask)
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.com.fasterxml.jackson.core.JsonGenerator
useDefaultPrettyPrinter()
No way (or need) to indent anything, so let's block any attempts.com.fasterxml.jackson.core.Version
version()
void
writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, byte[] data, int offset, int len)
int
writeBinary(com.fasterxml.jackson.core.Base64Variant b64variant, java.io.InputStream data, int dataLength)
int
writeBinary(java.io.InputStream data, int dataLength)
void
writeBoolean(boolean state)
void
writeBytes(byte[] data, int offset, int len)
Method for directly inserting specified bytes in output at current position.void
writeEndArray()
void
writeEndObject()
void
writeFieldName(com.fasterxml.jackson.core.SerializableString name)
void
writeFieldName(java.lang.String name)
void
writeNull()
void
writeNumber(double d)
void
writeNumber(float f)
void
writeNumber(int i)
void
writeNumber(long l)
void
writeNumber(java.lang.String encodedValue)
void
writeNumber(java.math.BigDecimal dec)
void
writeNumber(java.math.BigInteger v)
void
writeRaw(byte b)
Method for directly inserting specified byte in output at current position.void
writeRaw(char c)
void
writeRaw(char[] text, int offset, int len)
void
writeRaw(java.lang.String text)
void
writeRaw(java.lang.String text, int offset, int len)
void
writeRawUTF8String(byte[] raw, int offset, int len)
void
writeRawValue(char[] text, int offset, int len)
void
writeRawValue(java.lang.String text)
void
writeRawValue(java.lang.String text, int offset, int len)
void
writeStartArray()
void
writeStartArray(int size)
void
writeStartObject()
void
writeString(char[] text, int offset, int len)
void
writeString(com.fasterxml.jackson.core.SerializableString sstr)
void
writeString(java.lang.String text)
void
writeStringField(java.lang.String fieldName, java.lang.String value)
void
writeTag(int tagId)
Method for writing out an explicit CBOR Tag.void
writeUTF8String(byte[] text, int offset, int len)
-
Methods inherited from class com.fasterxml.jackson.core.base.GeneratorBase
_asString, _checkStdFeatureChanges, _constructDefaultPrettyPrinter, _decodeSurrogate, disable, enable, getCodec, getCurrentValue, getFeatureMask, getOutputContext, isClosed, isEnabled, setCodec, setCurrentValue, setFeatureMask, writeObject, writeRawValue, writeStartObject, writeTree
-
Methods inherited from class com.fasterxml.jackson.core.JsonGenerator
_copyCurrentContents, _reportError, _reportUnsupportedOperation, _throwInternal, _verifyOffsets, _writeSimpleObject, canOmitFields, canUseSchema, canWriteFormattedNumbers, canWriteObjectId, canWriteTypeId, configure, getCharacterEscapes, getHighestEscapedChar, getPrettyPrinter, getSchema, isEnabled, setCharacterEscapes, setHighestNonEscapedChar, setRootValueSeparator, setSchema, writeArray, writeArray, writeArray, writeArrayFieldStart, writeBinary, writeBinary, writeBinaryField, writeBooleanField, writeEmbeddedObject, writeFieldId, writeNullField, writeNumber, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeNumberField, writeObjectField, writeObjectFieldStart, writeObjectId, writeObjectRef, writeOmittedField, writeRaw, writeStartArray, writeStartArray, writeStartObject, writeString, writeTypeId, writeTypePrefix, writeTypeSuffix
-
-
-
-
Field Detail
-
_ioContext
protected final com.fasterxml.jackson.core.io.IOContext _ioContext
-
_out
protected final java.io.OutputStream _out
-
_formatFeatures
protected int _formatFeatures
Bit flag composed of bits that indicate whichCBORGenerator.Feature
s are enabled.
-
_cfgMinimalInts
protected boolean _cfgMinimalInts
-
_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.
-
_charBuffer
protected char[] _charBuffer
Intermediate buffer in which characters of a String are copied before being encoded.
-
_charBufferLength
protected final int _charBufferLength
-
_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.
-
_bufferRecyclable
protected boolean _bufferRecyclable
Flag that indicates whether the output buffer is recycable (and needs to be returned to recycler once we are done) or not.
-
-
Constructor Detail
-
CBORGenerator
public CBORGenerator(com.fasterxml.jackson.core.io.IOContext ctxt, int stdFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out)
-
CBORGenerator
public CBORGenerator(com.fasterxml.jackson.core.io.IOContext ctxt, int stdFeatures, int formatFeatures, com.fasterxml.jackson.core.ObjectCodec codec, java.io.OutputStream out, byte[] outputBuffer, int offset, boolean bufferRecyclable)
Alternative constructor that may be used to feed partially initialized content.- Parameters:
outputBuffer
- Buffer to use for output before flushing to the underlying streamoffset
- Offset pointing past already buffered content; that is, number of bytes of valid content to output, within buffer.
-
-
Method Detail
-
version
public com.fasterxml.jackson.core.Version version()
- Specified by:
version
in interfacecom.fasterxml.jackson.core.Versioned
- Overrides:
version
in classcom.fasterxml.jackson.core.base.GeneratorBase
-
canWriteBinaryNatively
public boolean canWriteBinaryNatively()
- Overrides:
canWriteBinaryNatively
in 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:
useDefaultPrettyPrinter
in 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:
setPrettyPrinter
in classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputTarget
public java.lang.Object getOutputTarget()
- Overrides:
getOutputTarget
in classcom.fasterxml.jackson.core.JsonGenerator
-
getOutputBuffered
public int getOutputBuffered()
- Overrides:
getOutputBuffered
in classcom.fasterxml.jackson.core.JsonGenerator
-
getFormatFeatures
public int getFormatFeatures()
- Overrides:
getFormatFeatures
in classcom.fasterxml.jackson.core.JsonGenerator
-
overrideStdFeatures
public com.fasterxml.jackson.core.JsonGenerator overrideStdFeatures(int values, int mask)
- Overrides:
overrideStdFeatures
in classcom.fasterxml.jackson.core.base.GeneratorBase
-
overrideFormatFeatures
public com.fasterxml.jackson.core.JsonGenerator overrideFormatFeatures(int values, int mask)
- Overrides:
overrideFormatFeatures
in classcom.fasterxml.jackson.core.JsonGenerator
-
writeFieldName
public final void writeFieldName(java.lang.String name) throws java.io.IOException
- Specified by:
writeFieldName
in 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:
writeFieldName
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
writeStringField
public final void writeStringField(java.lang.String fieldName, java.lang.String value) throws java.io.IOException
- Overrides:
writeStringField
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
copyCurrentEvent
public void copyCurrentEvent(com.fasterxml.jackson.core.JsonParser p) throws java.io.IOException
SpecializeJsonGenerator.copyCurrentEvent(com.fasterxml.jackson.core.JsonParser)
to handle tags.- Overrides:
copyCurrentEvent
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
copyCurrentStructure
public void copyCurrentStructure(com.fasterxml.jackson.core.JsonParser p) throws java.io.IOException
SpecializeJsonGenerator.copyCurrentStructure(com.fasterxml.jackson.core.JsonParser)
to handle tags.- Overrides:
copyCurrentStructure
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
maybeCopyTag
protected void maybeCopyTag(com.fasterxml.jackson.core.JsonParser p) throws java.io.IOException
- Throws:
java.io.IOException
-
enable
public CBORGenerator enable(CBORGenerator.Feature f)
-
disable
public CBORGenerator disable(CBORGenerator.Feature f)
-
isEnabled
public final boolean isEnabled(CBORGenerator.Feature f)
-
configure
public CBORGenerator configure(CBORGenerator.Feature f, boolean state)
-
writeTag
public void writeTag(int tagId) throws java.io.IOException
Method for writing out an explicit CBOR Tag.- Parameters:
tagId
- Positive integer (0 or higher)- Throws:
java.io.IOException
- Since:
- 2.5
-
writeRaw
public void writeRaw(byte b) throws java.io.IOException
Method 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.IOException
Method 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:
writeStartArray
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeStartArray
public void writeStartArray(int size) throws java.io.IOException
- Overrides:
writeStartArray
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeEndArray
public final void writeEndArray() throws java.io.IOException
- Specified by:
writeEndArray
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeStartObject
public final void writeStartObject() throws java.io.IOException
- Specified by:
writeStartObject
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeEndObject
public final void writeEndObject() throws java.io.IOException
- Specified by:
writeEndObject
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeString
public void writeString(java.lang.String text) throws java.io.IOException, com.fasterxml.jackson.core.JsonGenerationException
- Specified by:
writeString
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
com.fasterxml.jackson.core.JsonGenerationException
-
writeString
public final void writeString(com.fasterxml.jackson.core.SerializableString sstr) throws java.io.IOException
- Overrides:
writeString
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
writeString
public void writeString(char[] text, int offset, int len) throws java.io.IOException
- Specified by:
writeString
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRawUTF8String
public void writeRawUTF8String(byte[] raw, int offset, int len) throws java.io.IOException
- Specified by:
writeRawUTF8String
in 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:
writeUTF8String
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(java.lang.String text) throws java.io.IOException
- Specified by:
writeRaw
in 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:
writeRaw
in 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:
writeRaw
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRaw
public void writeRaw(char c) throws java.io.IOException
- Specified by:
writeRaw
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeRawValue
public void writeRawValue(java.lang.String text) throws java.io.IOException
- Overrides:
writeRawValue
in 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:
writeRawValue
in 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:
writeRawValue
in 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:
writeBinary
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeBinary
public int writeBinary(java.io.InputStream data, int dataLength) throws java.io.IOException
- Overrides:
writeBinary
in 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:
writeBinary
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
writeBoolean
public void writeBoolean(boolean state) throws java.io.IOException
- Specified by:
writeBoolean
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNull
public void writeNull() throws java.io.IOException
- Specified by:
writeNull
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(int i) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(long l) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.math.BigInteger v) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(double d) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(float f) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.math.BigDecimal dec) throws java.io.IOException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
-
writeNumber
public void writeNumber(java.lang.String encodedValue) throws java.io.IOException, com.fasterxml.jackson.core.JsonGenerationException, java.lang.UnsupportedOperationException
- Specified by:
writeNumber
in classcom.fasterxml.jackson.core.JsonGenerator
- Throws:
java.io.IOException
com.fasterxml.jackson.core.JsonGenerationException
java.lang.UnsupportedOperationException
-
_verifyValueWrite
protected final void _verifyValueWrite(java.lang.String typeMsg) throws java.io.IOException
- Specified by:
_verifyValueWrite
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
flush
public final void flush() throws java.io.IOException
- Specified by:
flush
in interfacejava.io.Flushable
- Specified by:
flush
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
close
public void close() throws java.io.IOException
- Specified by:
close
in interfacejava.lang.AutoCloseable
- Specified by:
close
in interfacejava.io.Closeable
- Overrides:
close
in classcom.fasterxml.jackson.core.base.GeneratorBase
- Throws:
java.io.IOException
-
_writeString
protected final void _writeString(java.lang.String name) throws java.io.IOException
- Throws:
java.io.IOException
-
_ensureSpace
protected final void _ensureSpace(int needed) throws java.io.IOException
- Throws:
java.io.IOException
-
_writeString
protected final void _writeString(char[] text, int offset, int len) throws java.io.IOException
- Throws:
java.io.IOException
-
_writeChunkedString
protected final void _writeChunkedString(char[] text, int offset, int len) throws java.io.IOException
- Throws:
java.io.IOException
-
_releaseBuffers
protected void _releaseBuffers()
- Specified by:
_releaseBuffers
in classcom.fasterxml.jackson.core.base.GeneratorBase
-
_flushBuffer
protected final void _flushBuffer() throws java.io.IOException
- Throws:
java.io.IOException
-
_notSupported
protected java.lang.UnsupportedOperationException _notSupported()
-
-