Package com.opengamma.financial.analytics.conversion

Source Code of com.opengamma.financial.analytics.conversion.CreditDefaultIndexSwapSecurityToProxyConverter

/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.conversion;

import org.threeten.bp.ZonedDateTime;

import com.opengamma.analytics.financial.credit.DebtSeniority;
import com.opengamma.analytics.financial.credit.RestructuringClause;
import com.opengamma.analytics.financial.credit.creditdefaultswap.definition.vanilla.CreditDefaultSwapDefinition;
import com.opengamma.core.holiday.HolidaySource;
import com.opengamma.core.id.ExternalSchemes;
import com.opengamma.core.organization.OrganizationSource;
import com.opengamma.core.region.RegionSource;
import com.opengamma.financial.convention.StubType;
import com.opengamma.financial.convention.businessday.BusinessDayConvention;
import com.opengamma.financial.convention.daycount.DayCount;
import com.opengamma.financial.convention.frequency.Frequency;
import com.opengamma.financial.security.FinancialSecurityVisitorAdapter;
import com.opengamma.financial.security.cds.CreditDefaultSwapIndexSecurity;
import com.opengamma.financial.security.cds.LegacyVanillaCDSSecurity;
import com.opengamma.financial.security.swap.InterestRateNotional;
import com.opengamma.id.ExternalId;

/**
*
*/
public class CreditDefaultIndexSwapSecurityToProxyConverter extends FinancialSecurityVisitorAdapter<CreditDefaultSwapDefinition> {
  //TODO remove this
  private static final ExternalId REGION = ExternalSchemes.financialRegionId("US");
  private final CreditDefaultSwapSecurityConverter _converter;

  public CreditDefaultIndexSwapSecurityToProxyConverter(final HolidaySource holidaySource, final RegionSource regionSource, final OrganizationSource organizationSource) {
    _converter = new CreditDefaultSwapSecurityConverter(holidaySource, regionSource, organizationSource);
  }

  @Override
  public CreditDefaultSwapDefinition visitCreditDefaultSwapIndexSecurity(final CreditDefaultSwapIndexSecurity security) {
    final boolean isBuy = security.isBuy();
    final ExternalId protectionSeller = security.getProtectionSeller();
    final ExternalId protectionBuyer = security.getProtectionBuyer();
    final ExternalId referenceEntity = security.getReferenceEntity();
    final DebtSeniority debtSeniority = DebtSeniority.NONE;
    final RestructuringClause restructuringClause = RestructuringClause.NONE;
    final ZonedDateTime startDate = security.getStartDate();
    final ZonedDateTime effectiveDate = security.getEffectiveDate();
    final ZonedDateTime maturityDate = security.getMaturityDate();
    final StubType stubType = security.getStubType();
    final Frequency couponFrequency = security.getCouponFrequency();
    final DayCount dayCount = security.getDayCount();
    final BusinessDayConvention businessDayConvention = security.getBusinessDayConvention();
    final boolean immAdjustMaturityDate = false;
    final boolean adjustEffectiveDate = false;
    final boolean adjustMaturityDate = false;
    final InterestRateNotional notional = security.getNotional();
    final boolean includeAccruedPremium = false;
    final boolean protectionStart = false;
    final double parSpread = security.getIndexCoupon();
    final LegacyVanillaCDSSecurity cds = new LegacyVanillaCDSSecurity(
        isBuy,
        protectionSeller,
        protectionBuyer,
        referenceEntity,
        debtSeniority,
        restructuringClause,
        REGION,
        startDate,
        effectiveDate,
        maturityDate,
        stubType,
        couponFrequency,
        dayCount,
        businessDayConvention,
        immAdjustMaturityDate,
        adjustEffectiveDate,
        adjustMaturityDate,
        notional,
        includeAccruedPremium,
        protectionStart,
        parSpread);
    return cds.accept(_converter);
  }
}
TOP

Related Classes of com.opengamma.financial.analytics.conversion.CreditDefaultIndexSwapSecurityToProxyConverter

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.