packet.position (metaDataEndPosition + 1);
Preconditions.checkArgument ((metaDataValue != null) && (metaDataValue instanceof Map), "unexpected meta-data value: `%s`", metaDataValue);
final Map<String, Object> metaData = (Map<String, Object>) metaDataValue;
final Object messageTypeValue = metaData.remove ("__type__");
Preconditions.checkArgument ((messageTypeValue != null) && (messageTypeValue instanceof String), "unexpected message type value: `%s`", messageTypeValue);
final ChannelMessageType messageType;
if ("exchange".equals (ChannelMessageType.Exchange.identifier))
messageType = ChannelMessageType.Exchange;
else
messageType = null;
Preconditions.checkArgument (messageType != null, "invalid message type: `%s`", messageTypeValue);