code: public BigMoney plusMajor(long amountToAdd) {
          if (amountToAdd == 0) {
              return this;
          }
          BigDecimal newAmount = amount.add(BigDecimal.valueOf(amountToAdd));
          return BigMoney.of(currency, newAmount);
      }
docs: Returns a copy of this monetary value with the amount in major units added.
  <p>
  This adds the specified amount in major units to this monetary amount,
  returning a new object. The minor units will be untouched in the result.
  <p>
  No precision is lost in the result.
  The scale of the result will be the maximum of the current scale and 0.
  For example, 'USD 23.45' plus '138' gives 'USD 161.45'.
  <p>
  This instance is immutable and unaffected by this method.
  
  @param amountToAdd  the monetary value to add, not null
  @return the new instance with the input amount added, never null