Search in sources :

Example 16 with AMQPMap

use of com.swiftmq.amqp.v100.types.AMQPMap in project swiftmq-ce by iitsoftware.

the class MessageTypeBodyFactory method createBody.

public void createBody(MessageImpl jmsMessage, AMQPMessage amqpMessage) throws JMSException, AMQPException {
    jmsMessage.reset();
    if (jmsMessage instanceof TextMessageImpl) {
        amqpMessage.setAmqpValue(new AmqpValue(new AMQPString(((TextMessageImpl) jmsMessage).getText())));
    } else if (jmsMessage instanceof MapMessageImpl) {
        MapMessageImpl msg = (MapMessageImpl) jmsMessage;
        Map map = new HashMap();
        for (Enumeration _enum = msg.getMapNames(); _enum.hasMoreElements(); ) {
            String name = (String) _enum.nextElement();
            map.put(new AMQPString(name), Util.convertJMStoAMQP(msg.getObject(name)));
        }
        try {
            amqpMessage.setAmqpValue(new AmqpValue(new AMQPMap(map)));
        } catch (IOException e) {
            throw new AMQPException(e.toString());
        }
    } else if (jmsMessage instanceof BytesMessageImpl) {
        BytesMessageImpl msg = (BytesMessageImpl) jmsMessage;
        byte[] b = new byte[(int) msg.getBodyLength()];
        msg.readBytes(b);
        amqpMessage.addData(new Data(b));
    } else if (jmsMessage instanceof ObjectMessageImpl) {
        amqpMessage.setAmqpValue(new AmqpValue(Util.convertJMStoAMQP(((ObjectMessageImpl) jmsMessage).getObject())));
    } else if (jmsMessage instanceof StreamMessageImpl) {
        List list = new ArrayList();
        StreamMessageImpl msg = (StreamMessageImpl) jmsMessage;
        try {
            for (; ; ) {
                list.add(Util.convertJMStoAMQP(msg.readObject()));
            }
        } catch (MessageEOFException e) {
        }
        try {
            amqpMessage.addAmqpSequence(new AmqpSequence(list));
        } catch (IOException e) {
            throw new AMQPException(e.toString());
        }
    }
}
Also used : AMQPException(com.swiftmq.amqp.v100.client.AMQPException) AMQPMap(com.swiftmq.amqp.v100.types.AMQPMap) MessageEOFException(javax.jms.MessageEOFException) Data(com.swiftmq.amqp.v100.generated.messaging.message_format.Data) AMQPString(com.swiftmq.amqp.v100.types.AMQPString) IOException(java.io.IOException) AmqpSequence(com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpSequence) AmqpValue(com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue) AMQPString(com.swiftmq.amqp.v100.types.AMQPString) AMQPMap(com.swiftmq.amqp.v100.types.AMQPMap)

Aggregations

Map (java.util.Map)9 AMQPMap (com.swiftmq.amqp.v100.types.AMQPMap)8 AMQPString (com.swiftmq.amqp.v100.types.AMQPString)8 IOException (java.io.IOException)8 AMQPMessage (com.swiftmq.amqp.v100.messaging.AMQPMessage)7 HashMap (java.util.HashMap)7 List (java.util.List)7 AmqpValue (com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpValue)6 ArrayList (java.util.ArrayList)6 ApplicationProperties (com.swiftmq.amqp.v100.generated.messaging.message_format.ApplicationProperties)4 Properties (com.swiftmq.amqp.v100.generated.messaging.message_format.Properties)4 Fields (com.swiftmq.amqp.v100.generated.transport.definitions.Fields)4 AMQPBoolean (com.swiftmq.amqp.v100.types.AMQPBoolean)4 Iterator (java.util.Iterator)3 AmqpSequence (com.swiftmq.amqp.v100.generated.messaging.message_format.AmqpSequence)2 Data (com.swiftmq.amqp.v100.generated.messaging.message_format.Data)2 Handle (com.swiftmq.amqp.v100.generated.transport.definitions.Handle)2 Seconds (com.swiftmq.amqp.v100.generated.transport.definitions.Seconds)2 TransferNumber (com.swiftmq.amqp.v100.generated.transport.definitions.TransferNumber)2 AMQPLong (com.swiftmq.amqp.v100.types.AMQPLong)2