Open Journal Systems  3.3.0
AggregateCurrencies.php
1 <?php
2 
3 namespace Money\Currencies;
4 
8 
14 final class AggregateCurrencies implements Currencies
15 {
19  private $currencies;
20 
24  public function __construct(array $currencies)
25  {
26  foreach ($currencies as $c) {
27  if (false === $c instanceof Currencies) {
28  throw new \InvalidArgumentException('All currency repositories must implement '.Currencies::class);
29  }
30  }
31 
32  $this->currencies = $currencies;
33  }
34 
38  public function contains(Currency $currency)
39  {
40  foreach ($this->currencies as $currencies) {
41  if ($currencies->contains($currency)) {
42  return true;
43  }
44  }
45 
46  return false;
47  }
48 
52  public function subunitFor(Currency $currency)
53  {
54  foreach ($this->currencies as $currencies) {
55  if ($currencies->contains($currency)) {
56  return $currencies->subunitFor($currency);
57  }
58  }
59 
60  throw new UnknownCurrencyException('Cannot find currency '.$currency->getCode());
61  }
62 
66  public function getIterator()
67  {
68  $iterator = new \AppendIterator();
69 
70  foreach ($this->currencies as $currencies) {
71  $iterator->append($currencies->getIterator());
72  }
73 
74  return $iterator;
75  }
76 }
Money\Currencies
Definition: AggregateCurrencies.php:3
Money\Currencies\AggregateCurrencies\subunitFor
subunitFor(Currency $currency)
Definition: AggregateCurrencies.php:55
Money\Currencies\AggregateCurrencies\getIterator
getIterator()
Definition: AggregateCurrencies.php:69
Money\Currency
Definition: vendor/moneyphp/money/src/Currency.php:14
Money\Currency\getCode
getCode()
Definition: vendor/moneyphp/money/src/Currency.php:47
Money\Currencies\AggregateCurrencies\__construct
__construct(array $currencies)
Definition: AggregateCurrencies.php:27
Money\Currencies\AggregateCurrencies\contains
contains(Currency $currency)
Definition: AggregateCurrencies.php:41
Money\Currencies
Definition: Currencies.php:12
Money\Currencies\AggregateCurrencies
Definition: AggregateCurrencies.php:14
Money\Exception\UnknownCurrencyException
Definition: UnknownCurrencyException.php:12
Currency
Basic class describing a currency.
Definition: Currency.inc.php:24