/** * 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.security.option.FXDigitalOptionSecurity; import com.opengamma.integration.tool.portfolio.xml.v1_0.jaxb.FxDigitalOptionTrade; import com.opengamma.master.security.ManageableSecurity; import com.opengamma.util.money.Currency; /** * Security extractor for fx digital option trades. */ public class FxDigitalOptionTradeSecurityExtractor extends TradeSecurityExtractor<FxDigitalOptionTrade> { /** * Create a security extractor for the supplied trade. * * @param trade the trade to perform extraction on */ public FxDigitalOptionTradeSecurityExtractor(FxDigitalOptionTrade trade) { super(trade); } //------------------------------------------------------------------------- @Override public ManageableSecurity[] extractSecurities() { FxDigitalOptionTrade trade = getTrade(); Currency payoutCurrency = trade.getPayoutCurrency(); FxOptionCalculator calculator = new FxOptionCalculator(trade, trade.getPayout(), payoutCurrency); ManageableSecurity security = new FXDigitalOptionSecurity( calculator.getPutCurrency(), calculator.getCallCurrency(), calculator.getPutAmount(), calculator.getCallAmount(), payoutCurrency, calculator.getExpiry(), calculator.getSettlementDate(), calculator.isLong()); return securityArray(addIdentifier(security)); } }