/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.integration.tool.portfolio.xml.v1_0.conversion; import com.opengamma.financial.convention.frequency.SimpleFrequencyFactory; import com.opengamma.financial.security.equity.EquityVarianceSwapSecurity; import com.opengamma.id.ExternalId; import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.EquityVarianceSwapTrade; import com.opengamma.master.security.ManageableSecurity; /** * Security extractor for equity variance swap trades. */ public class EquityVarianceSwapTradeSecurityExtractor extends TradeSecurityExtractor<EquityVarianceSwapTrade> { /** * Create a security extractor for the supplied trade. * * @param trade the trade to perform extraction on */ public EquityVarianceSwapTradeSecurityExtractor(EquityVarianceSwapTrade trade) { super(trade); } //------------------------------------------------------------------------- @Override public ManageableSecurity[] extractSecurities() { ExternalId region = null; boolean parameterizedAsVariance = false; // distinguishes vega or variance strike/notional EquityVarianceSwapTrade trade = getTrade(); EquityVarianceSwapSecurity security = new EquityVarianceSwapSecurity( trade.getUnderlying().toExternalId(), trade.getCurrency(), trade.getStrike().doubleValue(), trade.getVegaAmount().doubleValue(), parameterizedAsVariance, trade.getAnnualizationFactor(), convertLocalDate(trade.getObservationStartDate()), convertLocalDate(trade.getObservationEndDate()), /*convertLocalDate(trade.getPremiumSettlementDate())*/ null, region, SimpleFrequencyFactory.INSTANCE.getFrequency(trade.getObservationfrequency())); return securityArray(addIdentifier(security)); } }