你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

AmqpMessageBody Class

  • java.lang.Object
    • com.azure.core.amqp.models.AmqpMessageBody

public final class AmqpMessageBody

This class encapsulates the body of a message. The AmqpMessageBodyType map to an AMQP specification message body types. Current implementation support DATA AMQP data type.

Client should test for AmqpMessageBodyType before calling corresponding get method. Get methods not corresponding to the type of the body throws exception.

How to check for AmqpMessageBodyType

Object amqpValue;
 AmqpMessageBodyType bodyType = amqpAnnotatedMessage.getBody().getBodyType();

 switch (bodyType) {
     case DATA:
         byte[] payload = amqpAnnotatedMessage.getBody().getFirstData();
         System.out.println(new String(payload));
         break;
     case SEQUENCE:
         List<Object> sequenceData = amqpAnnotatedMessage.getBody().getSequence();
         sequenceData.forEach(System.out::println);
         break;
     case VALUE:
         amqpValue = amqpAnnotatedMessage.getBody().getValue();
         System.out.println(amqpValue);
         break;
     default:
         throw new RuntimeException(String.format(Locale.US, "Body type [%s] is not valid.", bodyType));
 }

Method Summary

Modifier and Type Method and Description
static AmqpMessageBody fromData(byte[] data)

Creates instance of AmqpMessageBody with given byte array.

static AmqpMessageBody fromSequence(List<Object> sequence)

Creates an instance of AmqpMessageBody with the given sequence.

static AmqpMessageBody fromValue(Object value)

Creates an instance of AmqpMessageBody with the given value.

AmqpMessageBodyType getBodyType()

Gets the AmqpMessageBodyType of the message.

IterableStream<byte[]> getData()

Gets an IterableStream<T> of byte array containing only first byte array set on this AmqpMessageBody.

byte[] getFirstData()

Gets first byte array set on this AmqpMessageBody.

List<Object> getSequence()

Gets the unmodifiable AMQP Sequence set on this AmqpMessageBody.

Object getValue()

Gets the AMQP value set on this AmqpMessageBody instance.

Methods inherited from java.lang.Object

Method Details

fromData

public static AmqpMessageBody fromData(byte[] data)

Creates instance of AmqpMessageBody with given byte array.

Parameters:

data - used to create another instance of AmqpMessageBody.

Returns:

AmqpMessageBody Newly created instance.

fromSequence

public static AmqpMessageBody fromSequence(List sequence)

Creates an instance of AmqpMessageBody with the given sequence. It supports only one sequence at present.

Parameters:

sequence - used to create an instance of AmqpMessageBody. A sequence can be List of objects. The object can be any of the AMQP supported primitive data type.

Returns:

newly created instance of AmqpMessageBody.

fromValue

public static AmqpMessageBody fromValue(Object value)

Creates an instance of AmqpMessageBody with the given value. A value can be any of the AMQP supported primitive data type.

Parameters:

value - used to create an instance of AmqpMessageBody.

Returns:

newly created instance of AmqpMessageBody.

getBodyType

public AmqpMessageBodyType getBodyType()

Gets the AmqpMessageBodyType of the message.

How to check for AmqpMessageBodyType

Object amqpValue;
 AmqpMessageBodyType bodyType = amqpAnnotatedMessage.getBody().getBodyType();

 switch (bodyType) {
     case DATA:
         byte[] payload = amqpAnnotatedMessage.getBody().getFirstData();
         System.out.println(new String(payload));
         break;
     case SEQUENCE:
         List<Object> sequenceData = amqpAnnotatedMessage.getBody().getSequence();
         sequenceData.forEach(System.out::println);
         break;
     case VALUE:
         amqpValue = amqpAnnotatedMessage.getBody().getValue();
         System.out.println(amqpValue);
         break;
     default:
         throw new RuntimeException(String.format(Locale.US, "Body type [%s] is not valid.", bodyType));
 }

Returns:

AmqpBodyType type of the message.

getData

public IterableStream getData()

Gets an IterableStream<T> of byte array containing only first byte array set on this AmqpMessageBody. This library only support one byte array at present, so the returned list will have only one element.

Client should test for AmqpMessageBodyType before calling corresponding get method. Get methods not corresponding to the type of the body throws exception.

How to check for AmqpMessageBodyType

Object amqpValue;
 AmqpMessageBodyType bodyType = amqpAnnotatedMessage.getBody().getBodyType();

 switch (bodyType) {
     case DATA:
         byte[] payload = amqpAnnotatedMessage.getBody().getFirstData();
         System.out.println(new String(payload));
         break;
     case SEQUENCE:
         List<Object> sequenceData = amqpAnnotatedMessage.getBody().getSequence();
         sequenceData.forEach(System.out::println);
         break;
     case VALUE:
         amqpValue = amqpAnnotatedMessage.getBody().getValue();
         System.out.println(amqpValue);
         break;
     default:
         throw new RuntimeException(String.format(Locale.US, "Body type [%s] is not valid.", bodyType));
 }

Returns:

data set on AmqpMessageBody.

getFirstData

public byte[] getFirstData()

Gets first byte array set on this AmqpMessageBody. This library only support one byte array on Amqp Message at present.

Client should test for AmqpMessageBodyType before calling corresponding get method. Get methods not corresponding to the type of the body throws exception.

How to check for AmqpMessageBodyType

Object amqpValue;
 AmqpMessageBodyType bodyType = amqpAnnotatedMessage.getBody().getBodyType();

 switch (bodyType) {
     case DATA:
         byte[] payload = amqpAnnotatedMessage.getBody().getFirstData();
         System.out.println(new String(payload));
         break;
     case SEQUENCE:
         List<Object> sequenceData = amqpAnnotatedMessage.getBody().getSequence();
         sequenceData.forEach(System.out::println);
         break;
     case VALUE:
         amqpValue = amqpAnnotatedMessage.getBody().getValue();
         System.out.println(amqpValue);
         break;
     default:
         throw new RuntimeException(String.format(Locale.US, "Body type [%s] is not valid.", bodyType));
 }

Returns:

data set on AmqpMessageBody.

getSequence

public List getSequence()

Gets the unmodifiable AMQP Sequence set on this AmqpMessageBody. It support only one sequence at present.

Client should test for AmqpMessageBodyType before calling corresponding get method. Get methods not corresponding to the type of the body throws exception.

How to check for AmqpMessageBodyType

Object amqpValue;
 AmqpMessageBodyType bodyType = amqpAnnotatedMessage.getBody().getBodyType();

 switch (bodyType) {
     case DATA:
         byte[] payload = amqpAnnotatedMessage.getBody().getFirstData();
         System.out.println(new String(payload));
         break;
     case SEQUENCE:
         List<Object> sequenceData = amqpAnnotatedMessage.getBody().getSequence();
         sequenceData.forEach(System.out::println);
         break;
     case VALUE:
         amqpValue = amqpAnnotatedMessage.getBody().getValue();
         System.out.println(amqpValue);
         break;
     default:
         throw new RuntimeException(String.format(Locale.US, "Body type [%s] is not valid.", bodyType));
 }

Returns:

sequence of this AmqpMessageBody instance.

getValue

public Object getValue()

Gets the AMQP value set on this AmqpMessageBody instance. It can be any of the primitive AMQP data type.

Client should test for AmqpMessageBodyType before calling corresponding get method. The 'Get' methods not corresponding to the type of the body throws exception.

How to check for AmqpMessageBodyType

Object amqpValue;
 AmqpMessageBodyType bodyType = amqpAnnotatedMessage.getBody().getBodyType();

 switch (bodyType) {
     case DATA:
         byte[] payload = amqpAnnotatedMessage.getBody().getFirstData();
         System.out.println(new String(payload));
         break;
     case SEQUENCE:
         List<Object> sequenceData = amqpAnnotatedMessage.getBody().getSequence();
         sequenceData.forEach(System.out::println);
         break;
     case VALUE:
         amqpValue = amqpAnnotatedMessage.getBody().getValue();
         System.out.println(amqpValue);
         break;
     default:
         throw new RuntimeException(String.format(Locale.US, "Body type [%s] is not valid.", bodyType));
 }

Returns:

value of this AmqpMessageBody instance.

Applies to