/**
* Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.security.future;
import org.fudgemsg.FudgeMsg;
import org.fudgemsg.MutableFudgeMsg;
import org.fudgemsg.mapping.FudgeDeserializer;
import org.fudgemsg.mapping.FudgeSerializer;
import com.opengamma.financial.security.FinancialSecurityFudgeBuilder;
import com.opengamma.util.fudgemsg.AbstractFudgeBuilder;
import com.opengamma.util.money.Currency;
import com.opengamma.util.time.ExpiryFudgeBuilder;
/**
* A Fudge builder for {@code FutureSecurity}.
*/
public class FutureSecurityFudgeBuilder extends AbstractFudgeBuilder {
/** Field name. */
public static final String EXPIRY_FIELD_NAME = "expiry";
/** Field name. */
public static final String TRADING_EXCHANGE_FIELD_NAME = "tradingExchange";
/** Field name. */
public static final String SETTLEMENT_EXCHANGE_FIELD_NAME = "settlementExchange";
/** Field name. */
public static final String CURRENCY_FIELD_NAME = "currency";
/** Field name. */
public static final String UNIT_AMOUNT_FIELD_NAME = "unitAmount";
/** Field name. */
public static final String CONTRACT_CATEGORY_FIELD_NAME = "contractCategory";
public static void toFudgeMsg(FudgeSerializer serializer, FutureSecurity object, final MutableFudgeMsg msg) {
FinancialSecurityFudgeBuilder.toFudgeMsg(serializer, object, msg);
addToMessage(msg, EXPIRY_FIELD_NAME, ExpiryFudgeBuilder.toFudgeMsg(serializer, object.getExpiry()));
addToMessage(msg, TRADING_EXCHANGE_FIELD_NAME, object.getTradingExchange());
addToMessage(msg, SETTLEMENT_EXCHANGE_FIELD_NAME, object.getSettlementExchange());
addToMessage(msg, CURRENCY_FIELD_NAME, object.getCurrency());
addToMessage(msg, UNIT_AMOUNT_FIELD_NAME, object.getUnitAmount());
addToMessage(msg, CONTRACT_CATEGORY_FIELD_NAME, object.getContractCategory());
}
public static void fromFudgeMsg(FudgeDeserializer deserializer, FudgeMsg msg, FutureSecurity object) {
FinancialSecurityFudgeBuilder.fromFudgeMsg(deserializer, msg, object);
object.setExpiry(ExpiryFudgeBuilder.fromFudgeMsg(deserializer, msg.getMessage(EXPIRY_FIELD_NAME)));
object.setTradingExchange(msg.getString(TRADING_EXCHANGE_FIELD_NAME));
object.setSettlementExchange(msg.getString(SETTLEMENT_EXCHANGE_FIELD_NAME));
object.setCurrency(msg.getValue(Currency.class, CURRENCY_FIELD_NAME));
object.setUnitAmount(msg.getDouble(UNIT_AMOUNT_FIELD_NAME));
object.setContractCategory(msg.getString(CONTRACT_CATEGORY_FIELD_NAME));
}
}