private void loadCross(final FudgeMsg message) {
final Map<Pair<Currency, Currency>, CurrencyMatrixValue> values = new HashMap<Pair<Currency, Currency>, CurrencyMatrixValue>();
for (final FudgeField field : message) {
final CurrencyMatrixValue cross = CurrencyMatrixValue.of(Currency.of(field.getName()));
for (final FudgeField field2 : (FudgeMsg) field.getValue()) {
final Currency source = Currency.of(field2.getName());
if (field2.getValue() instanceof FudgeMsg) {
final Currency target = Currency.of(((FudgeMsg) field2.getValue()).iterator().next().getName());
values.put(Pair.of(source, target), cross);
} else {
final Currency target = Currency.of((String) field2.getValue());
values.put(Pair.of(source, target), cross);
values.put(Pair.of(target, source), cross);
}
}
for (final Map.Entry<Pair<Currency, Currency>, CurrencyMatrixValue> valueEntry : values.entrySet()) {