public void onMessage(NewOrderSingle message, SessionID sessionID) throws FieldNotFound,
UnsupportedMessageType, IncorrectTagValue {
String senderCompId = message.getHeader().getString(SenderCompID.FIELD);
String targetCompId = message.getHeader().getString(TargetCompID.FIELD);
String clOrdId = message.getString(ClOrdID.FIELD);
String symbol = message.getString(Symbol.FIELD);
char side = message.getChar(Side.FIELD);
char ordType = message.getChar(OrdType.FIELD);
double price = 0;
if (ordType == OrdType.LIMIT) {
price = message.getDouble(Price.FIELD);
}
double qty = message.getDouble(OrderQty.FIELD);
char timeInForce = TimeInForce.DAY;
if (message.isSetField(TimeInForce.FIELD)) {
timeInForce = message.getChar(TimeInForce.FIELD);
}
try {
if (timeInForce != TimeInForce.DAY) {
throw new RuntimeException("Unsupported TIF, use Day");
}
Order order = new Order(clOrdId, symbol, senderCompId, targetCompId, side, ordType,
price, (int) qty);
processOrder(order);
} catch (Exception e) {
rejectOrder(targetCompId, senderCompId, clOrdId, symbol, side, e.getMessage());
}
}