JsonGenerator implementation that writes CBOR encoded content.
| Modifier and Type | Class and Description |
|---|---|
| public static enum | CBORGenerator.
Enumeration that defines all togglable features for CBOR generator. |
| Modifier and Type | Field and 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 | |
| protected boolean | |
| protected char[] | _charBuffer
Intermediate buffer in which characters of a String are copied before being encoded. |
| protected final int | |
| protected int | _currentRemainingElements
Number of elements remaining in the current complex structure (if any), when writing defined-length Arrays, Objects; marker {code INDEFINITE_LENGTH} otherwise. |
| protected int[] | |
| protected int | |
| protected int | _formatFeatures
Bit flag composed of bits that indicate which
|
| protected final OutputStream | |
| protected byte[] | _outputBuffer
Intermediate buffer in which contents are buffered before being written
using |
| protected final int | _outputEnd
Offset to index after the last valid index in |
| protected int | _outputTail
Pointer to the next available byte in |
| protected final StreamWriteConstraints | |
| protected CBORWriteContext | |
| protected HashMap | _stringRefs
Table of previously referenced text and binary strings when the STRINGREF feature is used. |
| protected static final int | BYTE_BUFFER_FOR_OUTPUT
Let's ensure that we have big enough output buffer because of safety margins we need for UTF-8 encoding. |
| private static final int | INDEFINITE_LENGTH
Special value that is use to keep tracks of arrays and maps opened with infinite length |
| private static final int | MAX_LONG_STRING_BYTES
This is the worst case length (in bytes) of maximum chunk we ever write. |
| private static final int | MAX_LONG_STRING_CHARS
Longest char chunk we will output is chosen so that it is guaranteed to fit in an empty buffer even if everything encoded in 3-byte sequences; but also fit two full chunks in case of single-byte (ascii) output. |
| private static final int | |
| private static final int | |
| private static final int | |
| private static final int | |
| 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. |
| private static final int[] | |
| protected static final int | REPLACEMENT_CHAR
The replacement character to use to fix invalid Unicode sequences (mismatched surrogate pair). |
| Access | Constructor and Description |
|---|---|
| public | CBORGenerator(IOContext ioCtxt, int stdFeatures, int formatFeatures, ObjectCodec codec, OutputStream out)
|
| public | CBORGenerator(IOContext ioCtxt, int stdFeatures, int formatFeatures, ObjectCodec codec, OutputStream out, byte[]
Buffer to use for output before flushing to the underlying stream outputBuffer, int Offset pointing past already buffered content; that is, number
of bytes of valid content to output, within buffer. offset, boolean bufferRecyclable)Alternative constructor that may be used to feed partially initialized content. |
| Modifier and Type | Method and Description |
|---|---|
| private int | |
| private int | |
| private final int | _encode(int outputPtr, 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 final int | |
| private final int | |
| private final void | |
| protected final void | |
| private void | |
| protected final void | |
| private int | |
| private int | |
| protected UnsupportedOperationException | |
| private final void | |
| protected void | _releaseBuffers()
Implements abstract com. Method called to release any buffers generator may be holding, once generator is being closed. |
| private final int | _shortUTF8Encode2(char[] str, int i, int end, int outputPtr, int outputStart)
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. |
| protected final void | _verifyValueWrite(String
Additional message used for generating exception message
if value output is NOT legal in current generator output state. typeMsg)Implements abstract com. Method called before trying to write a value (scalar or structured), to verify that this is legal in current output state, as well as to output separators if and as necessary. |
| protected void | |
| private final void | |
| private final void | |
| private final int | |
| private final void | |
| protected final void | |
| private final void | |
| private final void | |
| private final void | |
| private final void | |
| private final void | |
| private final void | |
| private final void | |
| private final void | |
| private final void | |
| protected final void | |
| protected final int | |
| public void | assignCurrentValue(Object
Current value to assign for the current context of this generator v)Overrides com. Helper method, usually equivalent to:
|
| public boolean | canWriteBinaryNatively()
Overrides com. Introspection method that may be called to see if the underlying data format supports "native" binary data; that is, an efficient output of binary content without encoding. |
| public void | close()
Overrides com. Implements java. Method called to close this generator, so that no more content can be written. |
| private final void | |
| public CBORGenerator | |
| public Object | currentValue()
Overrides com. Helper method, usually equivalent to:
Note that "current value" is NOT populated (or used) by Streaming parser or generators; it is only used by higher-level data-binding functionality. |
| public CBORGenerator | |
| public CBORGenerator | |
| public final void | flush()
Implements abstract com. Implements java. Method called to flush any buffered content to the underlying target (output stream, writer), and to flush the target itself as well. |
| public Object | getCurrentValue()
Overrides com.
Deprecated
Alias for |
| public int | getFormatFeatures()
Overrides com. Bulk access method for getting state of all |
| public int | getOutputBuffered()
Overrides com. Method for verifying amount of content that is buffered by generator but not yet flushed to the underlying target (stream, writer), in units (byte, char) that the generator implementation uses for buffering; or -1 if this information is not available. |
| public JsonStreamContext | getOutputContext()
Overrides com. Note type was co-variant until Jackson 2.7; reverted back to base type in 2.8 to allow for overriding by subtypes that use custom context type. |
| public Object | getOutputTarget()
Overrides com. Method that can be used to get access to object that is used
as target for generated output; this is usually either
|
| public JacksonFeatureSet | getWriteCapabilities()
Overrides com. Accessor for getting metadata on capabilities of this generator, based on underlying data format being read (directly or indirectly). |
| public final boolean | |
| public JsonGenerator | overrideFormatFeatures(int
Bit mask of set/clear state for features to change values, int Bit mask of features to change mask)Overrides com. Bulk set method for (re)setting states of |
| public JsonGenerator | overrideStdFeatures(int
Bit mask of set/clear state for features to change values, int Bit mask of features to change mask)Overrides com. Bulk set method for (re)setting states of features specified by |
| public void | setCurrentValue(Object
Current value to assign for the current context of this generator v)Overrides com.
Deprecated
Alias for |
| public JsonGenerator | setPrettyPrinter(PrettyPrinter
PrettyPrinter to assign, if any; null if noneOverrides com. No way (or need) to indent anything, so let's block any attempts. |
| public StreamWriteConstraints | streamWriteConstraints()
Overrides com. Get the constraints to apply when performing streaming writes. |
| public JsonGenerator | useDefaultPrettyPrinter()
Overrides com. No way (or need) to indent anything, so let's block any attempts. |
| public Version | version()
Overrides com. Implements com. Implemented with standard version number detection algorithm, typically using a simple generated class, with information extracted from Maven project file during build. |
| public void | writeArray(int[]
Array that contains values to write array, int Offset of the first element to write, within array offset, int Number of elements in array to write, from `offset` to `offset + len - 1` length)Overrides com. Value write method that can be called to write a single
array (sequence of |
| public void | writeArray(long[]
Array that contains values to write array, int Offset of the first element to write, within array offset, int Number of elements in array to write, from `offset` to `offset + len - 1` length)Overrides com. Value write method that can be called to write a single
array (sequence of |
| public void | writeArray(double[]
Array that contains values to write array, int Offset of the first element to write, within array offset, int Number of elements in array to write, from `offset` to `offset + len - 1` length)Overrides com. Value write method that can be called to write a single
array (sequence of |
| public void | writeBinary(Base64Variant
Base64 variant to use: defines details such as
whether padding is used (and if so, using which character);
what is the maximum line length before adding linefeed,
and also the underlying alphabet to use. b64variant, byte[] Buffer that contains binary data to write data, int Offset in offset, int data of the first byte of data to writeLength of data to write len)Implements abstract com. Method that will output given chunk of binary data as base64 encoded, as a complete String value (surrounded by double quotes). |
| public int | writeBinary(InputStream
InputStream to use for reading binary data to write.
Will not be closed after successful write operation data, int (optional) number of bytes that will be available;
or -1 to be indicate it is not known. Note that implementations
need not support cases where length is not known in advance; this
depends on underlying data format: JSON output does NOT require length,
other formats may dataLength)Overrides com. Similar to |
| public int | writeBinary(Base64Variant
Base64 variant to use b64variant, InputStream InputStream to use for reading binary data to write.
Will not be closed after successful write operation data, int (optional) number of bytes that will be available;
or -1 to be indicate it is not known.
If a positive length is given, dataLength)data MUST provide at least
that many bytes: if not, an exception will be thrown.
Note that implementations
need not support cases where length is not known in advance; this
depends on underlying data format: JSON output does NOT require length,
other formats may.Overrides com. Method similar to |
| public void | writeBoolean(boolean
Boolean value to write state)Implements abstract com. Method for outputting literal JSON boolean value (one of Strings 'true' and 'false'). |
| public void | writeBytes(byte[] data, int offset, int len)
Method for directly inserting specified bytes in output at current position. |
| public final void | writeEndArray()
Implements abstract com. Method for writing closing marker of a JSON Array value (character ']'; plus possible white space decoration if pretty-printing is enabled). |
| public final void | writeEndObject()
Implements abstract com. Method for writing closing marker of an Object value (character '}'; plus possible white space decoration if pretty-printing is enabled). |
| public final void | writeFieldId(long
Field id to write id)Overrides com. Alternative to |
| public final void | writeFieldName(String
Field name to write name)Implements abstract com. Method for writing a field name (JSON String surrounded by double quotes: syntactically identical to a JSON String value), possibly decorated by white space if pretty-printing is enabled. |
| public final void | writeFieldName(SerializableString
Field name to write name)Overrides com. Method similar to |
| public void | writeNull()
Implements abstract com. Method for outputting literal JSON null value. |
| public void | writeNumber(int
Number value to write i)Implements abstract com. Method for outputting given value as JSON number. |
| public void | writeNumber(long
Number value to write l)Implements abstract com. Method for outputting given value as JSON number. |
| public void | writeNumber(BigInteger
Number value to write v)Implements abstract com. Method for outputting given value as JSON number. |
| public void | writeNumber(double
Number value to write d)Implements abstract com. Method for outputting indicate JSON numeric value. |
| public void | writeNumber(float
Number value to write f)Implements abstract com. Method for outputting indicate JSON numeric value. |
| public void | writeNumber(BigDecimal
Number value to write dec)Implements abstract com. Method for outputting indicate JSON numeric value. |
| public void | writeNumber(String
Textual (possibly formatted) number representation to write encodedValue)Implements abstract com. Write method that can be used for custom numeric types that can not be (easily?) converted to "standard" Java number types. |
| public void | writeRaw(String
Textual contents to include as-is in output. text)Implements abstract com. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public void | writeRaw(String
String that has contents to include as-is in output text, int Offset within offset, int text of the first character to outputLength of content (from len)text, starting at offset offset) to outputImplements abstract com. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public void | writeRaw(char[]
Buffer that has contents to include as-is in output text, int Offset within offset, int text of the first character to outputLength of content (from len)text, starting at offset offset) to outputImplements abstract com. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public void | writeRaw(char
Character to included in output c)Implements abstract com. Method that will force generator to copy input text verbatim with no modifications (including that no escaping is done and no separators are added even if context [array, object] would otherwise require such). |
| public void | |
| public void | writeRawUTF8String(byte[]
Buffer that contains String value to write raw, int Offset in offset, int buffer of the first byte of String value to writeLength of the String value (in characters) to write len)Implements abstract com. Method similar to |
| public void | writeRawValue(String
Textual contents to included in output text)Overrides com. Method that will force generator to copy input text verbatim without any modifications, but assuming it must constitute a single legal JSON value (number, string, boolean, null, Array or List). |
| public void | writeRawValue(String text, int offset, int len)
Overrides com.
|
| public void | writeRawValue(char[] text, int offset, int len)
Overrides com.
|
| public final void | writeStartArray()
Implements abstract com. Method for writing starting marker of a Array value (for JSON this is character '['; plus possible white space decoration if pretty-printing is enabled). |
| public void | writeStartArray(Object
"Current value" to assign for the Array context being created forValue)Overrides com. Method for writing start marker of an Array value, similar
to |
| public void | writeStartArray(Object
"Current value" to assign for the Array context being created forValue, int Number of elements this Array will have: actual
number of values written (before matching call to
elementsToWrite)writeEndArray() MUST match; generator MAY verify
this is the case (and SHOULD if format itself encodes length)Overrides com. Method for writing start marker of an Array value, similar
to |
| public void | writeStartArray(int
Number of elements this array will have: actual
number of values written (before matching call to
elementsToWrite)writeEndArray() MUST match; generator MAY verify
this is the case (and SHOULD if format itself encodes length)Overrides com.
Deprecated
Method for writing start marker of an Array value, similar
to |
| public final void | writeStartObject()
Implements abstract com. Method for writing starting marker of an Object value (character '{'; plus possible white space decoration if pretty-printing is enabled). |
| public final void | writeStartObject(Object
"Current value" to assign for the Object context being created forValue)Overrides com. Method for writing starting marker of an Object value to represent the given Java Object value. |
| public final void | |
| public void | writeStartObject(Object
"Current value" to assign for the Object context being created forValue, int Number of key/value pairs this Object will have: actual
number of entries written (before matching call to
elementsToWrite)writeEndObject() MUST match; generator MAY verify
this is the case (and SHOULD if format itself encodes length)Overrides com. Method for writing starting marker of an Object value to represent the given Java Object value. |
| public void | writeString(String
Text value to write text)Implements abstract com. Method for outputting a String value. |
| public final void | writeString(SerializableString
Pre-encoded String value to write sstr)Overrides com. Method similar to |
| public void | writeString(char[]
Buffer that contains String value to write text, int Offset in offset, int buffer of the first character of String value to writeLength of the String value (in characters) to write len)Implements abstract com. Method for outputting a String value. |
| public void | |
| public final void | writeUTF8String(byte[]
Buffer that contains String value to write text, int Offset in offset, int buffer of the first byte of String value to writeLength of the String value (in characters) to write len)Implements abstract com. Method similar to |