in java/runner/src/intTest/java/com/epam/deltix/data/connectors/validator/L2DataValidator.java [224:259]
private void validationCheck(PackageHeaderInfo headerInfo, L2EntryUpdate entryUpdate) {
if ((!entryUpdate.hasLevel()) || entryUpdate.getLevel() < 0) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Unexpected (or missed) entry level in L2EntryUpdate", Severity.ERROR);
}
if (!entryUpdate.hasSide()) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Missed entry side in L2EntryUpdate", Severity.ERROR);
}
if (!entryUpdate.hasExchangeId()) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Missed exchangeId in L2EntryUpdate", Severity.ERROR);
}
if (!entryUpdate.hasAction()) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Missed action in L2EntryUpdate", Severity.ERROR);
}
if (entryUpdate.getAction() == BookUpdateAction.UPDATE) {
if (!entryUpdate.hasPrice() || (Decimal64Utils.isNaN(entryUpdate.getPrice())) || (Decimal64Utils.isInfinity(entryUpdate.getPrice()))) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Unexpected (or missed) entry price in L2EntryUpdate with Action = Update", Severity.ERROR);
}
if ((!entryUpdate.hasSize()) || (Decimal64Utils.isLessOrEqual(entryUpdate.getSize(), Decimal64Utils.ZERO)) || (Decimal64Utils.isNaN(entryUpdate.getSize())) || (Decimal64Utils.isInfinity(entryUpdate.getSize()))) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Unexpected (or missed) entry size in L2EntryUpdate with Action = Update", Severity.ERROR);
}
if (checkTickSize && Decimal64Utils.isNotEqual(Decimal64Utils.round(entryUpdate.getSize(), tickSize), entryUpdate.getSize())) {
try {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), (CharSequence)Decimal64Utils.appendTo(entryUpdate.getSize(), internalLogBuilder.clear().append("L2EntryUpdate size is not multiple of lotSize. Size: ")), Severity.ERROR);
} catch (IOException e) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Error in Decimal64.appendToMutableString", Severity.ERROR);
}
}
} else if (entryUpdate.getAction() == BookUpdateAction.INSERT) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "Invalid action in L2EntryUpdate. We don't support inserting by L2EntryUpdate.", Severity.ERROR);
}
if (entryUpdate.getLevel() >= marketDepth) {
sendMessageToLogger(headerInfo, entryUpdate.getExchangeId(), "L2EntryUpdate level is greater than market depth.", Severity.ERROR);
}
}