Open Journal Systems  3.3.0
ReversedCurrenciesExchange.php
1 <?php
2 
3 namespace Money\Exchange;
4 
9 
17 final class ReversedCurrenciesExchange implements Exchange
18 {
22  private $exchange;
23 
27  public function __construct(Exchange $exchange)
28  {
29  $this->exchange = $exchange;
30  }
31 
35  public function quote(Currency $baseCurrency, Currency $counterCurrency)
36  {
37  try {
38  return $this->exchange->quote($baseCurrency, $counterCurrency);
39  } catch (UnresolvableCurrencyPairException $exception) {
40  try {
41  $currencyPair = $this->exchange->quote($counterCurrency, $baseCurrency);
42 
43  return new CurrencyPair($baseCurrency, $counterCurrency, 1 / $currencyPair->getConversionRatio());
44  } catch (UnresolvableCurrencyPairException $inversedException) {
45  throw $exception;
46  }
47  }
48  }
49 }
Money\Exception\UnresolvableCurrencyPairException
Definition: UnresolvableCurrencyPairException.php:13
Money\CurrencyPair
Definition: CurrencyPair.php:12
Money\Exchange
Definition: Exchange.php:12
Money\Exchange\ReversedCurrenciesExchange\quote
quote(Currency $baseCurrency, Currency $counterCurrency)
Definition: ReversedCurrenciesExchange.php:38
Money\Currency
Definition: vendor/moneyphp/money/src/Currency.php:14
Money\Exchange\ReversedCurrenciesExchange
Definition: ReversedCurrenciesExchange.php:17
Money\Exchange
Definition: ExchangerExchange.php:3
Money\Exchange\ReversedCurrenciesExchange\__construct
__construct(Exchange $exchange)
Definition: ReversedCurrenciesExchange.php:30