}
//-------------------------------------------------------------------------
@Override
public ManageableSecurity[] extractSecurities() {
SwapTrade trade = getTrade();
List<SwapLeg> payLegs = Lists.newArrayList(trade.getPayLegs());
List<SwapLeg> recLegs = Lists.newArrayList(trade.getReceiveLegs());
Preconditions.checkState(payLegs.size() == 1, format("Swaps must have one (and only one) pay leg. Found %d", payLegs.size()));
Preconditions.checkState(recLegs.size() == 1, format("Swaps must have one (and only one) receive leg. Found %d", recLegs.size()));
ManageableSecurity security = new SwapSecurity(
convertLocalDate(trade.getTradeDate()),
convertLocalDate(trade.getEffectiveDate()),
convertLocalDate(trade.getMaturityDate()),
trade.getCounterparty().getExternalId().getId(),
convertLeg(payLegs.get(0)),
convertLeg(recLegs.get(0)));
return securityArray(addIdentifier(security));
}