Package org.xipki.apppackage.cbor
Class CborEncoder
- java.lang.Object
-
- org.xipki.apppackage.cbor.CborEncoder
-
public class CborEncoder extends Object
Provides an encoder capable of encoding data into CBOR format to a givenOutputStream.
-
-
Constructor Summary
Constructors Constructor Description CborEncoder(OutputStream os)Creates a newCborEncoderinstance.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidwriteArrayStart(int length)Writes the start of a definite-length array.voidwriteBoolean(boolean value)Writes a boolean value in canonical CBOR format.voidwriteByteString(byte[] bytes)Writes a byte string in canonical CBOR-format.voidwriteInt(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.voidwriteNull()Writes anullvalue in canonical CBOR format.protected voidwriteSimpleType(int majorType, int value)Encodes and writes the major type and value as a simple type.protected voidwriteString(int majorType, byte[] bytes)Writes a byte string in canonical CBOR-format.voidwriteTextString(String value)Writes an UTF-8 string in canonical CBOR-format.protected voidwriteType(int majorType, long value)Encodes and writes the major type indicator with a given payload (length).protected voidwriteUInt(int mt, long value)Encodes and writes an unsigned integer value, that is, tries to encode it in a little bytes as possible.protected voidwriteUInt16(int mt, int value)Encodes and writes an unsigned 16-bit integer valueprotected voidwriteUInt32(int mt, int value)Encodes and writes an unsigned 32-bit integer valueprotected voidwriteUInt64(int mt, long value)Encodes and writes an unsigned 64-bit integer valueprotected voidwriteUInt8(int mt, int value)Encodes and writes an unsigned 8-bit integer value
-
-
-
Constructor Detail
-
CborEncoder
public CborEncoder(OutputStream os)
Creates a newCborEncoderinstance.- Parameters:
os- the actual output stream to write the CBOR-encoded data to, cannot benull.
-
-
Method Detail
-
writeArrayStart
public void writeArrayStart(int length) throws IOExceptionWrites the start of a definite-length array.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.
- Parameters:
length- the number of array elements to write, should >= 0.- Throws:
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.
-
writeBoolean
public void writeBoolean(boolean value) throws IOExceptionWrites a boolean value in canonical CBOR format.- Parameters:
value- the boolean to write.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeByteString
public void writeByteString(byte[] bytes) throws IOExceptionWrites a byte string in canonical CBOR-format.- Parameters:
bytes- the byte string to write, can benullin which case a byte-string of length 0 is written.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeInt
public void writeInt(long value) throws IOExceptionWrites a signed or unsigned integer value in canonical CBOR format, that is, tries to encode it in a little bytes as possible.- Parameters:
value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeNull
public void writeNull() throws IOExceptionWrites anullvalue in canonical CBOR format.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeTextString
public void writeTextString(String value) throws IOException
Writes an UTF-8 string in canonical CBOR-format.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.
- Parameters:
value- the UTF-8 string to write, can benullin which case an UTF-8 string of length 0 is written.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeSimpleType
protected void writeSimpleType(int majorType, int value) throws IOExceptionEncodes and writes the major type and value as a simple type.- Parameters:
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.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeString
protected void writeString(int majorType, byte[] bytes) throws IOExceptionWrites a byte string in canonical CBOR-format.- Parameters:
majorType- the major type of the string, should be either 0x40 or 0x60;bytes- the byte string to write, can benullin which case a byte-string of length 0 is written.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeType
protected void writeType(int majorType, long value) throws IOExceptionEncodes and writes the major type indicator with a given payload (length).- Parameters:
majorType- the major type of the value to write, denotes what semantics the written value has;value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeUInt
protected void writeUInt(int mt, long value) throws IOExceptionEncodes and writes an unsigned integer value, that is, tries to encode it in a little bytes as possible.- Parameters:
mt- the major type of the value to write, denotes what semantics the written value has;value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeUInt16
protected void writeUInt16(int mt, int value) throws IOExceptionEncodes and writes an unsigned 16-bit integer value- Parameters:
mt- the major type of the value to write, denotes what semantics the written value has;value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeUInt32
protected void writeUInt32(int mt, int value) throws IOExceptionEncodes and writes an unsigned 32-bit integer value- Parameters:
mt- the major type of the value to write, denotes what semantics the written value has;value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeUInt64
protected void writeUInt64(int mt, long value) throws IOExceptionEncodes and writes an unsigned 64-bit integer value- Parameters:
mt- the major type of the value to write, denotes what semantics the written value has;value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
writeUInt8
protected void writeUInt8(int mt, int value) throws IOExceptionEncodes and writes an unsigned 8-bit integer value- Parameters:
mt- the major type of the value to write, denotes what semantics the written value has;value- the value to write, values fromLong.MIN_VALUEtoLong.MAX_VALUEare supported.- Throws:
IOException- in case of I/O problems writing the CBOR-encoded value to the underlying output stream.
-
-