Package com.opengamma.masterdb.security.hibernate.cds

Source Code of com.opengamma.masterdb.security.hibernate.cds.CDSSecurityBeanOperation

/**
* Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.masterdb.security.hibernate.cds;

import static com.opengamma.masterdb.security.hibernate.Converters.businessDayConventionBeanToBusinessDayConvention;
import static com.opengamma.masterdb.security.hibernate.Converters.currencyBeanToCurrency;
import static com.opengamma.masterdb.security.hibernate.Converters.dateTimeWithZoneToZonedDateTimeBean;
import static com.opengamma.masterdb.security.hibernate.Converters.dayCountBeanToDayCount;
import static com.opengamma.masterdb.security.hibernate.Converters.frequencyBeanToFrequency;
import static com.opengamma.masterdb.security.hibernate.Converters.stubTypeBeanToStubType;
import static com.opengamma.masterdb.security.hibernate.Converters.zonedDateTimeBeanToDateTimeWithZone;

import com.opengamma.financial.security.cds.CDSSecurity;
import com.opengamma.masterdb.security.hibernate.AbstractSecurityBeanOperation;
import com.opengamma.masterdb.security.hibernate.HibernateSecurityMasterDao;
import com.opengamma.masterdb.security.hibernate.OperationContext;

/**
* Operation for converting between {@link CDSSecurity} and {@link CDSSecurityBean}
*
* @author Martin Traverse, Niels Stchedroff (Riskcare)
*/
public final class CDSSecurityBeanOperation extends AbstractSecurityBeanOperation<CDSSecurity, CDSSecurityBean> {

  /** Singleton instance */
  public static final CDSSecurityBeanOperation INSTANCE = new CDSSecurityBeanOperation();

  private CDSSecurityBeanOperation() {
    super(CDSSecurity.SECURITY_TYPE, CDSSecurity.class, CDSSecurityBean.class);
  }

  @Override
  public CDSSecurityBean createBean(OperationContext context, HibernateSecurityMasterDao secMasterSession, CDSSecurity security) {
    final CDSSecurityBean bean = new CDSSecurityBean();
    bean.setNotional(security.getNotional());
    bean.setRecoveryRate(security.getRecoveryRate());
    bean.setSpread(security.getSpread());
    bean.setCurrency(secMasterSession.getOrCreateCurrencyBean(security.getCurrency().getCode()));
    bean.setMaturity(dateTimeWithZoneToZonedDateTimeBean(security.getMaturity()));
    bean.setStartDate(dateTimeWithZoneToZonedDateTimeBean(security.getStartDate()));
    bean.setPremiumFrequency(secMasterSession.getOrCreateFrequencyBean(security.getPremiumFrequency().getConventionName()));
    bean.setDayCount(secMasterSession.getOrCreateDayCountBean(security.getDayCount().getConventionName()));
    bean.setBusinessDayConvention(secMasterSession.getOrCreateBusinessDayConventionBean(security.getBusinessDayConvention().getConventionName()));
    bean.setStubType(secMasterSession.getOrCreateStubTypeBean(security.getStubType().name()));
    bean.setSettlementDays(security.getSettlementDays());
    bean.setUnderlyingIssuer(security.getUnderlyingIssuer());
    bean.setUnderlyingCurrency(secMasterSession.getOrCreateCurrencyBean(security.getUnderlyingCurrency().getCode()));
    bean.setUnderlyingSeniority(security.getUnderlyingSeniority());
    bean.setRestructuringClause(security.getRestructuringClause());
    return bean;
  }

  @Override
  public CDSSecurity createSecurity(OperationContext context, CDSSecurityBean bean) {
    return new CDSSecurity(
      bean.getNotional(),
      bean.getRecoveryRate(),
      bean.getSpread(),
      currencyBeanToCurrency(bean.getCurrency()),
      zonedDateTimeBeanToDateTimeWithZone(bean.getMaturity()),
      zonedDateTimeBeanToDateTimeWithZone(bean.getStartDate()),
      frequencyBeanToFrequency(bean.getPremiumFrequency()),
      dayCountBeanToDayCount(bean.getDayCount()),
      businessDayConventionBeanToBusinessDayConvention(bean.getBusinessDayConvention()),
      stubTypeBeanToStubType(bean.getStubType()),
      bean.getSettlementDays(),
      bean.getUnderlyingIssuer(),
      currencyBeanToCurrency(bean.getUnderlyingCurrency()),
      bean.getUnderlyingSeniority(),
      bean.getRestructuringClause());
  }
}
TOP

Related Classes of com.opengamma.masterdb.security.hibernate.cds.CDSSecurityBeanOperation

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.