in java/runner/src/intTest/java/com/epam/deltix/data/connectors/validator/L2DataValidator.java [184:222]
private void validationCheck(PackageHeaderInfo headerInfo, L2EntryNew entryNew) {
if ((!entryNew.hasLevel()) || entryNew.getLevel() < 0) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(),"Unexpected (or missed) entry level in L2EntryNew", Severity.ERROR);
}
if (!entryNew.hasPrice() || (Decimal64Utils.isNaN(entryNew.getPrice())) || (Decimal64Utils.isInfinity(entryNew.getPrice()))) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "Unexpected (or missed) entry price in L2EntryNew", Severity.ERROR);
}
if ((!entryNew.hasSize()) || (Decimal64Utils.isLessOrEqual(entryNew.getSize(), Decimal64Utils.ZERO)) || (Decimal64Utils.isNaN(entryNew.getSize())) || (Decimal64Utils.isInfinity(entryNew.getSize()))) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "Unexpected (or missed) entry size in L2EntryNew", Severity.ERROR);
}
if (!entryNew.hasSide()) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "Missed entry side in L2EntryNew", Severity.ERROR);
}
if (!entryNew.hasExchangeId()) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "Missed exchangeId in L2EntryNew", Severity.ERROR);
}
if (checkNegativePrice && Decimal64Utils.isLess(entryNew.getPrice(), Decimal64Utils.ZERO)) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "L2EntryNew price is negative", Severity.WARNING);
}
if (checkTickPrice && Decimal64Utils.isNotEqual(Decimal64Utils.round(entryNew.getPrice(), tickPrice), entryNew.getPrice())) {
try {
sendMessageToLogger(headerInfo,entryNew.getExchangeId(), (CharSequence)Decimal64Utils.appendTo(entryNew.getPrice(), internalLogBuilder.clear().append("L2EntryNew price is not multiple of tickSize. Price: ")), Severity.ERROR);
} catch (IOException e) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "Error in Decimal64.appendToMutableString", Severity.ERROR);
}
}
if (checkTickSize &&Decimal64Utils.isNotEqual(Decimal64Utils.round(entryNew.getSize(), tickSize), entryNew.getSize())) {
try {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), (CharSequence)Decimal64Utils.appendTo(entryNew.getSize(), internalLogBuilder.clear().append("L2EntryNew size is not multiple of lotSize. Size: ")), Severity.ERROR);
} catch (IOException e) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "Error in Decimal64.appendToMutableString", Severity.ERROR);
}
}
if (entryNew.getLevel() >= marketDepth) {
sendMessageToLogger(headerInfo, entryNew.getExchangeId(), "L2EntryNew level is greater than market depth.", Severity.ERROR);
}
}