@Override
public StaticCurvePointsInstrumentProvider buildObject(final FudgeDeserializer deserializer, final FudgeMsg message) {
final FudgeField instrumentIdentifier = message.getByName(INSTRUMENT_FIELD);
final ExternalId identifier = deserializer.fieldValueToObject(ExternalId.class, instrumentIdentifier);
final String dataField = message.getString(DATA_FIELD);
final DataFieldType fieldType = DataFieldType.valueOf(message.getString(TYPE_FIELD));
final FudgeField underlyingInstrumentIdentifier = message.getByName(UNDERLYING_INSTRUMENT_FIELD);
final ExternalId underlyingIdentifier = deserializer.fieldValueToObject(ExternalId.class, underlyingInstrumentIdentifier);
final String underlyingDataField = message.getString(UNDERLYING_DATA_FIELD);
return new StaticCurvePointsInstrumentProvider(identifier, dataField, fieldType, underlyingIdentifier, underlyingDataField);
}