/** * Copyright (C) 2009 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.masterdb.security.hibernate; import java.util.Date; import java.util.List; import com.opengamma.id.ExternalId; import com.opengamma.master.security.ManageableSecurity; import com.opengamma.masterdb.security.hibernate.bond.CouponTypeBean; import com.opengamma.masterdb.security.hibernate.bond.GuaranteeTypeBean; import com.opengamma.masterdb.security.hibernate.bond.IssuerTypeBean; import com.opengamma.masterdb.security.hibernate.bond.MarketBean; import com.opengamma.masterdb.security.hibernate.bond.YieldConventionBean; import com.opengamma.masterdb.security.hibernate.equity.GICSCodeBean; import com.opengamma.masterdb.security.hibernate.future.FutureBundleBean; import com.opengamma.masterdb.security.hibernate.future.FutureSecurityBean; import com.opengamma.masterdb.security.hibernate.index.BondIndexBean; import com.opengamma.masterdb.security.hibernate.index.BondIndexComponentBean; import com.opengamma.masterdb.security.hibernate.index.EquityIndexBean; import com.opengamma.masterdb.security.hibernate.index.EquityIndexComponentBean; /** * HibernateSecurityMaster session and utility methods. */ public interface HibernateSecurityMasterDao { // Main security load/save SecurityBean getSecurityBean(ManageableSecurity base, SecurityBeanOperation<?, ?> beanOperation); <S extends ManageableSecurity, SBean extends SecurityBean> SBean createSecurityBean( OperationContext context, SecurityBeanOperation<S, SBean> beanOperation, Date effectiveDateTime, S security); SecurityBean persistSecurityBean(OperationContext context, final SecurityBean bean); // SESSION LEVEL METHODS // Exchanges ExchangeBean getOrCreateExchangeBean(String name, String description); List<ExchangeBean> getExchangeBeans(); // Currencies CurrencyBean getOrCreateCurrencyBean(String name); List<CurrencyBean> getCurrencyBeans(); // GICS codes GICSCodeBean getOrCreateGICSCodeBean(final String name, final String description); List<GICSCodeBean> getGICSCodeBeans(); // Daycount conventions DayCountBean getOrCreateDayCountBean(final String convention); List<DayCountBean> getDayCountBeans(); // Business day conventions BusinessDayConventionBean getOrCreateBusinessDayConventionBean(final String convention); List<BusinessDayConventionBean> getBusinessDayConventionBeans(); // Frequencies FrequencyBean getOrCreateFrequencyBean(final String convention); List<FrequencyBean> getFrequencyBeans(); // UnitName UnitBean getOrCreateUnitNameBean(final String unitName); List<UnitBean> getUnitNameBeans(); // IssuerTypeBean IssuerTypeBean getOrCreateIssuerTypeBean(final String type); List<IssuerTypeBean> getIssuerTypeBeans(); // MarketBean MarketBean getOrCreateMarketBean(final String market); List<MarketBean> getMarketBeans(); // YieldConventionBean YieldConventionBean getOrCreateYieldConventionBean(final String convention); List<YieldConventionBean> getYieldConventionBeans(); // GuaranteeTypeBean GuaranteeTypeBean getOrCreateGuaranteeTypeBean(final String type); List<GuaranteeTypeBean> getGuaranteeTypeBeans(); // CouponTypeBean CouponTypeBean getOrCreateCouponTypeBean(final String type); List<CouponTypeBean> getCouponTypeBeans(); IdentifierAssociationBean getCreateOrUpdateIdentifierAssociationBean(Date now, String scheme, String identifier, SecurityBean security); void associateOrUpdateExternalIdWithSecurity(Date now, ExternalId externalId, SecurityBean security); // Debug/testing <T extends SecurityBean> List<T> getAllSecurityBeans(Class<T> beanClass); // Helpers for Futures List<FutureBundleBean> getFutureBundleBeans(Date now, FutureSecurityBean future); FutureBundleBean nextFutureBundleBean(Date now, FutureSecurityBean future); void persistFutureBundleBeans(final Date now, final FutureSecurityBean future); ContractCategoryBean getOrCreateContractCategoryBean(String name); StubTypeBean getOrCreateStubTypeBean(String name); DebtSeniorityBean getOrCreateDebtSeniorityBean(String name); RestructuringClauseBean getOrCreateRestructuringCleanBean(String name); // CDSI family CDSIndexFamilyBean getOrCreateCDSIFamilyBean(String family); List<CDSIndexFamilyBean> getCDSIFamilyBeans(); //Tenors TenorBean getOrCreateTenorBean(String tenor); List<TenorBean> getTenorBeans(); IndexWeightingTypeBean getOrCreateIndexWeightingTypeBean(String name); List<IndexWeightingTypeBean> getIndexWeightingTypeBeans(); List<BondIndexComponentBean> getBondIndexComponentBeans(BondIndexBean bondIndex); List<EquityIndexComponentBean> getEquityIndexComponentBeans(EquityIndexBean equityIndex); void persistBondIndexComponentBeans(BondIndexBean bondIndex); void persistEquityIndexComponentBeans(EquityIndexBean equityIndex); }