/** * Copyright (C) 2011 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.sensitivities; 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; import org.threeten.bp.LocalDate; import com.opengamma.id.ExternalId; import com.opengamma.util.fudgemsg.AbstractFudgeBuilder; import com.opengamma.util.money.Currency; /** * A Fudge builder for {@code BondFutureSecurity}. */ @FudgeBuilderFor(SecurityEntryData.class) public class SecurityEntryDataFudgeBuilder extends AbstractFudgeBuilder implements FudgeBuilder<SecurityEntryData> { /** Field name. */ public static final String FACTOR_SET_EXTERNAL_ID_FIELD_NAME = "factSetExternalId"; /** Field name. */ public static final String CURRENCY_FIELD_NAME = "currency"; /** Field name. */ private static final String MATURITY_DATE_FIELD_NAME = "factorName"; /** Field name. */ private static final String EXTERNAL_ID_FIELD_NAME = "id"; @Override public MutableFudgeMsg buildMessage(FudgeSerializer serializer, SecurityEntryData object) { final MutableFudgeMsg msg = serializer.newMessage(); serializer.addToMessage(msg, EXTERNAL_ID_FIELD_NAME, null, object.getId()); serializer.addToMessage(msg, CURRENCY_FIELD_NAME, null, object.getCurrency()); serializer.addToMessage(msg, MATURITY_DATE_FIELD_NAME, null, object.getMaturityDate()); serializer.addToMessage(msg, FACTOR_SET_EXTERNAL_ID_FIELD_NAME, null, object.getFactorSetId()); return msg; } @Override public SecurityEntryData buildObject(FudgeDeserializer deserializer, FudgeMsg msg) { ExternalId id = ExternalId.parse(msg.getString(EXTERNAL_ID_FIELD_NAME)); Currency currency = Currency.of(msg.getString(CURRENCY_FIELD_NAME)); LocalDate maturityDate = msg.getValue(LocalDate.class, MATURITY_DATE_FIELD_NAME); ExternalId factorSetId = ExternalId.parse(msg.getString(FACTOR_SET_EXTERNAL_ID_FIELD_NAME)); SecurityEntryData data = new SecurityEntryData(id, currency, maturityDate, factorSetId); return data; } }