/** * 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.equity.EquitySecurity; import com.opengamma.financial.security.option.EquityOptionSecurity; import com.opengamma.id.ExternalIdBundle; /** * Summary factory for {@link EquityOptionSecurity}. */ public class EquityOptionSummaryFactory implements SummaryFactory<EquityOptionSecurity> { private final SecuritySource _securitySource; public EquityOptionSummaryFactory(SecuritySource securitySource) { _securitySource = securitySource; } @Override public String getSecurityType() { return EquityOptionSecurity.SECURITY_TYPE; } @Override public Summary getSummary(EquityOptionSecurity security) { EquitySecurity underlyingSecurity = (EquitySecurity) _securitySource.getSingle(ExternalIdBundle.of(security.getUnderlyingId())); return SummaryBuilder.create(security) .with(SummaryField.DESCRIPTION, underlyingSecurity.getShortName()) .with(SummaryField.STRIKE, security.getStrike()) .with(SummaryField.MATURITY, security.getExpiry()) .with(SummaryField.DIRECTION, security.getOptionType()) .with(SummaryField.UNDERLYING, security.getUnderlyingId()).build(); } }