com.mtech.easyexchange.ordersolver.consumer.OrderMessageListener.java Source code

Java tutorial

Introduction

Here is the source code for com.mtech.easyexchange.ordersolver.consumer.OrderMessageListener.java

Source

/*
 * This file is part of EasyExchange.
 *
 * (c) 2014 - Machiel Molenaar <machiel@machiel.me>
 *
 * For the full copyright and license information, please view the LICENSE
 * file that was distributed with this source code.
 */

package com.mtech.easyexchange.ordersolver.consumer;

import com.mtech.easyexchange.manager.exception.OrderNotFoundException;
import com.mtech.easyexchange.manager.order.IOrderManager;
import com.mtech.easyexchange.model.Order;
import com.mtech.easyexchange.model.OrderAction;
import com.mtech.easyexchange.ordersolver.OrderMessageHolder;
import com.mtech.easyexchange.ordersolver.OrderOperation;
import org.springframework.amqp.core.Message;

public class OrderMessageListener {

    protected IOrderManager orderManager;

    protected OrderMessageHolder holder;

    public OrderMessageListener(OrderMessageHolder holder, IOrderManager orderManager) {
        this.holder = holder;
        this.orderManager = orderManager;
    }

    public void process(Message message) {

        String action = new String(message.getBody());

        System.out.println(action);

        String[] result = action.split(":");
        Long id = Long.parseLong(result[0]);
        OrderAction orderAction = OrderAction.valueOf(result[1]);

        try {
            Order order = orderManager.get(id);
            OrderOperation op = new OrderOperation(order, orderAction);

            holder.add(op);

            System.out.println("OrderOperation caught");
        } catch (OrderNotFoundException e) {
            System.out.println("Order not found with id #" + id);
        }
    }
}