Class AbstractDescribedTypeDecoder<V>

java.lang.Object
org.apache.qpid.protonj2.codec.decoders.AbstractDescribedTypeDecoder<V>
Type Parameters:
V - The type that this decoder handles.
All Implemented Interfaces:
DescribedTypeDecoder<V>, StreamDescribedTypeDecoder<V>, StreamTypeDecoder<V>, TypeDecoder<V>
Direct Known Subclasses:
AbstractDescribedListTypeDecoder, AbstractDescribedMapTypeDecoder, AmqpSequenceTypeDecoder, AmqpValueTypeDecoder, DataTypeDecoder, UnknownDescribedTypeDecoder

public abstract class AbstractDescribedTypeDecoder<V> extends Object implements DescribedTypeDecoder<V>, StreamDescribedTypeDecoder<V>
Abstract base for all Described Type decoders which implements the generic methods common to all the implementations.
  • Constructor Details

    • AbstractDescribedTypeDecoder

      public AbstractDescribedTypeDecoder()
  • Method Details

    • isArrayType

      public boolean isArrayType()
      Specified by:
      isArrayType in interface StreamTypeDecoder<V>
      Specified by:
      isArrayType in interface TypeDecoder<V>
      Returns:
      true if the underlying type that is going to be decoded is an array type
    • isNull

      public boolean isNull()
      Specified by:
      isNull in interface StreamTypeDecoder<V>
      Specified by:
      isNull in interface TypeDecoder<V>
      Returns:
      true if the underlying type is the null type meaning there are no bytes to decode.
    • isPrimitive

      public boolean isPrimitive()
      Specified by:
      isPrimitive in interface StreamTypeDecoder<V>
      Specified by:
      isPrimitive in interface TypeDecoder<V>
      Returns:
      true if the underlying type that is going to be decoded is an primitive type
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • readSize

      public int readSize(ProtonBuffer buffer, DecoderState state)
      Description copied from interface: TypeDecoder
      Reads the size in bytes of the encoded AMQP type 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.
      Specified by:
      readSize in interface TypeDecoder<V>
      Parameters:
      buffer - the source of encoded data.
      state - the current state of the decoder.
      Returns:
      the size in bytes of the encoded primitive value.
    • readSize

      public int readSize(InputStream stream, StreamDecoderState state)
      Description copied from interface: StreamTypeDecoder
      Reads the size in bytes of the encoded primitive from the given InputStream and 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.
      Specified by:
      readSize in interface StreamTypeDecoder<V>
      Parameters:
      stream - the source of encoded data.
      state - the current state of the decoder.
      Returns:
      the size in bytes of the encoded primitive value.
    • checkIsExpectedTypeAndCast

      protected static <E> E checkIsExpectedTypeAndCast(Class<?> expected, TypeDecoder<?> actual) throws DecodeException
      Throws:
      DecodeException
    • checkIsExpectedTypeAndCast

      protected static <E> E checkIsExpectedTypeAndCast(Class<?> expected, StreamTypeDecoder<?> actual) throws DecodeException
      Throws:
      DecodeException
    • checkIsExpectedType

      protected static void checkIsExpectedType(Class<?> expected, TypeDecoder<?> actual) throws DecodeException
      Throws:
      DecodeException
    • checkIsExpectedType

      protected static void checkIsExpectedType(Class<?> expected, StreamTypeDecoder<?> actual) throws DecodeException
      Throws:
      DecodeException