Package com.opengamma.masterdb.security.hibernate.equity

Source Code of com.opengamma.masterdb.security.hibernate.equity.EquitySecurityBeanOperation

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

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

import com.opengamma.financial.security.equity.EquitySecurity;
import com.opengamma.financial.security.equity.GICSCode;
import com.opengamma.masterdb.security.hibernate.AbstractSecurityBeanOperation;
import com.opengamma.masterdb.security.hibernate.CurrencyBean;
import com.opengamma.masterdb.security.hibernate.ExchangeBean;
import com.opengamma.masterdb.security.hibernate.HibernateSecurityMasterDao;
import com.opengamma.masterdb.security.hibernate.OperationContext;

/**
* A Hibernate helper.
*/
public final class EquitySecurityBeanOperation extends AbstractSecurityBeanOperation<EquitySecurity, EquitySecurityBean> {

  /**
   * Singleton.
   */
  public static final EquitySecurityBeanOperation INSTANCE = new EquitySecurityBeanOperation();

  private EquitySecurityBeanOperation() {
    super(EquitySecurity.SECURITY_TYPE, EquitySecurity.class, EquitySecurityBean.class);
  }

  public static GICSCode gicsCodeBeanToGICSCode(final GICSCodeBean gicsCodeBean) {
    if (gicsCodeBean == null) {
      return null;
    }
    return GICSCode.of(gicsCodeBean.getName());
  }

  @Override
  public EquitySecurityBean createBean(final OperationContext context, final HibernateSecurityMasterDao secMasterSession, final EquitySecurity security) {
    GICSCodeBean gicsCodeBean = null;
    if (security.getGicsCode() != null) {
      gicsCodeBean = secMasterSession.getOrCreateGICSCodeBean(security.getGicsCode().getCode(), "");
    }
    final EquitySecurityBean bean = createBean(
        secMasterSession.getOrCreateExchangeBean(security.getExchangeCode(), security.getExchange()),
          security.getCompanyName(),
          secMasterSession.getOrCreateCurrencyBean(security.getCurrency().getCode()),
          gicsCodeBean,
          security.isPreferred());
    bean.setShortName(security.getShortName());
    return bean;
  }

  public EquitySecurityBean createBean(
      final ExchangeBean exchange, final String companyName, final CurrencyBean currency,
      final GICSCodeBean gicsCode, boolean preferred) {
    final EquitySecurityBean equity = new EquitySecurityBean();
    equity.setExchange(exchange);
    equity.setCompanyName(companyName);
    equity.setCurrency(currency);
    equity.setGicsCode(gicsCode);
    equity.setPreferred(preferred);
    return equity;
  }

  @Override
  public EquitySecurity createSecurity(final OperationContext context, final EquitySecurityBean bean) {
    final EquitySecurity security = new EquitySecurity(bean.getExchange().getDescription(), bean.getExchange().getName(), bean.getCompanyName(), currencyBeanToCurrency(bean.getCurrency()));
    security.setShortName(bean.getShortName());
    security.setGicsCode(gicsCodeBeanToGICSCode(bean.getGicsCode()));
    security.setPreferred(bean.isPreferred());
    return security;
  }

}
TOP

Related Classes of com.opengamma.masterdb.security.hibernate.equity.EquitySecurityBeanOperation

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.