class MultipleCurrencyAmount implements ImmutableBean,
    Iterable<CurrencyAmount>, Serializable {

  public MultipleCurrencyAmount multipliedBy(final double factor) {
    TreeMap<Currency, Double> map = new TreeMap<Currency, Double>();
    for (CurrencyAmount currencyAmount : this) {
      map.put(currencyAmount.getCurrency(), currencyAmount.getAmount() * factor);
    }
    return MultipleCurrencyAmount.of(map);
  }

  private  MultipleCurrencyAmount(ImmutableSortedMap<Currency, CurrencyAmount> currencyAmountMap);
  private  MultipleCurrencyAmount(
      SortedMap<Currency, CurrencyAmount> currencyAmountMap);

}