Module org.apache.qpid.protonj2
Class AbstractArrayTypeDecoder
java.lang.Object
org.apache.qpid.protonj2.codec.decoders.AbstractPrimitiveTypeDecoder<Object>
org.apache.qpid.protonj2.codec.decoders.primitives.AbstractArrayTypeDecoder
- All Implemented Interfaces:
PrimitiveArrayTypeDecoder,PrimitiveTypeDecoder<Object>,StreamTypeDecoder<Object>,TypeDecoder<Object>
- Direct Known Subclasses:
Array32TypeDecoder,Array8TypeDecoder
public abstract class AbstractArrayTypeDecoder
extends AbstractPrimitiveTypeDecoder<Object>
implements PrimitiveArrayTypeDecoder
Base for the decoders of AMQP Array types that defaults to returning opaque Object
values to match what the other decoders do. External decoding tools will need to use
the
TypeDecoder.isArrayType() checks to determine how they want
to read and return array types.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionReturns the Class that this decoder handles.booleanReturns true if the underlying type that is going to be decoded is an array type.readValue(InputStream stream, StreamDecoderState state) Reads the next type 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) Reads the next type from the given buffer and returns it.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.voidskipValue(InputStream stream, StreamDecoderState state) Skips over the bytes that compose the type this descriptor decodes.voidskipValue(ProtonBuffer buffer, DecoderState state) Skips over the bytes that compose the type this descriptor decodes.Methods inherited from class org.apache.qpid.protonj2.codec.decoders.AbstractPrimitiveTypeDecoder
isJavaPrimitive, isNull, readArrayElements, readArrayElementsMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.apache.qpid.protonj2.codec.decoders.PrimitiveArrayTypeDecoder
readCount, readCountMethods 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
isNull, readArrayElements, readSizeMethods inherited from interface org.apache.qpid.protonj2.codec.TypeDecoder
isNull, readArrayElements, readSize
-
Constructor Details
-
AbstractArrayTypeDecoder
public AbstractArrayTypeDecoder()
-
-
Method Details
-
getTypeClass
Description copied from interface:TypeDecoderReturns the Class that this decoder handles.- Specified by:
getTypeClassin interfaceStreamTypeDecoder<Object>- Specified by:
getTypeClassin interfaceTypeDecoder<Object>- Returns:
- the Class that this decoder handles
-
isArrayType
public boolean isArrayType()Description copied from interface:TypeDecoderReturns true if the underlying type that is going to be decoded is an array type.- Specified by:
isArrayTypein interfaceStreamTypeDecoder<Object>- Specified by:
isArrayTypein interfaceTypeDecoder<Object>- Overrides:
isArrayTypein classAbstractPrimitiveTypeDecoder<Object>- Returns:
- true if the underlying type that is going to be decoded is an array type
-
readValue
Description copied from interface:TypeDecoderReads the next type from the given buffer and returns it.- Specified by:
readValuein interfaceTypeDecoder<Object>- Parameters:
buffer- the source of encoded data.state- the current state of the decoder.- Returns:
- the next instance in the stream that this decoder handles.
- Throws:
DecodeException- if an error is encountered while reading the next value.
-
readValue
public Object readValue(ProtonBuffer buffer, DecoderState state, Class<?> ofType) throws DecodeException Description copied from interface:PrimitiveArrayTypeDecoderReads 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.- Specified by:
readValuein interfacePrimitiveArrayTypeDecoder- 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
Description copied from interface:StreamTypeDecoderReads the next type from the given buffer and returns it.- Specified by:
readValuein interfaceStreamTypeDecoder<Object>- Parameters:
stream- the source of encoded data.state- the current state of the decoder.- Returns:
- the next instance in the stream that this decoder handles.
- Throws:
DecodeException- if an error is encountered while reading the next value.
-
readValue
public Object readValue(InputStream stream, StreamDecoderState state, Class<?> ofType) throws DecodeException Description copied from interface:PrimitiveArrayTypeDecoderReads 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.- Specified by:
readValuein interfacePrimitiveArrayTypeDecoder- 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.
-
skipValue
Description copied from interface:TypeDecoderSkips over the bytes that compose the type this descriptor decodes.Skipping values can be used when the type is not used or processed by the application doing the decoding. An example might be an AMQP message decoder that only needs to decode certain parts of the message and not others.
- Specified by:
skipValuein interfaceTypeDecoder<Object>- Parameters:
buffer- The buffer that contains the encoded type.state- The decoder state.- Throws:
DecodeException- if an error occurs while skipping the value.
-
skipValue
Description copied from interface:StreamTypeDecoderSkips over the bytes that compose the type this descriptor decodes.Skipping values can be used when the type is not used or processed by the application doing the decoding. An example might be an AMQP message decoder that only needs to decode certain parts of the message and not others.
- Specified by:
skipValuein interfaceStreamTypeDecoder<Object>- Parameters:
stream- The stream that contains the encoded type.state- The decoder state.- Throws:
DecodeException- if an error occurs while skipping the value.
-