code: public Map<String, Object> parseToMap(String source) throws ParseException {
          ParsePosition pos = new ParsePosition(0);
          Map<String, Object> result = new HashMap<String, Object>();
          parse(0, source, pos, null, result);
          if (pos.getIndex() == 0) // unchanged, returned object is null
              throw new ParseException("MessageFormat parse error!",
                                       pos.getErrorIndex());
  
          return result;
      }
docs: <strong>[icu]</strong> Parses text from the beginning of the given string to produce a map from
  argument to values. The method may not use the entire text of the given string.
  
  <p>See the {@link #parse(String, ParsePosition)} method for more information on
  message parsing.
  
  @param source A <code>String</code> whose beginning should be parsed.
  @return A <code>Map</code> parsed from the string.
  @throws ParseException if the beginning of the specified string cannot
  be parsed.
  @see #parseToMap(String, ParsePosition)