code: public BigMoney withCurrencyUnit(CurrencyUnit currency) {
          MoneyUtils.checkNotNull(currency, "CurrencyUnit must not be null");
          if (this.currency == currency) {
              return this;
          }
          return new BigMoney(currency, amount);
      }
docs: Returns a copy of this monetary value with the specified currency.
  <p>
  The returned instance will have the specified currency and the amount
  from this instance. No currency conversion or alteration to the scale occurs.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param currency  the currency to use, not null
  @return the new instance with the input currency set, never null