code: public static Money of(BigDecimal number, CurrencyUnit currency, MonetaryContext monetaryContext) {
          return new Money(number, currency, monetaryContext);
      }
docs: Creates a new instance of {@link Money}, using an explicit
  {@link MonetaryContext}.
  
  @param number          numeric value, not {@code null}.
  @param currency        currency unit, not {@code null}.
  @param monetaryContext the {@link MonetaryContext} to be used, if {@code null} the
  default {@link MonetaryContext} is used.
  @return a {@code Money} instance based on the monetary context with the
  given numeric value, currency unit.
  @throws ArithmeticException If the number exceeds the capabilities of the
  {@link MonetaryContext} used.