/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.masterdb.security.hibernate.index; import static com.opengamma.masterdb.security.hibernate.Converters.externalIdBeanToExternalId; import static com.opengamma.masterdb.security.hibernate.Converters.externalIdToExternalIdBean; import com.opengamma.financial.security.index.OvernightIndex; import com.opengamma.id.ExternalId; import com.opengamma.masterdb.security.hibernate.AbstractSecurityBeanOperation; import com.opengamma.masterdb.security.hibernate.HibernateSecurityMasterDao; import com.opengamma.masterdb.security.hibernate.OperationContext; /** * Hibernate bean/security conversion operations. */ public final class OvernightIndexBeanOperation extends AbstractSecurityBeanOperation<OvernightIndex, OvernightIndexBean> { /** * Singleton instance. */ public static final OvernightIndexBeanOperation INSTANCE = new OvernightIndexBeanOperation(); private OvernightIndexBeanOperation() { super(OvernightIndex.INDEX_TYPE, OvernightIndex.class, OvernightIndexBean.class); } @Override public OvernightIndexBean createBean(final OperationContext context, HibernateSecurityMasterDao secMasterSession, OvernightIndex index) { final OvernightIndexBean bean = new OvernightIndexBean(); bean.setDescription(index.getDescription()); bean.setConventionId(externalIdToExternalIdBean(index.getConventionId())); if (index.getIndexFamilyId() != null) { bean.setIndexFamilyId(externalIdToExternalIdBean(index.getIndexFamilyId())); } return bean; } @Override public OvernightIndex createSecurity(final OperationContext context, OvernightIndexBean bean) { String description = bean.getDescription(); ExternalId conventionId = externalIdBeanToExternalId(bean.getConventionId()); OvernightIndex overnightIndex = new OvernightIndex("", description, conventionId); if (bean.getIndexFamilyId() != null) { overnightIndex.setIndexFamilyId(externalIdBeanToExternalId(bean.getIndexFamilyId())); } return overnightIndex; } }