code: @Override
      public <T> T query(MonetaryQuery<T> query) {
          Objects.requireNonNull(query);
          try {
              return query.queryFrom(this);
          } catch (MonetaryException | ArithmeticException e) {
              throw e;
          } catch (Exception e) {
              throw new MonetaryException("Query failed: " + query, e);
          }
      }
docs: /*
  (non-Javadoc)
  @see javax.money.MonetaryAmount#adjust(javax.money.AmountAdjuster)