/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.util.money; import org.fudgemsg.FudgeMsg; import org.fudgemsg.MutableFudgeMsg; import org.fudgemsg.mapping.FudgeBuilder; import org.fudgemsg.mapping.FudgeBuilderFor; import org.fudgemsg.mapping.FudgeDeserializer; import org.fudgemsg.mapping.FudgeSerializer; /** * Builder for converting UnorderedCurrencyPair instances to/from Fudge messages. */ @FudgeBuilderFor(UnorderedCurrencyPair.class) public class UnorderedCurrencyPairFudgeBuilder implements FudgeBuilder<UnorderedCurrencyPair> { @Override public MutableFudgeMsg buildMessage(final FudgeSerializer serializer, final UnorderedCurrencyPair object) { final MutableFudgeMsg message = serializer.newMessage(); FudgeSerializer.addClassHeader(message, UnorderedCurrencyPair.class); serializer.addToMessage(message, "currency1", null, object.getFirstCurrency().getCode()); serializer.addToMessage(message, "currency2", null, object.getSecondCurrency().getCode()); return message; } @Override public UnorderedCurrencyPair buildObject(final FudgeDeserializer deserializer, final FudgeMsg message) { final String currencyCode1 = message.getString("currency1"); final Currency currency1 = Currency.of(currencyCode1); final String currencyCode2 = message.getString("currency2"); final Currency currency2 = Currency.of(currencyCode2); return UnorderedCurrencyPair.of(currency1, currency2); } }