code: public MoneyParseContext parse(CharSequence text, int startIndex) {
          checkNotNull(text, "Text must not be null");
          if (startIndex < 0 || startIndex > text.length()) {
              throw new StringIndexOutOfBoundsException("Invalid start index: " + startIndex);
          }
          if (isParser() == false) {
              throw new UnsupportedOperationException("MoneyFomatter has not been configured to be able to parse");
          }
          MoneyParseContext context = new MoneyParseContext(locale, text, startIndex);
          printerParser.parse(context);
          return context;
      }
docs: Parses the text extracting monetary information.
  <p>
  This method parses the input providing low-level access to the parsing state.
  The resulting context contains the parsed text, indicator of error, position
  following the parse and the parsed currency and amount.
  Together, these provide enough information for higher level APIs to use.
  
  @param text  the text to parse, not null
  @param startIndex  the start index to parse from
  @return the parsed monetary value, null only if the parse results in an error
  @throws IndexOutOfBoundsException if the start index is invalid
  @throws UnsupportedOperationException if this formatter cannot parse