final ExternalId protectionBuyer = externalIdBeanToExternalId(bean.getProtectionBuyer());
final ExternalId protectionSeller = externalIdBeanToExternalId(bean.getProtectionSeller());
final ZonedDateTime startDate = zonedDateTimeBeanToDateTimeWithZone(bean.getStartDate());
final ZonedDateTime maturityDate = zonedDateTimeBeanToDateTimeWithZone(bean.getMaturityDate());
final Currency currency = currencyBeanToCurrency(bean.getCurrency());
final ExerciseType exerciseType = bean.getExerciseType().accept(new ExerciseTypeVisitorImpl());
final ExternalId underlying = externalIdBeanToExternalId(bean.getUnderlying());
final CreditDefaultSwapOptionSecurity security = new CreditDefaultSwapOptionSecurity(buy, protectionBuyer, protectionSeller,
startDate, maturityDate, currency, bean.getNotional(), bean.getStrike(), bean.getKnockOut(), bean.getPayer(), exerciseType, underlying);