yieldCurveNames.add(deserializer.fieldValueToObject(String.class, yieldCurveNamesFields.get(i)));
}
final List<FudgeField> instrumentExposuresCurveNameField = message.getAllByName(INSTRUMENT_EXPOSURES_CURVE_NAME_FIELD);
final List<FudgeField> instrumentExposuresForCurve = message.getAllByName(INSTRUMENT_EXPOSURES_FOR_CURVE_FIELD);
if (instrumentExposuresCurveNameField.size() != instrumentExposuresForCurve.size()) {
throw new OpenGammaRuntimeException("Should never happen");
}
LinkedHashMap<String, CurveInstrumentConfig> curveInstrumentExposures = null;
if (message.hasField(INSTRUMENT_EXPOSURES_CURVE_NAME_FIELD)) {
curveInstrumentExposures = new LinkedHashMap<String, CurveInstrumentConfig>();
for (int i = 0; i < instrumentExposuresCurveNameField.size(); i++) {
final String curveName = deserializer.fieldValueToObject(String.class, instrumentExposuresCurveNameField.get(i));
final CurveInstrumentConfig config = deserializer.fieldValueToObject(CurveInstrumentConfig.class, instrumentExposuresForCurve.get(i));
curveInstrumentExposures.put(curveName, config);
}
}
if (message.hasField(EXOGENOUS_DATA_FIELD)) {
final List<FudgeField> exogenousConfigFields = message.getAllByName(EXOGENOUS_DATA_FIELD);
final List<FudgeField> exogenousCurveFields = message.getAllByName(EXOGENOUS_CONFIG_FIELD);
if (exogenousConfigFields.size() != exogenousCurveFields.size()) {
throw new OpenGammaRuntimeException("Should never happen");
}
final LinkedHashMap<String, String[]> exogenousConfig = new LinkedHashMap<String, String[]>();
for (int i = 0; i < exogenousConfigFields.size(); i++) {
final String configName = deserializer.fieldValueToObject(String.class, exogenousConfigFields.get(i));
final List<FudgeField> curveNamesField = ((FudgeMsg) exogenousCurveFields.get(i).getValue()).getAllByName(PER_CONFIG_FIELD);