private void handleMessage()

in gemini/src/main/java/deltix/connector/crypto/gemini/GeminiTradeConnector.java [337:393]


    private void handleMessage(final Message message) {
        if (message instanceof deltix.connector.crypto.gemini.data.OrderEvent.AcceptedOrderEvent) {
            final deltix.connector.crypto.gemini.data.OrderEvent.AcceptedOrderEvent event = (deltix.connector.crypto.gemini.data.OrderEvent.AcceptedOrderEvent) message;
            final MutableOrderNewEvent emberEvent = messages.orderNewEvent();
            populateEvent(event, emberEvent);

            fireOrderNewEvent(emberEvent);
        } else if (message instanceof deltix.connector.crypto.gemini.data.OrderTradeEvent) {
            final deltix.connector.crypto.gemini.data.OrderTradeEvent event = (deltix.connector.crypto.gemini.data.OrderTradeEvent) message;
            final MutableOrderTradeReportEvent emberEvent = messages.tradeReportEvent();

            assert event.getFill() != null;

            populateEvent(event, emberEvent);

            final Contract contract = getContractByBrokerSymbol(event.getSymbol());

            emberEvent.setEventId(event.getFill().getTradeId());
            emberEvent.setTradePrice(toOrderPrice(event.getFill().getPrice(), contract));
            emberEvent.setTradeQuantity(toOrderQuantity(event.getFill().getAmount(), contract));

            emberEvent.setCommission(event.getFill().getFee());
            emberEvent.setCommissionCurrency(AlphanumericCodec.encode(event.getFill().getFeeCurrency()));

            emberEvent.setAggressorSide(GeminiUtil.toAggressorIndicator(event.getFill()));

            fireOrderTradeReportEvent(emberEvent);
        } else if (message instanceof OrderCancelledEvent) {
            final OrderCancelledEvent event = (OrderCancelledEvent) message;
            final MutableOrderCancelEvent emberEvent = messages.orderCancelEvent();

            populateEvent(event, emberEvent);
            emberEvent.setReason(event.getReason());

            fireOrderCancelEvent(emberEvent);
        } else if (message instanceof OrderRejectedEvent) {
            final OrderRejectedEvent event = (OrderRejectedEvent) message;
            final MutableOrderRejectEvent emberEvent = messages.orderRejectEvent();

            populateEvent(event, emberEvent);
            emberEvent.setReason(event.getReason());

            fireOrderRejectEvent(emberEvent);
        } else if (message instanceof OrderCancelRejectedEvent) {
            final OrderCancelRejectedEvent event = (OrderCancelRejectedEvent) message;
            final MutableOrderCancelRejectEvent emberEvent = messages.orderCancelRejectEvent();

            populateEvent(event, emberEvent);
            emberEvent.setReason(event.getReason());

            fireOrderCancelRejectEvent(emberEvent);
        } else if (message instanceof deltix.connector.crypto.gemini.data.OrderEvent.InitialOrderEvent) {
            notifyOrderStatus((OrderEvent) message);
        } else {
            getLog().info("Skip event: %s").with(message);
        }
    }