Interface StreamTypeDecoder<V>

Type Parameters:
V - The type that will be returned when this decoder reads a value.
All Known Subinterfaces:
BinaryTypeDecoder, ListTypeDecoder, MapTypeDecoder, PrimitiveArrayTypeDecoder, PrimitiveTypeDecoder<V>, StreamDescribedTypeDecoder<V>, StringTypeDecoder, SymbolTypeDecoder
All Known Implementing Classes:
AbstractArrayTypeDecoder, AbstractBinaryTypeDecoder, AbstractDescribedListTypeDecoder, AbstractDescribedMapTypeDecoder, AbstractDescribedTypeDecoder, AbstractListTypeDecoder, AbstractMapTypeDecoder, AbstractPrimitiveTypeDecoder, AbstractStringTypeDecoder, AbstractSymbolTypeDecoder, AcceptedTypeDecoder, AmqpSequenceTypeDecoder, AmqpValueTypeDecoder, ApplicationPropertiesTypeDecoder, Array32TypeDecoder, Array8TypeDecoder, AttachTypeDecoder, BeginTypeDecoder, Binary32TypeDecoder, Binary8TypeDecoder, BooleanFalseTypeDecoder, BooleanTrueTypeDecoder, BooleanTypeDecoder, ByteTypeDecoder, CharacterTypeDecoder, CloseTypeDecoder, CoordinatorTypeDecoder, DataTypeDecoder, Decimal128TypeDecoder, Decimal32TypeDecoder, Decimal64TypeDecoder, DeclaredTypeDecoder, DeclareTypeDecoder, DeleteOnCloseTypeDecoder, DeleteOnNoLinksOrMessagesTypeDecoder, DeleteOnNoLinksTypeDecoder, DeleteOnNoMessagesTypeDecoder, DeliveryAnnotationsTypeDecoder, DetachTypeDecoder, DischargeTypeDecoder, DispositionTypeDecoder, DoubleTypeDecoder, EndTypeDecoder, ErrorConditionTypeDecoder, FloatTypeDecoder, FlowTypeDecoder, FooterTypeDecoder, HeaderTypeDecoder, Integer32TypeDecoder, Integer8TypeDecoder, List0TypeDecoder, List32TypeDecoder, List8TypeDecoder, Long8TypeDecoder, LongTypeDecoder, Map32TypeDecoder, Map8TypeDecoder, MessageAnnotationsTypeDecoder, ModifiedTypeDecoder, NullTypeDecoder, OpenTypeDecoder, PropertiesTypeDecoder, ReceivedTypeDecoder, RejectedTypeDecoder, ReleasedTypeDecoder, SaslChallengeTypeDecoder, SaslInitTypeDecoder, SaslMechanismsTypeDecoder, SaslOutcomeTypeDecoder, SaslResponseTypeDecoder, ShortTypeDecoder, SourceTypeDecoder, String32TypeDecoder, String8TypeDecoder, Symbol32TypeDecoder, Symbol8TypeDecoder, TargetTypeDecoder, TimestampTypeDecoder, TransactionStateTypeDecoder, TransferTypeDecoder, UnknownDescribedTypeDecoder, UnsignedByteTypeDecoder, UnsignedInteger0TypeDecoder, UnsignedInteger32TypeDecoder, UnsignedInteger8TypeDecoder, UnsignedLong0TypeDecoder, UnsignedLong64TypeDecoder, UnsignedLong8TypeDecoder, UnsignedShortTypeDecoder, UUIDTypeDecoder

public interface StreamTypeDecoder<V>
Interface for an decoder of a specific AMQP Type.
  • Method Details

    • getTypeClass

      Class<V> getTypeClass()
      Returns:
      the Class that this decoder handles.
    • isPrimitive

      boolean isPrimitive()
      Returns:
      true if the underlying type that is going to be decoded is an primitive type
    • isArrayType

      boolean isArrayType()
      Returns:
      true if the underlying type that is going to be decoded is an array type
    • isNull

      boolean isNull()
      Returns:
      true if the underlying type is the null type meaning there are no bytes to decode.
    • readSize

      int readSize(InputStream stream, StreamDecoderState state)
      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.
      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.
    • readValue

      V readValue(InputStream stream, StreamDecoderState state) throws DecodeException
      Reads the next type from the given buffer and returns it.
      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.
    • skipValue

      void skipValue(InputStream stream, StreamDecoderState state) throws DecodeException
      Skips 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.

      Parameters:
      stream - The stream that contains the encoded type.
      state - The decoder state.
      Throws:
      DecodeException - if an error occurs while skipping the value.
    • readArrayElements

      V[] readArrayElements(InputStream stream, StreamDecoderState state, int count) throws DecodeException
      Reads a series of this type that have been encoded into the body of an Array type.

      When encoded into an array the values are encoded in series following the identifier for the type, this method is given a count of the number of instances that are encoded and should read each in succession and returning them in a new array.

      Parameters:
      stream - the source of encoded data.
      state - the current state of the decoder.
      count - the number of array elements encoded in the buffer.
      Returns:
      the next instance in the stream that this decoder handles.
      Throws:
      DecodeException - if an error is encountered while reading the next value.