} else if (swap.getSecondLeg() instanceof AnnuityCouponONDefinition) {
final AnnuityCouponONDefinition annuityCouponONDefinition = (AnnuityCouponONDefinition) swap.getSecondLeg();
onIndex = annuityCouponONDefinition.getOvernightIndex();
calendar = annuityCouponONDefinition.getCalendar();
} else if (swap.getFirstLeg().getNthPayment(0) instanceof CouponONCompoundedDefinition) {
final CouponONCompoundedDefinition couponONDefinition = (CouponONCompoundedDefinition) swap.getFirstLeg().getNthPayment(0);
onIndex = couponONDefinition.getIndex();
calendar = couponONDefinition.getCalendar();
} else if (swap.getSecondLeg().getNthPayment(0) instanceof CouponONCompoundedDefinition) {
final CouponONCompoundedDefinition couponONDefinition = (CouponONCompoundedDefinition) swap.getSecondLeg().getNthPayment(0);
onIndex = couponONDefinition.getIndex();
calendar = couponONDefinition.getCalendar();
} else {
throw new OpenGammaRuntimeException("Could not find overnight leg for " + underlyingSecurity);
}
final DayCount fixedLegDayCount = fixedLeg.getDayCount();
final Frequency frequency = fixedLeg.getFrequency();