code: public BigMoney parseBigMoney(CharSequence text) {
          checkNotNull(text, "Text must not be null");
          MoneyParseContext result = parse(text, 0);
          if (result.isError() || result.isFullyParsed() == false || result.isComplete() == false) {
              String str = (text.length() > 64 ? text.subSequence(0, 64).toString() + "..." : text.toString());
              if (result.isError()) {
                  throw new MoneyFormatException("Text could not be parsed at index " + result.getErrorIndex() + ": " + str);
              } else if (result.isFullyParsed() == false) {
                  throw new MoneyFormatException("Unparsed text found at index " + result.getIndex() + ": " + str);
              } else {
                  throw new MoneyFormatException("Parsing did not find both currency and amount: " + str);
              }
          }
          return result.toBigMoney();
      }
docs: Fully parses the text into a {@code BigMoney}.
  <p>
  The parse must complete normally and parse the entire text (currency and amount).
  If the parse completes without reading the entire length of the text, an exception is thrown.
  If any other problem occurs during parsing, an exception is thrown.
  
  @param text  the text to parse, not null
  @return the parsed monetary value, never null
  @throws UnsupportedOperationException if the formatter is unable to parse
  @throws MoneyFormatException if there is a problem while parsing