How to set real FIDs to blank using Java EMA?

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;

}

}

Best Answer

  • Hi @Paul.Wuethrich2

    Have you tried the following:

    EmaFactory.createFieldEntry().codeReal( <fieldID> )


    If you refer to the EMA Java documentation for FieldEntry you will note a set of methods such as codeReal, codeInt, codeFloat for adding a blank data code to a field entry



Answers