/**
* Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies
*
* Please see distribution for license.
*/
package com.opengamma.financial.security.summary;
import com.opengamma.core.security.SecuritySource;
import com.opengamma.financial.security.option.SwaptionSecurity;
import com.opengamma.financial.security.swap.SwapSecurity;
import com.opengamma.id.ExternalIdBundle;
/**
* Summary factor for {@link SwaptionSecurity}.
*/
public class SwaptionSummaryFactory implements SummaryFactory<SwaptionSecurity> {
private final SecuritySource _securitySource;
public SwaptionSummaryFactory(SecuritySource securitySource) {
_securitySource = securitySource;
}
@Override
public String getSecurityType() {
return SwaptionSecurity.SECURITY_TYPE;
}
@Override
public Summary getSummary(SwaptionSecurity security) {
SwapSecurity underlyingSecurity = (SwapSecurity) _securitySource.getSingle(ExternalIdBundle.of(security.getUnderlyingId()));
return SwapSummaryFactory.append(SummaryBuilder.create(security), underlyingSecurity)
.with(SummaryField.MATURITY, security.getExpiry()).build();
}
}