I'm looking for an example on setting a field to blank using the EMA API
Current Java EMA code to set FIDs with no logic to set real FIDs to blank
{
...
FieldList nestedFieldList = EmaFactory.createFieldList();
nestedFieldList.add(createOmmRealField(22, priceInfo.getBidPrice()));
...
}
public static FieldEntry createOmmRealField(int fieldId, BigDecimal value) {
BigDecimal valueStripped = value;//value.stripTrailingZeros();
// magnitude constants for scale exists up to -7
if(valueStripped.scale() < -7) {
valueStripped = valueStripped.setScale(-7);
}
// we translate scale to Magnitude type constant
int magnitude = OmmReal.MagnitudeType.EXPONENT_0 - valueStripped.scale();
long mantissa = valueStripped.unscaledValue().longValueExact();
return EmaFactory.createFieldEntry().real(fieldId, mantissa, magnitude);
}
ETA version of setting blank:
// ASK
fieldEntry.clear();
dictionaryEntry = dictionary.entry(MarketPriceItem.ASK_FID);
if (dictionaryEntry != null) {
fieldEntry.fieldId(MarketPriceItem.ASK_FID);
fieldEntry.dataType(dictionaryEntry.rwfType());
tempReal.clear();
// Set blank for empty book and wipes
if(mpItem.ASK == -0.0) {
tempReal.blank();
}
else {
tempReal.value(mpItem.ASK, RealHints.EXPONENT_4);
}
ret = fieldEntry.encode(encodeIter, tempReal);
if (ret < CodecReturnCodes.SUCCESS) {
return ret;
}
}