cashInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
if (message.hasField(FRA_3M) && message.hasField(FRA)) {
throw new OpenGammaRuntimeException("Have message with the old FRA field and the new FRA_3M field: should not happen");
}
Map<Tenor, CurveInstrumentProvider> fra3MInstrumentProviders = null;
if (message.hasField(FRA)) {
// Treat all old definitions as if they were 3m FRA rates
final FudgeMsg fraInstrumentProvidersMessage = message.getMessage(FRA);
fra3MInstrumentProviders = new HashMap<>();
for (final FudgeField field : fraInstrumentProvidersMessage.getAllFields()) {
fra3MInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
} else if (message.hasField(FRA_3M)) {
fra3MInstrumentProviders = new HashMap<>();
final FudgeMsg fra3MInstrumentProvidersMessage = message.getMessage(FRA_3M);
for (final FudgeField field : fra3MInstrumentProvidersMessage.getAllFields()) {
fra3MInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
if (message.hasField(FRA_6M) && message.hasField(FRA)) {
throw new OpenGammaRuntimeException("Have message with the old FRA field and the new FRA_6M field: should not happen");
}
Map<Tenor, CurveInstrumentProvider> fra6MInstrumentProviders = null;
if (message.hasField(FRA_6M)) {
fra6MInstrumentProviders = new HashMap<>();
final FudgeMsg fra6MInstrumentProvidersMessage = message.getMessage(FRA_6M);
for (final FudgeField field : fra6MInstrumentProvidersMessage.getAllFields()) {
fra6MInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
Map<Tenor, CurveInstrumentProvider> futureInstrumentProviders = null;
if (message.hasField(FUTURE)) {
futureInstrumentProviders = new HashMap<>();
final FudgeMsg futureInstrumentProvidersMessage = message.getMessage(FUTURE);
for (final FudgeField field : futureInstrumentProvidersMessage.getAllFields()) {
futureInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
if (message.hasField(RATE) && message.hasField(LIBOR)) {
throw new OpenGammaRuntimeException("Have message with old RATE field and new LIBOR field: should not happen");
}
Map<Tenor, CurveInstrumentProvider> liborInstrumentProviders = null;
if (message.hasField(RATE)) {
// Treat all old definitions as if they were Libor rates
liborInstrumentProviders = new HashMap<>();
final FudgeMsg rateInstrumentProvidersMessage = message.getMessage(RATE);
for (final FudgeField field : rateInstrumentProvidersMessage.getAllFields()) {
liborInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
} else if (message.hasField(LIBOR)) {
liborInstrumentProviders = new HashMap<>();
final FudgeMsg liborInstrumentProvidersMessage = message.getMessage(LIBOR);
for (final FudgeField field : liborInstrumentProvidersMessage.getAllFields()) {
liborInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
if (message.hasField(RATE) && message.hasField(EURIBOR)) {
throw new OpenGammaRuntimeException("Have message with old RATE field and new EURIBOR field: should not happen");
}
Map<Tenor, CurveInstrumentProvider> euriborInstrumentProviders = null;
if (message.hasField(EURIBOR)) {
euriborInstrumentProviders = new HashMap<>();
final FudgeMsg euriborInstrumentProvidersMessage = message.getMessage(EURIBOR);
for (final FudgeField field : euriborInstrumentProvidersMessage.getAllFields()) {
euriborInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
Map<Tenor, CurveInstrumentProvider> cdorInstrumentProviders = null;
if (message.hasField(CDOR)) {
cdorInstrumentProviders = new HashMap<>();
final FudgeMsg cdorInstrumentProvidersMessage = message.getMessage(CDOR);
for (final FudgeField field : cdorInstrumentProvidersMessage.getAllFields()) {
cdorInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
Map<Tenor, CurveInstrumentProvider> ciborInstrumentProviders = null;
if (message.hasField(CIBOR)) {
ciborInstrumentProviders = new HashMap<>();
final FudgeMsg ciborInstrumentProvidersMessage = message.getMessage(CIBOR);
for (final FudgeField field : ciborInstrumentProvidersMessage.getAllFields()) {
ciborInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
Map<Tenor, CurveInstrumentProvider> stiborInstrumentProviders = null;
if (message.hasField(STIBOR)) {
stiborInstrumentProviders = new HashMap<>();
final FudgeMsg stiborInstrumentProvidersMessage = message.getMessage(STIBOR);
for (final FudgeField field : stiborInstrumentProvidersMessage.getAllFields()) {
stiborInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
if (message.hasField(SWAP) && message.hasField(SWAP_3M)) {
throw new OpenGammaRuntimeException("Have message with old SWAP field and new SWAP_3M field: should not happen");
}
Map<Tenor, CurveInstrumentProvider> swap3MInstrumentProviders = null;
if (message.hasField(SWAP)) {
// Treat all old definitions as if they were swaps with 3m floating legs
swap3MInstrumentProviders = new HashMap<>();
final FudgeMsg swapInstrumentProvidersMessage = message.getMessage(SWAP);
for (final FudgeField field : swapInstrumentProvidersMessage.getAllFields()) {
swap3MInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
} else if (message.hasField(SWAP_3M)) {
swap3MInstrumentProviders = new HashMap<>();
final FudgeMsg swap3MInstrumentProvidersMessage = message.getMessage(SWAP_3M);
for (final FudgeField field : swap3MInstrumentProvidersMessage.getAllFields()) {
swap3MInstrumentProviders.put(Tenor.of(DateUtils.toPeriod(field.getName())), deserializer.fieldValueToObject(CurveInstrumentProvider.class, field));
}
}
if (message.hasField(SWAP) && message.hasField(SWAP_6M)) {
throw new OpenGammaRuntimeException("Have message with old SWAP field and new SWAP_6M field: should not happen");
}
Map<Tenor, CurveInstrumentProvider> swap6MInstrumentProviders = null;
if (message.hasField(SWAP_6M)) {
swap6MInstrumentProviders = new HashMap<>();