/**
* Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.analytics.model.bondcurves;
import java.util.HashSet;
import java.util.Set;
import com.opengamma.core.security.Security;
import com.opengamma.financial.convention.yield.SimpleYieldConvention;
import com.opengamma.financial.convention.yield.YieldConvention;
import com.opengamma.financial.security.bond.BillSecurity;
import com.opengamma.financial.security.bond.BondSecurity;
import com.opengamma.financial.security.bond.FloatingRateNoteSecurity;
import com.opengamma.financial.security.bond.InflationBondSecurity;
import com.opengamma.financial.security.future.BondFutureSecurity;
/**
* Utility methods for establishing if a bond or bill is supported.
*/
public class BondSupportUtils {
private static final Set<YieldConvention> s_supportedYieldConventions = new HashSet<>();
private static final Set<String> s_supportedCouponTypes = new HashSet<>();
static {
s_supportedYieldConventions.add(SimpleYieldConvention.US_STREET);
s_supportedYieldConventions.add(SimpleYieldConvention.GERMAN_BOND);
s_supportedYieldConventions.add(SimpleYieldConvention.AUSTRALIA_EX_DIVIDEND);
s_supportedYieldConventions.add(SimpleYieldConvention.UK_BUMP_DMO_METHOD);
s_supportedYieldConventions.add(SimpleYieldConvention.FRANCE_COMPOUND_METHOD);
s_supportedYieldConventions.add(SimpleYieldConvention.ITALY_TREASURY_BONDS);
s_supportedCouponTypes.add("FIXED");
}
public static boolean isSupported(Security security) {
if (security instanceof BondSecurity && !(security instanceof InflationBondSecurity)) {
BondSecurity bondSecurity = (BondSecurity) security;
if (s_supportedYieldConventions.contains(bondSecurity.getYieldConvention()) && s_supportedCouponTypes.contains(bondSecurity.getCouponType())) {
return true;
}
return false;
} else if (security instanceof BondFutureSecurity) {
@SuppressWarnings("unused")
BondFutureSecurity bondFutureSecurity = (BondFutureSecurity) security;
return true;
} else if (security instanceof BillSecurity) {
BillSecurity billSecurity = (BillSecurity) security;
if (s_supportedYieldConventions.contains(billSecurity.getYieldConvention())) {
return true;
}
return false;
} else if (security instanceof FloatingRateNoteSecurity) {
@SuppressWarnings("unused")
FloatingRateNoteSecurity floatingRateNoteSecurity = (FloatingRateNoteSecurity) security;
return true;
}
return false;
}
}