Package com.opengamma.masterdb.security.hibernate.option

Source Code of com.opengamma.masterdb.security.hibernate.option.NonDeliverableFxDigitalOptionSecurityBeanOperation

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

import static com.opengamma.masterdb.security.hibernate.Converters.currencyBeanToCurrency;
import static com.opengamma.masterdb.security.hibernate.Converters.expiryBeanToExpiry;
import static com.opengamma.masterdb.security.hibernate.Converters.expiryToExpiryBean;

import org.threeten.bp.ZonedDateTime;

import com.opengamma.financial.security.option.NonDeliverableFXDigitalOptionSecurity;
import com.opengamma.masterdb.security.hibernate.AbstractSecurityBeanOperation;
import com.opengamma.masterdb.security.hibernate.Converters;
import com.opengamma.masterdb.security.hibernate.HibernateSecurityMasterDao;
import com.opengamma.masterdb.security.hibernate.OperationContext;
import com.opengamma.util.money.Currency;
import com.opengamma.util.time.Expiry;

/**
* FXOptionSecurityBeanOperation
*/
public final class NonDeliverableFxDigitalOptionSecurityBeanOperation extends AbstractSecurityBeanOperation<NonDeliverableFXDigitalOptionSecurity, NonDeliverableFXDigitalOptionSecurityBean> {
 
  /**
   * Singleton
   */
  public static final NonDeliverableFxDigitalOptionSecurityBeanOperation INSTANCE = new NonDeliverableFxDigitalOptionSecurityBeanOperation();

  private NonDeliverableFxDigitalOptionSecurityBeanOperation() {
    super(NonDeliverableFXDigitalOptionSecurity.SECURITY_TYPE, NonDeliverableFXDigitalOptionSecurity.class, NonDeliverableFXDigitalOptionSecurityBean.class);
  }

  @Override
  public NonDeliverableFXDigitalOptionSecurityBean createBean(final OperationContext context, final HibernateSecurityMasterDao secMasterSession, final NonDeliverableFXDigitalOptionSecurity security) {
    final NonDeliverableFXDigitalOptionSecurityBean bean = new NonDeliverableFXDigitalOptionSecurityBean();
    bean.setCallAmount(security.getCallAmount());
    bean.setPutAmount(security.getPutAmount());
    bean.setCallCurrency(secMasterSession.getOrCreateCurrencyBean(security.getCallCurrency().getCode()));
    bean.setPutCurrency(secMasterSession.getOrCreateCurrencyBean(security.getPutCurrency().getCode()));
    bean.setExpiry(expiryToExpiryBean(security.getExpiry()));
    bean.setSettlementDate(Converters.dateTimeWithZoneToZonedDateTimeBean(security.getSettlementDate()));
    bean.setIsLong(security.isLong());
    bean.setDeliverInCallCurrency(security.isDeliverInCallCurrency());
    bean.setPaymentCurrency(secMasterSession.getOrCreateCurrencyBean(security.getPaymentCurrency().getCode()));
    return bean;
  }

  @Override
  public NonDeliverableFXDigitalOptionSecurity createSecurity(OperationContext context, NonDeliverableFXDigitalOptionSecurityBean bean) {
    Currency putCurrency = currencyBeanToCurrency(bean.getPutCurrency());
    Currency callCurrency = currencyBeanToCurrency(bean.getCallCurrency());
    Currency paymentCurrency = currencyBeanToCurrency(bean.getPaymentCurrency());
    Expiry expiry = expiryBeanToExpiry(bean.getExpiry());
    ZonedDateTime settlementDate = Converters.zonedDateTimeBeanToDateTimeWithZone(bean.getSettlementDate());
    boolean deliverInCallCurrency = bean.isDeliverInCallCurrency();
    NonDeliverableFXDigitalOptionSecurity sec = new NonDeliverableFXDigitalOptionSecurity(putCurrency, callCurrency,
                                                                                          bean.getPutAmount(), bean.getCallAmount(),
                                                                                          paymentCurrency, expiry, settlementDate, bean.getIsLong(),
                                                                                          deliverInCallCurrency);
    return sec;
  }

}
TOP

Related Classes of com.opengamma.masterdb.security.hibernate.option.NonDeliverableFxDigitalOptionSecurityBeanOperation

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.