/** * Copyright (C) 2013 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.financial.analytics.conversion; import org.threeten.bp.ZonedDateTime; import com.opengamma.analytics.financial.forex.definition.ForexDefinition; import com.opengamma.analytics.financial.instrument.InstrumentDefinition; import com.opengamma.financial.security.FinancialSecurityVisitorAdapter; import com.opengamma.financial.security.fx.FXForwardSecurity; import com.opengamma.util.ArgumentChecker; import com.opengamma.util.money.Currency; /** * Converts {@link FXForwardSecurity} to {@link ForexDefinition} */ public class FXForwardSecurityConverter extends FinancialSecurityVisitorAdapter<InstrumentDefinition<?>> { @Override public InstrumentDefinition<?> visitFXForwardSecurity(final FXForwardSecurity fxForwardSecurity) { ArgumentChecker.notNull(fxForwardSecurity, "fx forward security"); final Currency payCurrency = fxForwardSecurity.getPayCurrency(); final Currency receiveCurrency = fxForwardSecurity.getReceiveCurrency(); final double payAmount = fxForwardSecurity.getPayAmount(); final double receiveAmount = fxForwardSecurity.getReceiveAmount(); final ZonedDateTime forwardDate = fxForwardSecurity.getForwardDate(); return ForexDefinition.fromAmounts(payCurrency, receiveCurrency, forwardDate, -payAmount, receiveAmount); } }