Module org.apache.qpid.protonj2
Interface PrimitiveArrayTypeDecoder
- All Superinterfaces:
PrimitiveTypeDecoder<Object>,StreamTypeDecoder<Object>,TypeDecoder<Object>
- All Known Implementing Classes:
AbstractArrayTypeDecoder,Array32TypeDecoder,Array8TypeDecoder
Provides an interface for an Array type decoder that provides the Proton decoder
with entry points to read arrays in a manner that support the desired Java array
type to be returned.
-
Method Summary
Modifier and TypeMethodDescriptionintreadCount(InputStream stream, StreamDecoderState state) Reads the number of elements in the encoded primitive from the givenInputStreamand returns it.intreadCount(ProtonBuffer buffer, DecoderState state) Reads the number of elements in the encoded primitive array from the given buffer and returns it.readValue(InputStream stream, StreamDecoderState state, Class<?> ofType) Reads the given array from the bytes in the buffer but only if the type encoding of the given array matches the givenClassfilter.readValue(ProtonBuffer buffer, DecoderState state, Class<?> ofType) Reads the given array from the bytes in the buffer but only if the type encoding of the given array matches the givenClassfilter.static voidvalidateArrayConstraints(int count, InputStream stream, StreamDecoderState state, PrimitiveTypeDecoder<?> decoder) Validates the basic requirements for the count field of an array encoding.static voidvalidateArrayConstraints(int count, ProtonBuffer buffer, DecoderState state, PrimitiveTypeDecoder<?> decoder) Validates the basic requirements for the count field of an array encoding.Methods inherited from interface org.apache.qpid.protonj2.codec.decoders.PrimitiveTypeDecoder
getTypeCode, isJavaPrimitive, isPrimitive, isZeroWidth, readPrimitiveArray, readPrimitiveArrayMethods inherited from interface org.apache.qpid.protonj2.codec.StreamTypeDecoder
getTypeClass, isArrayType, isNull, readArrayElements, readSize, readValue, skipValueMethods inherited from interface org.apache.qpid.protonj2.codec.TypeDecoder
getTypeClass, isArrayType, isNull, readArrayElements, readSize, readValue, skipValue
-
Method Details
-
readValue
Reads the given array from the bytes in the buffer but only if the type encoding of the given array matches the givenClassfilter. This allows the caller to effectively limit if the given array is decoded at all if the type encoding is not a match and also can act to limit an array to only a single level as the type encoding of nested arrays will not be the value type until the bottom of the array is reached. To allow all types and any array nesting the caller should pass theObjectclass.- Parameters:
buffer- the source of encoded data.state- the current state of the decoder.ofType- the type encoding of the desired array.- Returns:
- the next instance in the byte stream that this decoder handles.
- Throws:
DecodeException- if an error is encountered while reading the next value.
-
readValue
Object readValue(InputStream stream, StreamDecoderState state, Class<?> ofType) throws DecodeException Reads the given array from the bytes in the buffer but only if the type encoding of the given array matches the givenClassfilter. This allows the caller to effectively limit if the given array is decoded at all if the type encoding is not a match and also can act to limit an array to only a single level as the type encoding of nested arrays will not be the value type until the bottom of the array is reached. To allow all types and any array nesting the caller should pass theObjectclass.- Parameters:
stream- the source of encoded data.state- the current state of the decoder.ofType- the type encoding of the desired array.- Returns:
- the next instance in the stream that this decoder handles.
- Throws:
DecodeException- if an error is encountered while reading the next value.
-
readCount
Reads the number of elements in the encoded primitive array from the given buffer and returns it. Since this methods advances the read position of the provided buffer the caller must either reset that based on a previous mark or they must read the primitive payload manually as the decoder would not be able to read the value as it has no retained state.- Parameters:
buffer- the source of encoded data.state- the current state of the decoder.- Returns:
- the size in bytes of the encoded primitive value.
- Throws:
DecodeException- if an error is encountered while reading the encoded size.
-
readCount
Reads the number of elements in the encoded primitive from the givenInputStreamand returns it. Since this methods advances the read position of the provided stream the caller must either reset that based on a previous mark or they must read the primitive payload manually as the decoder would not be able to read the value as it has no retained state.- Parameters:
stream- the source of encoded data.state- the current state of the decoder.- Returns:
- the size in bytes of the encoded primitive value.
- Throws:
DecodeException- if an error is encountered while reading the encoded size.
-
validateArrayConstraints
static void validateArrayConstraints(int count, ProtonBuffer buffer, DecoderState state, PrimitiveTypeDecoder<?> decoder) throws DecodeException Validates the basic requirements for the count field of an array encoding.- Parameters:
count- The count value read from the byte sourcebuffer- The byte source that contains the remaining encoded bytesstate- The decoder state used during this decode operation.decoder- The type encoder that is performing the current decode.- Throws:
DecodeException- if the count value violates the constraints.
-
validateArrayConstraints
static void validateArrayConstraints(int count, InputStream stream, StreamDecoderState state, PrimitiveTypeDecoder<?> decoder) throws DecodeException Validates the basic requirements for the count field of an array encoding.- Parameters:
count- The count value read from the byte sourcestream- The byte source that contains the remaining encoded bytesstate- The decoder state used during this decode operation.decoder- The type encoder that is performing the current decode.- Throws:
DecodeException- if the count value violates the constraints.
-