public class CborEncoder extends Object
OutputStream
.Constructor and Description |
---|
CborEncoder(OutputStream os)
Creates a new
CborEncoder instance. |
Modifier and Type | Method and Description |
---|---|
void |
writeArrayStart()
Writes the start of an indefinite-length array.
|
void |
writeArrayStart(int length)
Writes the start of a definite-length array.
|
void |
writeBoolean(boolean value)
Writes a boolean value in canonical CBOR format.
|
void |
writeBreak()
Writes a "break" stop-value in canonical CBOR format.
|
void |
writeByteString(byte[] bytes)
Writes a byte string in canonical CBOR-format.
|
void |
writeByteStringStart()
Writes the start of an indefinite-length byte string.
|
void |
writeDouble(double value)
Writes a double-precision float value in canonical CBOR format.
|
void |
writeFloat(float value)
Writes a single-precision float value in canonical CBOR format.
|
void |
writeHalfPrecisionFloat(float value)
Writes a half-precision float value in canonical CBOR format.
|
void |
writeInt(long value)
Writes a signed or unsigned integer value in canonical CBOR format, that is, tries to encode it in a little bytes as possible.
|
void |
writeInt16(int value)
Writes a signed or unsigned 16-bit integer value in CBOR format.
|
void |
writeInt32(long value)
Writes a signed or unsigned 32-bit integer value in CBOR format.
|
void |
writeInt64(long value)
Writes a signed or unsigned 64-bit integer value in CBOR format.
|
void |
writeInt8(int value)
Writes a signed or unsigned 8-bit integer value in CBOR format.
|
void |
writeMapStart()
Writes the start of an indefinite-length map.
|
void |
writeMapStart(int length)
Writes the start of a finite-length map.
|
void |
writeNull()
Writes a
null value in canonical CBOR format. |
protected void |
writeSimpleType(int majorType,
int value)
Encodes and writes the major type and value as a simple type.
|
void |
writeSimpleValue(byte simpleValue)
Writes a simple value, i.e., an "atom" or "constant" value in canonical CBOR format.
|
void |
writeSmallInt(int value)
Writes a signed or unsigned small (<= 23) integer value in CBOR format.
|
protected void |
writeString(int majorType,
byte[] bytes)
Writes a byte string in canonical CBOR-format.
|
void |
writeTag(long tag)
Writes a semantic tag in canonical CBOR format.
|
void |
writeTextString(String value)
Writes an UTF-8 string in canonical CBOR-format.
|
void |
writeTextStringStart()
Writes the start of an indefinite-length UTF-8 string.
|
protected void |
writeType(int majorType,
long value)
Encodes and writes the major type indicator with a given payload (length).
|
protected void |
writeUInt(int mt,
long value)
Encodes and writes an unsigned integer value, that is, tries to encode it in a little bytes as possible.
|
protected void |
writeUInt16(int mt,
int value)
Encodes and writes an unsigned 16-bit integer value.
|
protected void |
writeUInt32(int mt,
int value)
Encodes and writes an unsigned 32-bit integer value.
|
protected void |
writeUInt64(int mt,
long value)
Encodes and writes an unsigned 64-bit integer value.
|
protected void |
writeUInt8(int mt,
int value)
Encodes and writes an unsigned 8-bit integer value.
|
void |
writeUndefined()
Writes an "undefined" value in canonical CBOR format.
|
public CborEncoder(OutputStream os)
CborEncoder
instance.os
- the actual output stream to write the CBOR-encoded data to, cannot be null
.public void writeArrayStart() throws IOException
After calling this method, one is expected to write the given number of array elements, which can be of any type. No length checks are performed.
After all array elements are written, one should write a single break value to end the array, see writeBreak()
.
IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeArrayStart(int length) throws IOException, IllegalArgumentException
After calling this method, one is expected to write the given number of array elements, which can be of any type. No length checks are performed.
length
- the number of array elements to write, should >= 0.IllegalArgumentException
- in case the given length was negative;IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeBoolean(boolean value) throws IOException
value
- the boolean to write.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeBreak() throws IOException
IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeByteString(@Nullable byte[] bytes) throws IOException
bytes
- the byte string to write, can be null
in which case a byte-string of length 0
is written.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeByteStringStart() throws IOException
After calling this method, one is expected to write the given number of string parts. No length checks are performed.
After all string parts are written, one should write a single break value to end the string, see writeBreak()
.
IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeDouble(double value) throws IOException
value
- the value to write, values from Double.MIN_VALUE
to Double.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeFloat(float value) throws IOException
value
- the value to write, values from Float.MIN_VALUE
to Float.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeHalfPrecisionFloat(float value) throws IOException
value
- the value to write, values from Float.MIN_VALUE
to Float.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeInt(long value) throws IOException
value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeInt16(int value) throws IOException
value
- the value to write, values from [-65536..65535]
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeInt32(long value) throws IOException
value
- the value to write, values in the range [-4294967296..4294967295]
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeInt64(long value) throws IOException
value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeInt8(int value) throws IOException
value
- the value to write, values in the range [-256..255]
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeMapStart() throws IOException
After calling this method, one is expected to write any number of map entries, as separate key and value. Keys and values can both be of any type. No length checks are performed.
After all map entries are written, one should write a single break value to end the map, see writeBreak()
.
IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeMapStart(int length) throws IOException, IllegalArgumentException
After calling this method, one is expected to write any number of map entries, as separate key and value. Keys and values can both be of any type. No length checks are performed.
length
- the number of map entries to write, should >= 0.IllegalArgumentException
- in case the given length was negative;IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeNull() throws IOException
null
value in canonical CBOR format.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeSimpleType(int majorType, int value) throws IOException
majorType
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from [0..31] are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeSimpleValue(byte simpleValue) throws IOException
simpleValue
- the (unsigned byte) value to write, values from 32
to 255
are supported (though not enforced).IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeSmallInt(int value) throws IOException
value
- the value to write, values in the range [-24..23]
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeString(int majorType, @Nullable byte[] bytes) throws IOException
majorType
- the major type of the string, should be either 0x40 or 0x60;bytes
- the byte string to write, can be null
in which case a byte-string of length 0
is written.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeTag(long tag) throws IOException, IllegalArgumentException
tag
- the tag to write, should >= 0.IllegalArgumentException
- in case the given tag was negative;IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeTextString(@Nullable String value) throws IOException
Note that this method is platform specific, as the given string value will be encoded in a byte array using the platform encoding! This means that the encoding must be standardized and known.
value
- the UTF-8 string to write, can be null
in which case an UTF-8 string of length 0
is written.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeTextStringStart() throws IOException
After calling this method, one is expected to write the given number of string parts. No length checks are performed.
After all string parts are written, one should write a single break value to end the string, see writeBreak()
.
IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeType(int majorType, long value) throws IOException
majorType
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeUInt(int mt, long value) throws IOException
mt
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeUInt16(int mt, int value) throws IOException
mt
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeUInt32(int mt, int value) throws IOException
mt
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeUInt64(int mt, long value) throws IOException
mt
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.protected void writeUInt8(int mt, int value) throws IOException
mt
- the major type of the value to write, denotes what semantics the written value has;value
- the value to write, values from Long.MIN_VALUE
to Long.MAX_VALUE
are supported.IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.public void writeUndefined() throws IOException
IOException
- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.