@Override
 public MultipleCurrencyCurveSensitivityMarket visitSwap(
     final Swap<?, ?> swap, final IMarketBundle market) {
   final MultipleCurrencyCurveSensitivityMarket sensitivity1 = visit(swap.getFirstLeg(), market);
   final MultipleCurrencyCurveSensitivityMarket sensitivity2 = visit(swap.getSecondLeg(), market);
   return sensitivity1.plus(sensitivity2);
 }
 @Override
 public MultipleCurrencyCurveSensitivityMarket visitGenericAnnuity(
     final Annuity<? extends Payment> annuity, final IMarketBundle market) {
   ArgumentChecker.notNull(annuity, "Annuity");
   ArgumentChecker.notNull(market, "Market");
   MultipleCurrencyCurveSensitivityMarket cs = visit(annuity.getNthPayment(0), market);
   for (int loopp = 1; loopp < annuity.getNumberOfPayments(); loopp++) {
     cs = cs.plus(visit(annuity.getNthPayment(loopp), market));
   }
   return cs;
 }