你当前正在访问 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
Methods inherited from java.lang.Object
Method Details
fromData
public static AmqpMessageBody fromData(byte[] data)
Creates instance of AmqpMessageBody with given byte array.
Parameters:
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:
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:
Returns:
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:
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:
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:
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:
Applies to