public BigMoney plusMajor(long amountToAdd) {
        if (amountToAdd == 0) {
            return this;
        }
        BigDecimal newAmount = amount.add(BigDecimal.valueOf(amountToAdd));
        return BigMoney.of(currency, newAmount);
    }
public BigMoney plusMajor ( long amountToAdd ) { if ( amountToAdd == 0 ) { return this ; } BigDecimal newAmount = amount . add ( BigDecimal . valueOf ( amountToAdd ) ) ; return BigMoney . of ( currency , newAmount ) ; }
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