/** * Copyright (C) 2012 - present by OpenGamma Inc. and the OpenGamma group of companies * * Please see distribution for license. */ package com.opengamma.analytics.financial.provider.description.forex; import com.opengamma.analytics.financial.provider.description.interestrate.MulticurveProviderInterface; import com.opengamma.analytics.financial.provider.description.interestrate.ParameterProviderInterface; import com.opengamma.util.money.Currency; import com.opengamma.util.tuple.Pair; /** * Interface for Black volatility parameters for FX volatility surfaces. * @param <VOLATILITY_TYPE> The volatility type. */ public interface BlackForexProviderInterface<VOLATILITY_TYPE> extends ParameterProviderInterface { /** * Create a new copy of the provider. * @return The bundle. */ @Override BlackForexProviderInterface<VOLATILITY_TYPE> copy(); /** * Returns the the volatilities. * @return The parameters. */ VOLATILITY_TYPE getVolatility(); /** * Returns the currency pair * @return The currency pair. */ Pair<Currency, Currency> getCurrencyPair(); /** * Checks that the two currencies are consistent with those for which this surface applies. * The order of the two currencies is not important. * @param ccy1 The first currency. * @param ccy2 The second currency. * @return True if the currencies are consistent */ boolean checkCurrencies(final Currency ccy1, final Currency ccy2); /** * Returns the underlying multi-curves provider. * @return The multi-curves provider. */ @Override MulticurveProviderInterface getMulticurveProvider(); }